python做音频格式转换

来源:互联网 发布:北京java培训中心 编辑:程序博客网 时间:2024/05/21 20:30

录制及播放语音在移动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 osimport subprocessdef 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_pathif __name__ == '__main__':    amr_path = 'demo.amr'    amr2mp3(amr_path)

ps:这里只提供了.amr转.mp3,其他ffmpeg支持的格式转换原理大致相同

3.测试运行结果


原创粉丝点击