如何通过命令行修改音频格式而不改变音频内容
解决方法
你的问题本质是音频实际采样率为32kHz,但录制时文件头被错误标记为16kHz,导致播放时被降速播放,听起来低八度。需要修改文件的采样率元数据,而非对音频内容进行重采样。
推荐用以下两种工具实现:
1. 使用ffmpeg(更简洁可靠)
直接复制音频流,仅修改采样率元数据,不会改变音频内容:
ffmpeg -i in.wav -ar 32000 -c:a copy out.wav
-ar 32000:指定输出采样率为32kHz-c:a copy:直接复制音频编码流,不重新编码或重采样
2. 使用sox(强制不重采样)
sox默认会自动重采样,需要添加参数强制它仅修改文件头:
sox --no-rate-adjust -r 32000 in.wav out.wav
--no-rate-adjust:禁止sox对不同采样率的音频进行重采样处理-r 32000:设置输出文件的采样率元数据为32kHz
这样处理后,播放器会以32kHz的速率播放原本的音频数据,声音就会恢复正常。
内容的提问来源于stack exchange,提问作者bob mcgrath
相关产品推荐
相关产品推荐

