语音识别是一个非常好的库,但我也不得不与录音长度作斗争。以下是我解决该问题的方法:
将音频保存到磁盘
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/