如何增加谷歌语音API的收听时间?

2024-04-14

我已经使用谷歌语音到文本 api 制作了一个工作语音到文本程序,该程序记录语音并将其复制到 .txt 中,但是,谷歌语音 api 不会监听很长时间(大约 9 秒),有什么办法可以增加这个时间,或者在 python 中使用更好的 api,可以边听边写?

import time
import speech_recognition as sr
import sys
import fileinput
r=sr.Recognizer()
#tells the program to use a mic and to listen
with sr.Microphone() as source:
    audio=r.listen(source)
#asking the program to try to listen
try:
    spoken = r.recognize_google(audio)

    print("I heard:"+spoken)

except Exception:
    print ("Somthing went wrong")
#writing what was recorded by the mic into a .txt
with open("name-of-file.txt", "a") as f:
    f.write("\n")
    f.write(time.strftime("%H:%M:%S") + " " + time.strftime("%d/%m/%Y"))
    f.write("\n")
    f.write(spoken)

预期结果: 程序同时听和写 或者 该程序可以监听直到关闭。 实际结果: 程序监听约 9 秒,然后打印到 .txt


语音识别是一个非常好的库,但我也不得不与录音长度作斗争。以下是我解决该问题的方法:

将音频保存到磁盘

with sr.AudioFile('path/to/audiofile.wav') as source:
    audio = r.record(source)

优点:与流媒体相比,录制到音频文件然后向谷歌发送更长的块给了我更一致的录制长度。

缺点:根据音频文件的大小,这可能会带来将响应时间延长到几秒钟的缺点,这在您的情况下可能无法使用。

最小化本底噪声

您可能已经非常清楚,更好的信噪比将提供更好的 STT 准确性 - 但我也发现这对于语音识别库的良好块大小至关重要。

仔细检查您的本底噪声是否可以轻松与源区分开。录制音频也可以帮助您解决此问题。有时,使用语音识别库可能会导致音频过早中断,因为它无法清楚地检测到您正在说话。

如果无法提高麦克风的质量或接近度,库中包含一个工具,可以校准音频电平以实现最佳的信号噪声区分。

要激活此功能,而不是使用以下命令:

audio=r.listen(source)

尝试使用:

audio=r.adjust_for_ambient_noise(source)

请注意,此功能在某些情况下会增加少量延迟。在其他情况下,如果您向它提供嘈杂的音频,它会无限期地继续监听。

结合一切

with sr.AudioFile('path/to/audiofile.wav') as source:
    audio = r.adjust_for_ambient_noise(source)

这是这个库的一个很好的指南 -Python 语音识别终极指南 https://realpython.com/python-speech-recognition/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何增加谷歌语音API的收听时间? 的相关文章

随机推荐