2019-08-19 python编辑音频文件(一)

运行环境

  • Windows10
  • Pycharm 2019.2
  • Python 3.7.4
  • pydub 0.23.1
  • libav w64-mingw32-20180108

一、环境安装

1、安装pydub
pip install pydub
2、安装libav

http://builds.libav.org/windows/
进入Libav官网,下载自己对应的版本。

我下在的是windows的64位版本,当然,要最新的,目前2018的就是最新的。
http://builds.libav.org/windows/nightly-gpl/libav-x86_64-w64-mingw32-20180108.7z

如果你是其他系统或者32位系统,请对照自己的实际情况进行下载。
下载完成解压,将文件夹名重命名为libav,并将这个文件夹复制到C盘根目录下(其他也可以,这样更方便)。
回到桌面,接下来的操作顺序是:

我的电脑 > 属性 > 高级系统设置 > 环境变量 > Path > 编辑 > 新建 > 输入C:\libav\usr\bin > 确定

OK,libav已经配置完成。

3、写代码——批量音频文件的处理
from pydub import AudioSegment                      # 导入pydub库中的AudioSegment
import os,re                                        # 导入os和re

for each in os.listdir('.'):                        # 循环目录下所有文件
    filename = re.findall(r"(.*?)\.mp3", each)      # 取出.mp3后缀的文件名,这里只取文件名字,不带后缀
    if filename:
        for i in range(len(filename)):
            filename[i] += '.mp3'                   # 如果有结果,则将第一个文件名加上mp3的后缀
            mp3 = AudioSegment.from_mp3(filename[i])    # 将mp3文件加载并赋给变量mp3
            mp3[9000:].export('new_'+filename[i], format="mp3")  # 截掉前9秒,以"new_"+原文件名作为新的文件名,将9秒及之后的音频保存在当前目录下
            print(filename[i]+'已生成。')

OK,大功告成,如果想要快速批量处理,就需要再加多进程,实验单进程下72首完整歌曲,截掉前9秒,共用时5-8分钟。

说明:

  1. 注意循环嵌套及逻辑上的处理,如果要获取某路径下的批量文件,需要注意路径的表达方式,另存为其他路径的时候也一样;
  2. AudioSegment.from_mp3()是pydub中加载mp3文件的函数,每个格式不一样,可参考官方文档;
  3. mp3[9000:]这里方括号中的意思9000毫秒,也就是9秒。特别注意,最后的冒号!不能遗忘!和python中的切片是一个原理;
  4. format="mp3"是要输出的音频格式。

如果你有更好的方法或者疑惑,可以随时交流。留言即可,每天都会看的哦。

你可能感兴趣的:(2019-08-19 python编辑音频文件(一))