我用百度語音webapi將文字轉成語音,百度webapi只支援返回mp3格式的流,但是我想要在即時簡單分析下波形,用FFT處理下。所以想要將mp3流轉為無損的wav格式。 但是找瞭如下的python包,pymedia官方已經不更新,貌似不支援python2.7了,非官方的沒試;pymad和pyogg沒有找到文檔,也沒有mp3轉無損格式的demo。 請問有什麼解決方法嗎?
人生最曼妙的风景,竟是内心的淡定与从容!
自問自答,希望對碰到同樣情況的有幫助,也歡迎提出修改意見,或更好的方案。 據這幾天的搜尋很少有模組顯示地支援音訊串流格式轉換。 找到一個可用的模組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()
自問自答,希望對碰到同樣情況的有幫助,也歡迎提出修改意見,或更好的方案。
據這幾天的搜尋很少有模組顯示地支援音訊串流格式轉換。
找到一個可用的模組io,聲音處理模組可以參考https://wiki.python.org/moin/...
接著可以像用檔案一樣使用這段流數據,之後就可以使用mp3檔案轉wav的模組,不用寫入到檔案再讀。
以下是結合pydub驗證過程: