Python音频处理教程_Pydub音频剪辑实践

13次阅读

Pydub 是易上手、功能实用的音频处理库,依赖 ffmpeg 实现加载/导出/剪辑/音量调节等操作;所有操作返回新 Audiosegment 对象,原文件不被修改。

Python音频处理教程_Pydub音频剪辑实践

Pydub 是 python 中最易上手、功能实用的音频处理库之一,特别适合做剪辑、格式转换、音量调节等日常任务。它底层依赖 ffmpeg(或 pyaudio/librosa 可选),但封装得非常干净,不用写复杂命令行参数就能完成大部分操作。

安装与基础准备

Pydub 本身不自带音频解码能力,需配合 ffmpeg 使用:

  • 先安装 ffmpeg:mac 上用 brew install ffmpegwindows 建议下载静态版并把 bin 目录加进系统 PATH;linuxapt install ffmpeg
  • 再装 Pydub:pip install pydub
  • 验证是否就绪:运行 from pydub import AudioSegment 不报错,且能成功加载 mp3/wav 文件即可

加载与导出音频文件

Pydub 把音频统一抽象为 AudioSegment 对象,所有操作都基于它:

  • 加载常见格式:song = AudioSegment.from_file(“input.mp3”) 或直接用后缀方法如 AudioSegment.from_mp3(“a.mp3”)
  • 导出时自动推断格式:song.export(“output.wav”, format=”wav”);format 参数支持 “mp3″、”ogg”、”flac” 等
  • 注意:导出 mp3 需要 ffmpeg 支持编码器(通常默认已启用),若报错可加 parameters=[“-ar”, “44100”] 指定采样率

常用剪辑操作

时间单位默认是毫秒,操作直观,无需手动算帧数:

立即学习Python免费学习笔记(深入)”;

  • 截取片段:intro = song[:30000](前30秒);bridge = song[60000:65000](第60–65秒)
  • 拼接音频:full = intro + bridge + outro(+ 号直接连接,自动对齐声道和采样率)
  • 静音插入:silence = AudioSegment.silent(duration=2000)(2秒静音),再用 song_with_pause = song[:10000] + silence + song[10000:]

音量与简单效果调整

不做专业母带处理,但日常调节足够用:

  • 增益(dB):louder = song + 5(提升5dB);quieter = song – 10(降低10dB)
  • 归一化音量:normalized = song.apply_gain(-song.dBFS)(拉到接近0dBFS)
  • 淡入淡出:faded = song.fade_in(2000).fade_out(3000)(前2秒淡入,后3秒淡出)

不复杂但容易忽略:所有操作返回新对象,原音频不会被修改;若需覆盖保存,记得显式调用 export。

text=ZqhQzanResources