pocketsphinx 设置 mandarin/chinese 模型和字典问题使用 python
pocketsphinx setting mandarin/chinese model and dictionary problem using python
(也在 sourceforge.net 上询问)
我从源安装 sphinxbase 和 pocketsphinx(官方 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 文件:
- 前进t ing zh ib
- 退出 h out ui
- 左转z uo zh uan
- 右转y uo zuan
- 向左转 x iang z uo zh uan
- 向右转 x iang y uo zh uan
- 停止t ing zh ib
- 加速 j ia s u
- 减速jian s u
gstreamer GUI 成功显示了一个文本框和一个按钮。
但是,当我点击 speak 按钮并说一些中文单词时,
文本框中没有任何内容。
会不会是我的.lm文件也是旧的?(只是一些猜测,我不是qui当然可以。)
请帮忙。
(或者,如果您能帮我打印一些错误信息,我将不胜感激;gstreamer GUI 和 pycharm 终端根本没有显示任何有关错误的信息。)
您需要使用 -hmm
选项加载中文声学模型
(也在 sourceforge.net 上询问)
我从源安装 sphinxbase 和 pocketsphinx(官方 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 文件:
- 前进t ing zh ib
- 退出 h out ui
- 左转z uo zh uan
- 右转y uo zuan
- 向左转 x iang z uo zh uan
- 向右转 x iang y uo zh uan
- 停止t ing zh ib
- 加速 j ia s u
- 减速jian s u
gstreamer GUI 成功显示了一个文本框和一个按钮。
但是,当我点击 speak 按钮并说一些中文单词时, 文本框中没有任何内容。
会不会是我的.lm文件也是旧的?(只是一些猜测,我不是qui当然可以。)
请帮忙。
(或者,如果您能帮我打印一些错误信息,我将不胜感激;gstreamer GUI 和 pycharm 终端根本没有显示任何有关错误的信息。)
您需要使用 -hmm
选项加载中文声学模型