python - 使用python的pocketsphinx设置普通话/中文模型和字典问题
问题描述
(也在 sourceforge.net 上询问)
我在 ubuntu 18 上从源(官方cmu github,而不是 sourceforge.net)安装sphinxbase和pocketsphinx
(主机: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 文件:
- 前进 ting zh ib
- 后退后退
- 左转z uo zhuan
- 右转 y uo zh uan
- 向左转 x iang z uo zh uan
- 向 转 x iang y uo zh uan
- 停止 ting zh ib
- 加速 jia su
- 改造 jian su
gstreamer GUI 使用文本框和按钮成功显示。
但是,当我单击按钮说话并说出一些中文单词时,文本框中没有任何内容。
会不会是我的.lm文件太旧了?(只是一些猜测,我不太确定。)
请帮忙。
(或者,如果您能帮我打印一些错误信息,我将不胜感激;gstreamer GUI 和 pycharm 终端根本没有显示任何关于该错误的信息。)
解决方案
您需要使用-hmm
选项加载中文声学模型
推荐阅读
- reactjs - 使用离子+反应时的路线守卫
- unicode - 为什么Byte level BPE的vocab size小于Unicode的vocab size?
- android - 音频声音未在 Android 中播放
- android - 必须 onCreateOptionsMenu 成为每个活动的实现吗?
- javascript - Discord.js 在一条消息中发送多个附件
- java - 为什么我的按钮组不起作用和显示?
- javascript - 我如何知道在按钮类中单击了哪个按钮?
- yaml - 试图在 Cygwin 中保存 yml 对象
- mysql - 为链接的一对多关系插入查询
- python - 有两个输入的石头、纸、剪刀游戏