从微信下载下来的语音是 mp3 格式的,想调用百度语音 api,发现不支持 mp3,支持 wav。
准备:
需要安装 pydub 库,直接pip install pydub
就好了。
还需要安装 ffmpeg.exe 文件,然后再配置一下就好了,请看:
ffmpeg.exe 的安装及配置,与常见问题
原理:
读取 mp3 音频的波形数据,然后再写入 wav 文件。
from pydub import AudioSegment
import wave
# 读取mp3的波形数据
sound = AudioSegment.from_file("666.mp3", format = 'MP3')
# 将读取的波形数据转化为wav
f = wave.open("777.wav", 'wb')
f.setnchannels(1) # 频道数
f.setsampwidth(2) # 量化位数
f.setframerate(16000) # 取样频率
f.setnframes(len(sound._data)) # 取样点数,波形数据的长度
f.writeframes(sound._data) # 写入波形数据
f.close()
运行效果图:
原 mp3 只有 2k 左右,转化后 31.5k,听着效果跟原音频没有差别,保真度很高!
喜欢的点个赞❤吧!