语音识别器返回只收听音频的开头

时间:2020-12-20 15:59:22

标签: python speech-recognition

我正在使用 Python 的 SpeechRecognition 从音频文件中提取文本。我遇到的问题是它只适用于剪辑的几秒钟。这是我的代码:

import speech_recognition as spr

AUDIO_FILE = "file.wav"

recognizer = spr.Recognizer()

with spr.AudioFile(AUDIO_FILE) as source: 
    recognizer.adjust_for_ambient_noise(source, duration=0.2) 
    audio = recognizer.record(source)
    text = recognizer.recognize_google(audio, language='es-CL')
print(text)

识别工作正常,但只持续了几秒钟。即,text 包含与 59 秒长的音频剪辑的前 7 秒对应的词。

我不明白这是怎么发生的,也许是因为剪辑中没有声音并且识别器认为音频已经结束?有没有办法配置这个参数(如果存在)?如果不是这样,那可能是什么问题?

1 个答案:

答案 0 :(得分:0)

据我用谷歌搜索,我发现你需要给系统一个持续时间来监听整个文件,或者迭代 recog1.listen(source) 部分直到文件结束,因为 {{ 3}} 你可以检查源代码,它在第 215 行说“如果你指定 10 秒的持续时间,那么在每次迭代中你都会得到文件的下一个 10 秒”。我希望它能成功。