在python中使用语音识别时,可以控制开始和结束时间吗?

时间:2019-05-18 16:35:33

标签: python speech-recognition

我做了如下编码。但是我想知道是否有一些方法可以控制录制时间。我实际上想要一个带有开始和结束按钮的程序,以便我可以控制记录。我知道这就像一个基本问题。但我真的需要解决。帮帮我〜我该如何弥补这个问题?

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'))

1 个答案:

答案 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