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

Pydub 是 Python 中最易上手、功能实用的音频处理库之一,特别适合做剪辑、格式转换、音量调节等日常任务。它底层依赖 ffmpeg(或 pyaudio/librosa 可选),但封装得非常干净,不用写复杂命令行参数就能完成大部分操作。
安装与基础准备
Pydub 本身不自带音频解码能力,需配合 ffmpeg 使用:
- 先安装 ffmpeg:Mac 上用 brew install ffmpeg;Windows 建议下载静态版并把 bin 目录加进系统 PATH;Linux 用 apt 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。










