首页 > 解决方案 > 使用python的pocketsphinx设置普通话/中文模型和字典问题

问题描述

(也在 sourceforge.net 上询问)

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

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

我从官方网站复制了 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 使用文本框和按钮成功显示。

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

会不会是我的.lm文件太了?(只是一些猜测,我不太确定。)

请帮忙。

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

标签: pythonspeech-recognitiongstreamercmusphinxpocketsphinx

解决方案


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


推荐阅读