VoxForge
Подскажите, пожалуйста, новичку, что я сделал не так:
Я скачал последний релиз «pocketsphinx-0.6.1.tar.gz», библиотеку «sphinxbase-0.6.1.tar.gz», все собрал и запустил тестовый пример, который взял отсюда http://cmusphinx.sourceforge.net/wiki/tuturialpocketsphinx . Все отлично сработало на приложенных тестовых примерах английской речи.
После этого, я скачал последний релиз «voxforge-ru-0.1.tar.gz» русской модели и в исходном коде заменил фрагмент:
#define MODELDIR "D:/Work/sphinx/pocketsphinxWork/pocketsphinx/model"
config = cmd_ln_init(NULL, ps_args(), TRUE,
"-hmm", MODELDIR "/hmm/en_US/hub4wsj_sc_8k",
"-lm", MODELDIR "/lm/en/turtle.DMP",
"-dict", MODELDIR "/lm/en/turtle.dic",
NULL);
определяющий, исходную модель английского языка, фрагментом который грузит русскую модель:
config = cmd_ln_init(NULL, ps_args(), TRUE,
"-hmm","D:/voxforge-ru-0.1/model_parameters/msu_ru_nsh.cd_cont_1000_8gau_16000",
"-lm", "D:/voxforge-ru-0.1/etc/msu_ru_nsh.lm.dmp", "-dict","D:/voxforge-ru-0.1/etc/msu_ru_nsh.dic",
"-fdict","D:/voxforge-ru-0.1/etc/msu_ru_nsh.filler",
"-samprate", "16000",
NULL);
После чего подал на вход программы raw-файл с русской речью. Программа доработала до последнего блока эталонного тестового примера без сообщениях об ошибках, но при выполнении последней стадии
hyp = ps_get_hyp(ps, &score, &uttid);
выдала мне
ERROR: "ngram_search.c", line 1034: Couldn't find <s> in first frame и вывлиласи с указателем hyp=NULL.
Насколько я понимаю, в модели нет какой-то компоненты (файла). Моя гипотеза это параметр “-jsgf” в программе cmd_ln_init.
В связи с этим вопрос, что нужно еще указать в конфигурации (программе cmd_ln_init), и где это нужно взять (как построить), если речь идет о каких-то файлах.
Это главный вопрос. А второй вопрос (мелкий), при попытке распознать английскую речь (“ONE”,TWO”,”SEVEN”,”NINE” и т.д ) я получил очень плохое качество распознвания по срвнению с тестовым примером. Правильно ли я понимаю, что здесь не следуют ожидать хорошего качества распознавания, либо и для английского языка надо брать другую базу, чем ту которая входит в исходный пакет в качестве примера?
> После этого, я скачал последний релиз «voxforge-ru-0.1.tar.gz» русской > модели и в исходном коде заменил фрагмент:
>ERROR: "ngram_search.c", line 1034: Couldn't find <s> in first frame и вывлиласи с указателем hyp=NULL.
> Насколько я понимаю, в модели нет какой-то компоненты (файла). Моя гипотеза это параметр “-jsgf” в программе cmd_ln_init.
Это ошибка в устаревшей версии модели. Скачайте последнюю версию 0.2:
http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/Voxforge%20Russian/voxforge-ru-0.2.tar.gz/download
Там же на форуме стоит задавать вопросы по pocketsphinx.
При этом нужно учитывать, что модель языка msu_ru_nsh.lm.dmp является
тестовой и не предназначена для серьёзной работы. Акустическую модель
можно использовать совместно с грамматикой в формате jsgf или со
статистической моделью языка, созданной специально для узкой области.
Подробности описаны в руководстве
http://cmusphinx.sourceforge.net/wiki/tutoriallm
> Это главный вопрос. А второй вопрос (мелкий), при попытке распознать > английскую речь (“ONE”,TWO”,”SEVEN”,”NINE” и т.д ) я получил
> очень плохое качество распознвания по срвнению с тестовым
> примером. Правильно
ли я понимаю, что здесь не следуют ожидать хорошего качества
распознавания
Не правильно, качество распознавания должно быть выше 95%
> либо и для английского языка надо брать другую базу, чем ту которая >входит в исходный пакет в качестве примера?
Скорее всего причина в некорректном формате входного речевого файла.
Попробовал - с этой версией базы все работает.
Большое спасибо.
Но качество очень низкое. Звуковой raw файл "ДВА, ТРИ, ЧЕТЫРЕ, ПЯТЬ, ШЕСТЬ, СЕМЬ, ВОСЕМ, ДЕВЯТЬ, ДЕСЯТЬ, ОДИН" - она поняла как "Recognized: два три четыре без шесть всем восемьдесят десять один".
Наверное у меня плохой микрофон и шум вокруг, но железка которую хотят сделать будет работать именно в таких условиях. Извините, но а что Вы думаете по поводу НТК и JULIUS. Что лучше взять за основу - pocketsphinx или эти системы. Стоит ли тратить время на НТК и JULIUS или лучше сразу остановится на pocketsphinx?
> Но качество очень низкое. Звуковой raw файл "ДВА, ТРИ, ЧЕТЫРЕ, ПЯТЬ, ШЕСТЬ, СЕМЬ, ВОСЕМ, ДЕВЯТЬ, ДЕСЯТЬ, ОДИН" - она поняла как "Recognized: два три четыре без шесть всем восемьдесят десять один".
О качестве распознавания нельзя судить по одному предложению, тем более, что ошибки распознавания присутствуют всегда. Особенно в конфигурациях с большим словарём. Там, где требуется высокое качество распознавания словарь обычно очень сильно ограничевается. Все эти моменты подробно описаны в документации для разработчиков, которую я советую прочесть от начала и до конца:
http://cmusphinx.sourceforge.net/wiki/tutorial
> Извините, но а что Вы думаете по поводу НТК и JULIUS. Что лучше взять за основу - pocketsphinx или эти системы. Стоит ли тратить время на НТК и JULIUS или лучше сразу остановится на pocketsphinx
В настоящее время имеется большое количество библиотек для распознавания речи, каждая из них обладает своими преимуществами и недостатками. Выбор библиотеки должен основываться на решаемой задаче, накладываемых ограничениях, возможностях и ресурсах. Недостаточная подробная постановка этого вопроса не позволяет дать на него аргументированный ответ.