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

2022-04-02 00:00:00 python speech-recognition

问题描述

我进行了如下编码。不过,我想知道有没有办法控制录制时长。事实上,我想有一个程序,其中有一个开始和完成按钮,这样我就可以控制录制。我知道这是一个基本的问题。但我真的需要解决这个问题。帮帮我~我应该如何补偿这个问题?

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

相关文章