Включая грамматику с карманами CMUphinx gstreamer

Я искал CMU pocketsphinx для распознавания голоса. В идеале я хочу иметь возможность распознавать структуры предложений по строке «Пожалуйста, возьмите», где находится большой список объектов (~ 200), используя живой звук в качестве ввода. Изначально у меня были большие трудности с установкой pocketsphinx на Убунуту, в конце концов я смог заставить его работать с помощью gstreamer. Теперь, когда это работает, я работаю над повышением точности. Я хотел бы включить грамматику jsgf, но не могу найти никаких инструкций или примеров кода, и в настоящее время я в недоумении.

Буду очень признателен за любую помощь.


person J.Miller    schedule 31.03.2013    source источник


Ответы (1)


Вы не можете использовать JSGF в gstreamer прямо сейчас, хотя это было бы тривиальным изменением плагина. Но вы можете использовать грамматику в формате FSG. Вы можете построить грамматику в формате FSG самостоятельно или преобразовать грамматику из формата JSGF в формат FSG:

sphinx_jsgf2fsg -jsgf grammar.jsgf -fsg grammar.fsg

Чтобы использовать грамматику в формате fsg, используйте свойство "fsg" плагина точно так же, как вы используете свойство "lm" вместо:

    g_object_set(G_OBJECT(filter), "lm", MODELDIR "/lm/en/turtle.DMP", NULL);

Вы устанавливаете свойство FSG для файла FSG:

    g_object_set(G_OBJECT(filter), "fsg", 
         "pocketsphinx/test/data/goforward.fsg", NULL);

Вы можете сделать то же самое в python ::

    asr.set_property("fsg", "pocketsphinx/test/data/goforward.fsg")
person Nikolay Shmyrev    schedule 31.03.2013
comment
Привет, просто хотел разобраться в этом. Спасибо вам за помощь. Поэтому после того, как я попытался включить файл fsg, программа продолжала выдавать ошибку сегментации. Потребовалось время, чтобы разобраться, но оказалось, что вам нужно установить свойства dict, lm и fsg перед asr.set_property('configured', True), чтобы он не сработал. Спасибо еще раз за помощь! - person J.Miller; 17.04.2013
comment
Если вы столкнулись с ошибкой сегментации, вы можете сообщить об этом в системе отслеживания ошибок CMUSphinx. Не прочь подробно рассказать о причинах. - person Nikolay Shmyrev; 17.04.2013
comment
@Niklay Shmyrev Знаете, где я могу найти документацию по pocketsphinx на питоне? У меня возникли проблемы с его поиском, и я надеялся, что вы можете помочь. - person J.Miller; 18.04.2013
comment
Где я могу прочитать о формате FSG? Похоже, что разработчики полностью исключили любую форму документации. Это ужасно - person nicbou; 11.08.2013
comment
Обновление: просто используйте sphinx_jsgf2fsg для преобразования грамматики. Он присутствует в пакете sphinxbase-utils. - person nicbou; 26.08.2013