
在语音数据处理的工作中,原始录音的格式和长度常常成为麻烦的起点。不同设备录制的 WAV 文件可能使用不同编码方式,虽然扩展名一样,但内容格式并不统一。结果是:有些文件无法被语音识别工具识别,有些音频太长,不便分割和上传。这些问题不属于算法本身,却几乎决定了后续工作的顺畅与否。为了解决这些实际的麻烦,我编写了一个简单的 Python 脚本。它可以自动检测 WAV 文件是否为标准 PCM 格式,如果不是,就自动修复为统一格式;同时,还能把音频文件自动切割为固定时长的小段。这一工具能快速完成批量音频的清洗和预处理,为后续的语音识别、标注或模型训练打好基础。文章目录问题描述解决方案总结问题描述在很多语音项目中,原始音频数据来源复杂。即使都是 WAV 文件,它们也可能存在以下问题:使用了压缩编码(如 ADPCM、FLOAT)而非 PCM 编码;采样率、声道数不一致;文件时长过长,单个文件动辄几百兆甚至数小时。这些问题会导致模型训练、识别程序或标注平台无法正确加载音频,甚至直接报错。传统做法是手动用 Audacity 或 ffmpeg 命令逐个修复和切割,但在数据量较大的情况下,这样的方式低效且容易出错。解决方案针对这些问题,脚本采用了“检测—修复—分割”三步自动化流程。首先,使用soundfile库检测音频是否为标准 PCM WAV。如果检测失败或格式异常,脚本会自动调用ffmpeg将其转换为16kHz采样率、单声道、16 位深度的 PCM 格式。修复后的文件被保存到独立的目录中,以避免覆盖原始文件。其次,无论音频是否修复成功,程序都会调用 ffmpeg 的分段功能,将音频切割为固定时长的小片段(默认 300 秒)。所有分割后的文件命名有序、格式统一,方便后续管理和分析。整个过程全自动执行,用户只需运行一次脚本即可完成格式修复与切割两项任务。下面是完整的 Python 脚本,可以命名为split_audio.py。运行前需确保已安装soundfile