【问题标题】:Python Speech recognition 1.1.4 doesn't receive input from microphonePython 语音识别 1.1.4 不接收来自麦克风的输入
【发布时间】:2015-03-16 08:21:45
【问题描述】:

当我尝试使用 Python 的语音识别模块并提供与麦克风一起使用的示例代码时。

import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
    audio = r.listen(source)

try:
    print("You said " + r.recognize(audio))
except LookupError:
    print("Could not understand audio")

程序开始运行并不断等待输入。我已经检查了所需的 PyAudio 模块是否正常工作,并且使用主站点上提供的示例代码进行了检查。可以清楚地听到来自麦克风的输入。我设法从麦克风给它输入(有点)的唯一方法是启用立体声混音并将输入重定向到扬声器。这是唯一有效的情况。我也尝试过手动设置设备索引,正如参考部分的https://pypi.python.org/pypi/SpeechRecognition 中所说。它没有用。如果没有这些准备工作,我怎样才能让它工作? 我正在使用http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio 提供的 Python 3.4.3、语音识别 1.1.4、PyAudio 0.2.8 在 Windows 7 上工作。全部 64 位。

【问题讨论】:

    标签: speech-recognition windows-7-x64 python-3.4


    【解决方案1】:

    也许你应该指定麦克风的 ID。

    灵感来自Getting list of audio Input devices in Python,请像这样列出您的设备:

    import pyaudio
    p = pyaudio.PyAudio()
    for i in range(p.get_device_count()):
        info = p.get_device_info_by_index(i)
        print(info['index'], info['name'])
    

    例如,在我的情况下,结果是:

    0 HDA Intel MID: ALC888 Analog (hw:0,0)
    1 HDA Intel MID: ALC888 Alt Analog (hw:0,2)
    2 HDA Intel MID: ALC888 Digital (hw:0,3)
    ...
    7 Logitech G35 Headset: USB Audio (hw:2,0)
    ...
    17 pulse
    18 dmix
    19 default
    

    我的麦克风在我的耳机上,它的设备 ID 是 7。然后我使用这条线:

    with sr.Microphone(device_index=7) as source:
    

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 1970-01-01
      • 2021-08-13
      • 2021-10-03
      • 2023-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      相关资源
      最近更新 更多