ubuntu - python mp3流如何转无损wav?
黄舟
黄舟 2017-04-24 09:14:10
0
1
1373

我用百度语音webapi将文字转成语音,百度webapi只支持返回mp3格式的流,但是我想要在实时简单分析下波形,用FFT处理下。所以想要将mp3流转为无损的wav格式。
但是找了如下的python包,
pymedia官方已经不更新,貌似不支持python2.7了,非官方的没试;
pymad和pyogg没有找到文档,也没有mp3转无损格式的demo。
请问有什么解决方法吗?

黄舟
黄舟

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

répondre à tous(1)
阿神

Posez et répondez à vos propres questions. J'espère que cela sera utile à ceux qui rencontrent la même situation. Vous êtes également invités à suggérer des modifications ou de meilleures solutions.
Selon les recherches effectuées ces derniers jours, très peu de modules prennent explicitement en charge la conversion du format de flux audio.
Trouvez un module io disponible. Pour le module de traitement du son, veuillez vous référer à https://wiki.python.org/moin/...

import io
aud=io.BytesIO(data)#data的格式是mp3数据的bytestring

Ensuite, vous pouvez utiliser ces données de flux comme un fichier, puis vous pouvez utiliser le fichier mp3 dans le module wav au lieu de l'écrire dans un fichier et de le relire.

Voici le processus de vérification combiné avec 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()
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal