pocketsphinx 设置 mandarin/chinese 模型和字典问题使用 python

pocketsphinx setting mandarin/chinese model and dictionary problem using python

(也在 sourceforge.net 上询问)

我从源安装 sphinxbasepocketsphinx(官方 cmu github , 不是来自 sourceforge.net) 在 ubuntu 18

(host: mac Pro; 使用 vmware fusion 11; python:3.6)

我从offical website复制了demoapp.py。

原代码运行流畅,但只支持英文

然后为了让它能识别中文,我做了一些改动

我的语言模型是从这里下载的:https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/Mandarin/zh_broadcastnews_64000_utf8.DMP/download 我已将其转换为 .lm.bin 和 .lm 格式。

这是我的 init_gst() 函数(我只修改了这个函数,其他函数未修改)

def init_gst(self):
    """Initialize the speech components"""

    self.pipeline = gst.parse_launch('autoaudiosrc ! audioconvert !  audioresample '
                                     + '! pocketsphinx name=asr ! fakesink')

    bus = self.pipeline.get_bus()
    bus.add_signal_watch()
    bus.connect('message::element', self.element_message)

    self.pipeline.set_state(gst.State.PAUSED)
    asr = self.pipeline.get_by_name('asr');  # We previously  assigned pocketsphinx element a name asr
    asr.set_property('lm', '/Users/cindy/Documents/pythonworkspace/sphinxenv/chinese.lm')
    asr.set_property('dict', '/Users/cindy/Documents/pythonworkspace/sphinxenv/dict/chinese_dict.dict')

这里是 chinese_dict.dict 文件:

gstreamer GUI 成功显示了一个文本框和一个按钮。

但是,当我点击 speak 按钮并说一些中文单词时, 文本框中没有任何内容。

会不会是我的.lm文件也是旧的?(只是一些猜测,我不是qui当然可以。)

请帮忙。

(或者,如果您能帮我打印一些错误信息,我将不胜感激;gstreamer GUI 和 pycharm 终端根本没有显示任何有关错误的信息。)

您需要使用 -hmm 选项加载中文声学模型