python做音频格式转换

录制及播放语音在移动APP比较常见,但不同的手机录制的音频文件格式存在差异,所以存在对录制的音频进行格式转换的需求,以下提供了一种python对音频格式进行转换的方案,记录如下:

1.本方案的核心是利用ffmpeg音频转换程序,思路是直接通过python调用cmd命令启动ffmpeg程序对音频进行格式转换。首先我们需要到ffmpeg官网下载压缩包,下载地址为:http://ffmpeg.zeranoe.com/builds/。下载完毕解压后的目录结构如下图:

python做音频格式转换_第1张图片

ps:可以将bin目录添加到环境变量,这样可以在音频文件所在目录打开cmd命令行窗口输入转换命令进行格式转换。(例:ffmpeg -i input.mp4 output.avi)

2.python代码部分

测试目录结构图:

python做音频格式转换_第2张图片

测试代码:

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)

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

3.测试运行结果

python做音频格式转换_第3张图片

你可能感兴趣的:(python)