将 MP3 等音频格式批量转换为 WAV,并按静音段自动切分为多个小 WAV 文件。
支持切片文件批量重命名和多音频合并。
适用于英语教学音频(歌曲/儿歌类)按曲内停顿自动切分场景。
| 功能 | 说明 |
|---|---|
| 音频分割 | MP3 等格式转 WAV + 按静音自动切分 |
| 切片重命名 | 批量重命名切片文件(如 切片_001 → Rec03401) |
| 音频合并 | 多个音频按顺序拼接,可选 WAV/MP3 输出 |
- Python 3.8+
- ffmpeg(必须安装并在系统 PATH 中,或通过 imageio-ffmpeg 自动提供)
- Windows / macOS / Linux 均可运行
pip install -r requirements.txt依赖包:
pydub— 音频处理核心库imageio-ffmpeg— 提供 ffmpeg 二进制文件(无需手动安装 ffmpeg)
Python 3.13 移除了标准库 audioop 模块,而 pydub 依赖它。使用 Python 3.13 时必须额外安装替代包:
pip install audioop-lts否则启动时会报错:ModuleNotFoundError: No module named 'audioop'。
程序按以下顺序自动探测 ffmpeg:
- 环境变量
FFMPEG_BINARY指定的路径 - 系统 PATH 中的
ffmpeg命令 imageio-ffmpeg包内置的 ffmpeg
如果以上均不可用,会抛出明确的错误提示。
python app.py-
输入设置(上半部分)
- 选择「文件夹」模式:点击浏览,选择包含音频文件的目录
- 选择「文件」模式:点击浏览,选择单个或多个音频文件
- 支持的格式:mp3, wav, m4a, flac, ogg, aac, wma, aiff, opus
-
切分参数(中间部分)
- 最小静音段 (ms):产生切分的静音段至少这么长。默认 500ms,增大则忽略短停顿
- 静音阈值 (dBFS):低于此值视为静音。默认 -50.0,增大(如 -35)则更灵敏
- 保留静音 (ms):切片前后各保留的静音毫秒数。默认 300,设为 0 则无保留
- 最小切片 (ms):短于此值的切片丢弃。默认 1000(1秒),防止产生过短片段
- 最大切片 (ms):超过此长度会继续内部分切。默认 0(不限制)
- 采样率 (Hz):输出 WAV 采样率。默认 44100
- 声道数:1=单声道,2=立体声。默认 2
- 并发线程数:批量处理时的并行数。默认 1(顺序处理)
- 处理前清除旧输出:勾选时,重新处理某文件会先清空其输出子目录再生成,避免旧切片残留
-
输出与控制(下半部分)
- 选择输出目录
- 点击「开始处理」
- 进度条和日志实时显示处理状态
- 可随时点击「停止」取消处理
- 点击「切片重命名工具」打开重命名窗口
- 点击「音频合并工具」打开合并窗口
-
配置管理
- 「保存配置」按钮:将当前参数保存为 JSON 文件
- 「加载配置」按钮:从 JSON 文件恢复参数
输出目录/
├── 原文件名1/
│ ├── 切片_001.wav
│ ├── 切片_002.wav
│ └── ...
├── 原文件名2/
│ ├── 切片_001.wav
│ └── ...
└── ...
每个输入文件的切片放在同名子目录下,切片编号从 001 开始。
主界面点击「切片重命名工具」按钮打开。
- 选择包含切片 WAV 文件的文件夹
- 输入起始文件名(如
Rec03401,必须含数字) - 点击「预览重命名」查看映射
- 确认后点击「执行重命名」
命名规则:Rec03401 → Rec03401.wav、Rec03402.wav、Rec03403.wav...
支持自然排序(切片_1、切片_2、切片_10 正确排序)。
采用两阶段重命名,避免文件名冲突。
主界面点击「音频合并工具」按钮打开。
- 点击「添加文件」选择音频文件(支持多选)
- 用「上移」「下移」调整合并顺序
- 选择输出格式(WAV 或 MP3)
- 设置采样率和声道数
- 选择输出文件路径
- 点击「开始合并」
支持格式:mp3, wav, m4a, flac, ogg, aac, wma, aiff, opus
python cli.py "01 farm animals.mp3" -o output/python cli.py ./audio_folder/ -o output/python cli.py ./audio_folder/ -o output/ \
--min-silence-ms 800 \
--silence-thresh-db -45.0 \
--keep-silence-ms 200 \
--min-segment-ms 1500 \
--max-segment-ms 30000 \
--sample-rate 44100 \
--channels 2 \
--workers 4 \
-v| 参数 | 默认值 | 说明 |
|---|---|---|
--min-silence-ms |
500 | 最小静音段长度(ms) |
--silence-thresh-db |
-50.0 | 静音阈值(dBFS) |
--keep-silence-ms |
300 | 保留静音(ms) |
--min-segment-ms |
1000 | 最小切片长度(ms) |
--max-segment-ms |
0 | 最大切片长度(ms),0=不限 |
--sample-rate |
44100 | 输出采样率(Hz) |
--channels |
2 | 声道数 |
--workers |
1 | 并发线程数,0=自动 |
--no-clean |
关闭 | 不清理已存在的输出子目录 |
-v |
- | 显示详细日志 |
build_windows.bat打包完成后,可执行文件位于 dist/AudioSplitTool.exe。
打包后的 EXE 自带 ffmpeg,无需用户额外安装。
- 最小静音段:800-1200ms(歌曲间歇通常较长)
- 静音阈值:-45 ~ -40 dBFS(音乐类音频背景音较高)
- 保留静音:200-500ms(保留段首段尾自然过渡)
- 最小切片:2000-3000ms(避免产生过短的无意义片段)
- 最小静音段:500-800ms(说话间停顿较短)
- 静音阈值:-50 ~ -45 dBFS
- 保留静音:100-300ms
- 最小切片:1000-2000ms
- 内存使用:pydub 会将整个音频加载到内存。处理超过 1 小时的音频文件建议 ≥4GB RAM
- 大文件处理:单个音频文件超过 500MB 时,处理可能较慢,请耐心等待
- 静音检测:整段无声或全噪音的音频会给出明确错误提示
- 采样率影响:输出采样率不影响静音检测精度(检测在原始采样率上进行)
- 平台兼容:Windows 用户可直接运行;macOS/Linux 用户需确保 ffmpeg 可用