我正在尝试在 Python 中使用 Google Web Speech API。我刚刚尝试了以下代码:
import speech_recognition as sr import pyaudio r = sr.Recognizer() with sr.Microphone() as source:
# read the audio data from the default microphone
print("Speak!")
audio_text = r.listen(source)
print("Recognizing...")
# convert speech to text
text = r.recognize_google(audio_text)
print("You said: ", text)
但我收到 Bad Request 400 错误。
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
speech_recognition.RequestError: recognition request failed: Bad Request
我的所有 Python 包都是最新的,那么我缺少什么?
我能够使用 Redgar Tech 的代码让它工作,但做了一些改变。不确定是否需要从操作系统导入导入路径,但它有效。
import speech_recognition as sr
from os import path
from speech_recognition.recognizers import google
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language='en-us')
print(f'User said: {query}\n')
except Exception as e:
print(e)
print("Google didn't Understand.")
第一步是导入语音识别,因为它是依赖项。通过运行 pip 并输入“pip install SpeechRecognition”进行安装 然后
import speech_recognition as sr
下一步是真正重要的部分,即 google sr 获取语音作为查询 您可以通过创建一个函数来完成此操作。我选择“takeCommand”作为函数 如下所示,您将识别器分配给变量 您可以使用变量行下方的语句打开麦克风 仅当安装了 Pyaudio 时才能使用麦克风您可以通过在终端或 ide 终端中键入“pip install pyaudio”来执行此操作 您确实需要一个异常处理程序,以防谷歌遗漏任何内容。
创建一个函数
def takeCommand():
并将以下内容放入函数中。
r = sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
audio = r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language='en-us')
print("User said: {query}\n")
except Exception as e:
print(e)
print("Google didn't Understand.")
return "None"
return query
这可以以多种不同的方式使用。如果出现任何问题,请告诉我,我什至可以提供具有此功能的程序示例。
编辑
除非您确定以下几点,否则此解决方案将不起作用: