CMU Sphinx установка и настройка на Ubuntu 13.04. Часть 1
Меня не покидает желание реализовать систему управления умным домом с голосовым интерфейсом. Куча пультов и отдельных кнопок у меня как-то вообще не вяжется с системой "Умный дом". Смартфон, когда говорить не удобно, еще куда бы не шло. Но начнем с самого малого - научим понимать голосовые команды наш комп.
Для реализации задуманного пока есть лишь одна достойная разработка - это pocketsphinx. Поехали?
Качаем sphinxbase-0.8 и pocketsphinx-0.8 с офф. сайта. Распаковываем в разные каталоги.
Внимание!
Если перед компиляцией sphinxbase вы установите пакет libpulse-dev - тогда sphinxbase будет автоматически сконфигурирован с поддержкой pulseaudio вместо oss-compat  и не будет требовать устройства /dev/dsp  Для установки libpulse-dev выполните:
sudo apt-get install libpulse-deИначе нужно будет ставить систему OSS:
sudo apt-get install oss-compatСобираем оба пакета (начнем со sphinxbase):
./configure # или> ./autogen.sh 
make
make check
sudo checkinstall # или> sudo make install
sudo ldconfig
На все про все должно уйти ~ мин 15-20.. После чего в каждом каталоге будет deb пакет для повторной установки.
Примечание
Удалить пакеты можно командой:
dpkg -r pocketsphinxИ перейдем к тестированию... Создаем любой каталог для проверки, в котором будут располагаться все последующие файлы.
Создаем файл конфига распознавания .raw файлов config.raw.cfg:
# Путь к каталогу, содержащему файлы акустической модели (шаблоны отдельных звуков).
-hmm /usr/local/share/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k
# Путь к файлу триграммной языковой модели
# Подробнее: http://www.intsys.msu.ru/invest/speech/articles/rus_lm.htm
-lm /usr/local/share/pocketsphinx/model/lm/en/turtle.DMP
# Путь к файлу словаря произношения
-dict /usr/local/share/pocketsphinx/model/lm/en/turtle.dic
# Путь к каталогу со звуковыми файлами. 
# Будьте внимательны: если вы указываете путь к файлу в конфиге, 
# то относительный путь ~/some-path обрабатывается неправильно 
# - нужно указывать полный путь. Если вы будете прописывать аргумент 
# после команды, то можете использовать относительный путь.
-cepdir /home/stas/Application/voice/cmu-sphinx/test
# Файл со списокм обрабатываемых аудиозаписей (без расширений).
-ctl audio_input.txt
# расширение обрабатываемых файлов
-cepext .raw # .raw, .mfc
# указатель принадлежности обрабатываемого файла к raw.
-adcin true
# имя файла, в который будет выведен распознанный текст.
-hyp result.txtПримечание
Тестовый файл goforward.raw можно взять из исходников pocketsphinx. raw - это формат аудиозаписи.
Создадим файлы errors.txt, result.txt и input.raw.txt в том же каталоге. 
В файле input.raw.txt укажите raw файл (без расширения), который необходимо распознать. В нашем случае это 'goforward'.
Теперь перейдите в созданный каталог с файлами и выполните:
pocketsphinx_batch -argfile config.raw.cfg 2>./errors.txtВ идеале файл result.txt должен содержать текст "go forward ten meters (goforward -26532)" - это распознанная запись из файла goforward.raw. Если что-то пошло не так - смотрите в errors.txt, обычно ошибки в путях.
Дальше вы можете протестировать распознавание ваших записей.
Запись и воспроизведение аудио
Для записи аудио с микрофона воспользуйтесь командой:
rec -r 16k -b 16 -c 1 -e signed-integer filename.rawДля прослушивания записанного аудио используйте команду:
play -r 16k -b 16 -c 1 -e signed-integer filename.rawВнимание!
Если, при распознавании записанного аудио, вы получаете ошибку:
FATAL_ERROR: "continuous.c", line 153: Failed to calibrate voice activity detection
- Прослушайте записанный аудио-файл и убедитесь что ваш голос звучит;
 - Попробуйте в начале записи добавить задержку ~ 4 сек.
 
#TTS, #voice