ubuntu - python mp3流如何轉無損wav?
黄舟
黄舟 2017-04-24 09:14:10
0
1
1377

我用百度語音webapi將文字轉成語音,百度webapi只支援返回mp3格式的流,但是我想要在即時簡單分析下波形,用FFT處理下。所以想要將mp3流轉為無損的wav格式。
但是找瞭如下的python包,
pymedia官方已經不更新,貌似不支援python2.7了,非官方的沒試;
pymad和pyogg沒有找到文檔,也沒有mp3轉無損格式的demo。
請問有什麼解決方法嗎?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(1)
阿神

自問自答,希望對碰到同樣情況的有幫助,也歡迎提出修改意見,或更好的方案。
據這幾天的搜尋很少有模組顯示地支援音訊串流格式轉換。
找到一個可用的模組io,聲音處理模組可以參考https://wiki.python.org/moin/...

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("/home/dyan/你好.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("/home/dyan/123.wav",'wb')
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(16000)
f.setnframes(l)
f.writeframes(raw_data)
f.close()
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板