(Также спрашивали на sourceforge.net)
Я устанавливаю sphinxbase и pocketsphinx из исходников (официальный cmu github, НЕ с sourceforge.net) на Ubuntu 18.
(хост: 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:
- 前進 t ing zh ib
- 後退 h ou t ui
- 左轉 z uo zh uan
- 右轉 y uo zh uan
- 向左轉 x iang z uo zh uan
- 向右轉 x iang y uo zh uan
- 停止 t ing zh ib
- 加速 j ia s u
- 減速 цзянь су
Графический интерфейс gstreamer успешно отображается с текстовым полем и кнопкой.
Однако, когда я нажимаю кнопку говорить и произношу несколько китайских слов, в текстовом поле ничего не появляется.
Может быть, мой файл .lm слишком старый? (Просто предположение, я не совсем уверен.)
Пожалуйста помоги.
(Или, если вы можете помочь мне распечатать некоторую информацию об ошибке, я буду признателен; графический интерфейс gstreamer и терминал pycharm вообще НИЧЕГО не показывают об ошибке.)