录制及播放语音在移动APP比较常见,但不同的手机录制的音频文件格式存在差异,所以存在对录制的音频进行格式转换的需求,以下提供了一种python对音频格式进行转换的方案,记录如下:
1.本方案的核心是利用ffmpeg音频转换程序,思路是直接通过python调用cmd命令启动ffmpeg程序对音频进行格式转换。首先我们需要到ffmpeg官网下载压缩包,下载地址为:http://ffmpeg.zeranoe.com/builds/。下载完毕解压后的目录结构如下图:
ps:可以将bin目录添加到环境变量,这样可以在音频文件所在目录打开cmd命令行窗口输入转换命令进行格式转换。(例:ffmpeg -i input.mp4 output.avi)
2.python代码部分
测试目录结构图:
测试代码:
import os
import subprocess
def amr2mp3(amr_path,mp3_path=None):
path, name = os.path.split(amr_path)
if name.split('.')[-1]!='amr':
print 'not a amr file'
return 0
if mp3_path is None or mp3_path.split('.')[-1]!='mp3':
mp3_path = os.path.join(path, name.split('.')[0] +'.mp3')
error = subprocess.call(['ffmpeg/bin/ffmpeg','-i',amr_path,mp3_path])
print error
if error:
return 0
print 'success'
return mp3_path
if __name__ == '__main__':
amr_path = 'demo.amr'
amr2mp3(amr_path)
3.测试运行结果