CMU Sphinx установка и настройка на Ubuntu 13.04. Часть 1

Категория: Linux

Источникпочитать.

Меня не покидает желание реализовать систему управления умным домом с голосовым интерфейсом. Куча пультов и отдельных кнопок у меня как-то вообще не вяжется с системой "Умный дом". Смартфон, когда говорить не удобно, еще куда бы не шло. Но начнем с самого малого - научим понимать голосовые команды наш комп.

Для реализации задуманного пока есть лишь одна достойная разработка - это 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 можно взять из исходников pocketsphinxraw - это формат аудиозаписи.

Создадим файлы errors.txtresult.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

  1. Прослушайте записанный аудио-файл и убедитесь что ваш голос звучит;
  2. Попробуйте в начале записи добавить задержку ~ 4 сек.

#TTS, #voice

категория: Linux