python - 包括 CMU pocketsphinx gstreamer 的语法

标签 python grammar gstreamer cmusphinx

我一直在研究 CMU pocketsphinx 的语音识别功能。理想情况下,我希望能够使用实时音频作为输入来识别“请拿起”这一行的句子结构,其中有大量对象(~200)。最初我在 Ubuntu 上安装 pocketsphinx 遇到了很大的困难,最终我能够使用 gstreamer 让它工作。现在我已经开始工作了,我正在努力提高准确性。我想包括一个 jsgf 语法,但找不到任何说明或代码示例,目前我不知所措。

如果有任何帮助,我将不胜感激。

最佳答案

您现在不能在 gstreamer 中使用 JSGF,尽管这将是对插件的一个微不足道的更改。但是您可以使用 FSG 格式的语法。你可以自己构造FSG格式的文法,也可以将文法从JSGF格式转成FSG格式:

sphinx_jsgf2fsg -jsgf grammar.jsgf -fsg grammar.fsg

要使用 fsg 格式的语法,请像使用“lm”属性一样使用插件的“fsg”属性,而不是:

    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")

关于python - 包括 CMU pocketsphinx gstreamer 的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728189/

相关文章:

python - 如果列表中没有则显示/隐藏字段

python - 如何使用 Pandas 中具有相似特征条件的值替换特定行(基于条件)?

c++ - 我用 Gstreamer MSVC 1.16.1 构建 opencv 3.4,现在 imread 和 VideoCapture 不起作用

udp - GStreamer UDPSink block 大小属性不起作用?

c - 是否已经定义了 gstreamer 元数据的标准模板?

python - 在sklearn中将文本列转换为数字

python - 每个值的索引列表

grammar - 足够了 "Always succeed"吗? [乐]

c++ - 提升精神: parse boolean expression and reduce to canonical normal form

grammar - 一个 JSGF 文件是否只使用一个公共(public)规则?