ubuntu - python mp3流如何转无损wav?

 岩蕃wy之人 发布于 2022-10-25 06:11

我用百度语音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()
    
    2022-10-26 14:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有