我正在使用NextEch桌面麦克风进行输入,并且我知道它有效,因为我在设置中对其进行了测试。我正在使用Python 2.7。当我执行下面的代码时,脚本就像卡在audio = r.listen(source)
上一样。当我执行键盘中断以终止脚本时,这是追溯:
Traceback (most recent call last):
File "test_audio.py", line 12, in <module>
listen()
File "test_audio.py", line 6, in listen
audio = r.listen(source)
File "/usr/local/lib/python2.7/dist-packages/speech_recognition /__init__.py", line 559, in listen
buffer = source.stream.read(source.CHUNK)
File "/usr/local/lib/python2.7/dist-packages/speech_recognition/__init__.py", line 161, in read
return self.pyaudio_stream.read(size, exception_on_overflow=False)
File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 608, in read
return pa.read_stream(self._stream, num_frames, exception_on_overflow)
KeyboardInterrupt
这是代码:
import speech_recognition as sr
def listen():
r = sr.Recognizer()
with sr.Microphone() as source:
audio = r.listen(source)
try:
print(r.recognize_wit(audio, key="############################"))
except sr.RequestError as e:
return "There was an error with the speech recognititon software."
listen()
这对您来说可能很有趣:
即使我不说话,识别者也试图识别语音, 或者我说话后。
尝试增加
recognizer_instance.energy_threshold
属性。这 基本上是识别器对识别者的敏感程度 应该开始。较高的值意味着它将不太敏感,这将 如果您在大声的房间里很有用。
来源:https://pypi.python.org/pypi/speechrecognition/
这是解决方案:
print("Speak something")
audio = r.listen(source)
try:
said = r.recognize_google(audio)
print(f"You said: {said}")
except Exception as e:
print(f"I think you are at very noisy place,nThis is the error in computer languge: {str(e)}")
在" audio = r.listen(source)"的行中。已编写,您只需要添加另一个参数" phrase_time_limit = 5&quot"。看起来像这样:
audio = r.listen(source,phrase_time_limit=5)