python将mp3流转换为无损wav?

在我们进行语音识别的过程中,常常需要把mp3转化为无损的wav格式。
如何操作呢?
找到一个可用的模块io,声音处理模块可以参考python声音处理
import io
aud=io.BytesIO(data)
#data的格式是mp3数据的bytestring
然后可以像用文件一样使用这段流数据,之后就可以使用mp3文件转wav的模块,而不用写入到文件再读。

以下是结合pydub验证过程:
from pydub import AudioSegment ###需要安装pydub、ffmpeg
import wave
import io
#先从本地获取mp3的bytestring作为数据样本
fp=open("hello.mp3",'rb')
data=fp.read()
fp.close()
#主要部分
aud=io.BytesIO(data)
sound=AudioSegment.from_file(aud,format='mp3')
raw_data = sound._data
#写入到文件,验证结果是否正确。
l=len(raw_data)
f=wave.open("hello.wav",'wb')
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(16000)
f.setnframes(l)
f.writeframes(raw_data)
f.close()

2 个评论

多谢分享~
正愁文档看不懂怎么转换∩ω∩

要回复文章请先登录注册