我一直在研究 CMU pocketsphinx 的语音识别功能。理想情况下,我希望能够使用实时音频作为输入,沿着“请拿起”这一行识别句子结构,其中有一大堆对象(~200)。最初我在 Ubunutu 上安装 pocketsphinx 时遇到了很大的困难,最终我能够使用 gstreamer 让它工作。现在我已经开始工作了,我正在努力提高准确性。我想包含一个 jsgf 语法,但找不到任何指令或代码示例,目前不知所措。
我将不胜感激任何帮助。
您现在不能在 gstreamer 中使用 JSGF,尽管这将是插件的一个微不足道的更改。但是您可以使用 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")