如果想让树莓派实时监听并转文字,应该如何修改上述代码?
时间: 2024-09-27 20:06:29 浏览: 34
科大讯飞实时语音转文字vuejs版本
如果你想让树莓派持续实时监听并转换语音,你需要对上述代码做一些调整,使其进入一个无限循环,并暂停等待新的语音输入。以下是修改后的部分代码示例:
```python
import speech_recognition as sr
from time import sleep
# 初始化 Recognizer 和 Microphone
r = sr.Recognizer()
mic = sr.Microphone()
while True:
try:
with mic as source:
# 激活噪声消除
r.adjust_for_ambient_noise(source)
print("请说话... (按 Ctrl+C 可停止)")
audio = r.listen_in_background(mic, callback=handle_speech) # 使用回调函数处理语音
# 这里可以添加其他任务或暂停,例如每隔几秒检查一次语音是否可用
sleep(0.5) # 调整这个时间以控制监听频率
except KeyboardInterrupt:
break # 当用户按下Ctrl+C时退出循环
def handle_speech(recognizer, audio):
try:
text = recognizer.recognize_google(audio, key='YOUR_GOOGLE_SPEECH_TO_TEXT_API_KEY')
print(f"你说的是: {text}")
except sr.UnknownValueError:
print("无法识别")
except sr.RequestError as e:
print(f"请求错误; {e}")
print("录音已结束.")
```
在这个版本中,`listen_in_background` 函数会将音频采集工作放到后台线程中,主程序继续运行。每当有新语音输入时,`handle_speech` 函数会被调用。记得将 `'YOUR_GOOGLE_SPEECH_TO_TEXT_API_KEY'` 替换为实际的API密钥。
阅读全文