当我在Python中使用语音识别时,我可以控制开始和结束时间吗?
问题描述
我进行了如下编码。不过,我想知道有没有办法控制录制时长。事实上,我想有一个程序,其中有一个开始和完成按钮,这样我就可以控制录制。我知道这是一个基本的问题。但我真的需要解决这个问题。帮帮我~我应该如何补偿这个问题?
import speech_recognition as sr
r = sr.Recognizer()
mic = sr.Microphone()
show = input("enter text: ")
print("Read texta")
with mic as source:
audio = r.listen(source)
print("recordeda")
print('Result: ', r.recognize_google(audio, language='ko-KR'))
解决方案
根据recognizer_instance.listen
文档,它是一个阻塞调用(即程序在完成之前不会继续),停止录制的唯一方法是不说话recognizer_instance.pause_threshold
(0.8s by default)。
recognizer_instance.listen_in_background
。它仍然使用相同的信号识别逻辑,但会一直循环记录短语,直到您告诉它停止。这意味着信号识别逻辑被认为对于所有实际目的都足够可靠。如果在您的情况下失败,您可能需要调整首字母energy_threshold
。
FWIW,您可以手动录制with raw pyaudio
,然后使用生成的文件或原始数据构建AudioData
。
相关文章