搜尋

首頁  >  問答  >  主體

ubuntu - python mp3流如何轉無損wav?

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

黄舟黄舟2809 天前1383

全部回覆(1)我來回復

  • 阿神

    阿神2017-04-24 09:16:10

    自問自答,希望對碰到同樣情況的有幫助,也歡迎提出修改意見,或更好的方案。
    據這幾天的搜尋很少有模組顯示地支援音訊串流格式轉換。
    找到一個可用的模組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()
    

    回覆
    0
  • 取消回覆