Python LiveSpeech PocketSphinx
pocketsphinx_continuous -adcdev plughw:1,0 -inmic yes -dict 4711.dic -lm 4711.lm
Вышеприведенная команда работает, но проблема возникает при запуске кода Python.
from pocketsphinx import LiveSpeech
for phrase in LiveSpeech(): print(phrase)
ошибка, которая отображается
Error opening audio device (null) for capture: Connection refused
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pocketsphinx/__init__.py", line 206, in __init__
self.ad = Ad(self.audio_device, self.sampling_rate)
File "/usr/local/lib/python2.7/dist-packages/sphinxbase/ad_pulse.py", line 124, in __init__
this = _ad_pulse.new_Ad(audio_device, sampling_rate)
RuntimeError: new_Ad returned -1
1 ответ
Вы, вероятно, испытываете это с USB-микрофоном (например, на RaspberryPi). Он говорит вам, что LiveSpeech не знает, какое аудиоустройство использовать для ввода. К счастью, согласно https://github.com/bambocher/pocketsphinx-python, есть несколько опций конфигурации, поэтому вам нужно указать audio_device.
в основном давайте сделаем:
for phrase in LiveSpeech(audio_device=3): print(phrase)
где 3, пожалуйста, замените желаемым идентификатором микрофона. Теперь как это получить:
import pyaudio
p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
print(p.get_device_info_by_index(i))
#otherwise you can do:
print(p.get_default_input_device_info())
Есть несколько тем о том, как правильно настроить USB-микрофон на RaspberryPi - если это ваш случай, дайте мне знать.