我做了如下编码。但是我想知道是否有一些方法可以控制录制时间。我实际上想要一个带有开始和结束按钮的程序,以便我可以控制记录。我知道这就像一个基本问题。但我真的需要解决。帮帮我〜我该如何弥补这个问题?
import speech_recognition as sr
r = sr.Recognizer()
mic = sr.Microphone()
show = input("enter text: ")
print("Read text\a")
with mic as source:
audio = r.listen(source)
print("recorded\a")
print('Result: ', r.recognize_google(audio, language='ko-KR'))
答案 0 :(得分:0)
根据recognizer_instance.listen
文档,这是一个阻塞的调用(即程序直到完成后才继续执行),并且停止录音的唯一方法是不与recognizer_instance.pause_threshold
通话({{3 }}。
要在录制处于活动状态时能够执行其他任何操作,您需要使用0.8s by default。它仍然使用相同的信号识别逻辑,但是将记录短语保持循环,直到您告诉它停止为止。这意味着对于所有实际目的,信号识别逻辑应该足够可靠。如果失败,则可能需要调整初始recognizer_instance.listen_in_background
。
FWIW,您可以手动记录energy_threshold
,然后使用生成的文件或原始数据来构建with raw pyaudio
。