Windows下批量降采样WAV文件:从48kHz转44.1kHz并跳过目标采样率文件
Windows平台批量WAV降采样方案(适配Praat TextGrid对齐)
针对1500余个WAV文件的批量48kHz转44.1kHz需求,推荐使用FFmpeg实现,它能精准控制采样率、严格保留时长与音质,完全适配Praat TextGrid对齐要求,同时自动跳过已为44.1kHz的文件。
核心方案步骤
1. 准备FFmpeg
下载Windows静态版FFmpeg,解压后将其bin目录添加到系统环境变量PATH中,确保能在命令行直接调用ffmpeg和ffprobe。
2. 编写批量处理脚本
创建一个后缀为.bat的批处理文件,将以下代码复制进去,放到存放WAV文件的文件夹中:
@echo off setlocal enabledelayedexpansion for %%f in (*.wav) do ( rem 获取当前文件的采样率 for /f "tokens=2 delims==" %%r in ('ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 "%%f"') do ( set "sr=%%r" if !sr! equ 48000 ( echo 处理:%%f rem 转码为44.1kHz,保留原编码、声道数,确保时长完全对齐 ffmpeg -i "%%f" -ar 44100 -acodec copy "%%~nf_44100.wav" ) else if !sr! equ 44100 ( echo 已为44.1kHz,跳过:%%f ) else ( echo 非目标采样率(!sr!Hz),跳过:%%f ) ) ) echo 所有文件处理完成! pause
3. 运行脚本
双击该.bat文件,脚本会自动遍历所有WAV文件:
- 仅处理采样率为48kHz的文件,生成后缀为
_44100.wav的44.1kHz文件 - 自动跳过44.1kHz及其他采样率的文件
- 转码过程严格保留原文件的编码格式、声道数与时长,完全匹配Praat TextGrid的对齐需求
关键参数说明
ffprobe:精准读取音频文件的采样率,避免误判-ar 44100:指定输出采样率为44100Hz(44.1kHz)-acodec copy:直接复制原音频编码(仅适用于PCM格式WAV,若原文件为其他编码,可替换为-acodec pcm_s16le以保证无损音质)- 输出文件命名规则:避免覆盖原文件,如需直接替换原文件,可将输出路径改为
"%%f"(操作前务必备份原文件)
备选方案:SoX
若偏好轻量音频工具,可使用SoX,脚本逻辑类似:
@echo off for %%f in (*.wav) do ( soxi -r "%%f" | findstr /C:"48000" >nul if errorlevel 0 ( echo 处理:%%f sox "%%f" "%%~nf_44100.wav" rate -v 44100 ) else ( soxi -r "%%f" | findstr /C:"44100" >nul if errorlevel 0 ( echo 已为44.1kHz,跳过:%%f ) ) ) pause
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

