Python语音识别麦克风无法识别语音

时间:2021-04-21 16:55:29

标签: python speech-recognition microphone pyaudio portaudio

我想使用语音识别来识别来自麦克风的语音(Mac Book Pro / air pod 内置)。

所以我按照说明安装了端口音频。

brew info portaudio

返回: portaudio: stable 19.7.0 (bottled), HEAD

在我的项目(pipenv 环境)中,我安装了 PyAudio 和 SpeechRecognition。 我的 pipenv 图如下所示:

cffi==1.14.5
- pycparser [required: Any, installed: 2.20]
pocketsphinx==0.1.15
PyAudio==0.2.11
SpeechRecognition==3.8.1

从音频文件中识别语音有效,但每当我使用麦克风时,它就不行。比如我在控制台输入这个命令进行测试时:

python3 -m speech_recognition 

打印出来:

A moment of silence, please...
Set minimum energy threshold to 45.131829621150224
Say something!

但它对我的声音没有反应。

或者当我运行这段代码时:

import speech_recognition as sr

# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
    r.adjust_for_ambient_noise(source)
    print("Say something!")
    audio = r.listen(source)

    # recognize speech using Sphinx
    try:
        print("Sphinx thinks you said " + r.recognize_sphinx(audio))
    except sr.UnknownValueError:
        print("Sphinx could not understand audio")
    except sr.RequestError as e:
        print("Sphinx error; {0}".format(e))

没有错误信息,但即使我说了什么,之后也没有任何反应。

当我跑步时

print(sr.Microphone.list_microphone_names())

我回来了

['AirPods of MyName', 'AirPods of MyName', 'Built-in Microphone', 'Built-in Output']

所以麦克风应该被识别。

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。不知道你有没有解决这个问题。

我的问题是在 VS Code 中使用集成终端...如此处所述Python speech recognition is stuck (Mac)

我尝试了外部终端 (iTerm),一切正常。我的终端实际上​​必须获得访问我的麦克风的许可。 VS Code 中的集成终端似乎没有获得使用权限……稍后必须弄清楚。

PS - 快速搜索后,此处发布了一个答案Mac OS Mojave microphone permission for Visual Studio Code 它仍然有点笨拙,但......有效。