【发布时间】:2019-03-31 22:53:27
【问题描述】:
我正在使用 Python 中的语音识别库,并尝试在提交到识别它的 API 后保存音频文件。所以,当我想将该音频保存到文件时,我的问题就出现了。
import speech_recognition as sr
r = sr.Recognizer()
mic = sr.Microphone()
print('Recording...')
with mic as source:
audio = r.listen(source)
with open("audio_file.wav", "wb") as file:
file.write(audio.frame_data)
audio_file.wav 的大小约为 210kb(大约 4 或 5 秒的录音)
当我尝试重现音频 file.wav 时,播放器抛出一个错误,提示 无法播放音频...由于编解码器问题。
我的问题是: 我错过了保存标题或类似的东西吗? 还有其他方法可以将音频字节保存到文件中吗?
编辑 我的答案在这个问题Wav file from microphone on Python
【问题讨论】:
-
假设
audio.frame_data是一个类似字节的结构,这段代码应该可以工作,虽然更安全和更惯用的方法是使用上下文管理器:with open("audio_file.wav", "wb") as file: file.write(audio.frame_data),因为它会确保文件是即使在write操作期间发生某些事情,也会关闭。此外,您可以在write之后添加file.flush()以确保将输出刷新到磁盘。 -
@TarasTsugrii。 audio.frame_data 是
<class 'bytes'>类型。我检查了您建议的安全模式并继续获得相同的结果。无论如何谢谢。 -
你还是没有说明问题是什么,应该创建一个文件就好了。
-
@NikolayShmyrev 我编辑了问题以使其更简单。我希望通过这种方式更容易理解。
-
你可以大胆打开这个无头文件。
标签: python-3.x file speech-recognition audio-recording