如何在终端提取WAV样本并保留原比特率且不修改原文件
解决WAV片段无损提取问题
关于SoX的正确用法
你使用的SoX命令本身不会修改原文件——SoX的逻辑是读取输入文件,处理后写入独立的输出文件,原文件STE-024.wav应该是完整未改动的。如果出现原文件被修改的情况,大概率是操作时输入输出路径重复,或是误执行了其他覆盖命令。
要严格满足「保留原格式参数、无抖动、无额外加工」的要求,调整后的SoX命令如下:
sox --no-dither --rate -v --bits -v --channels -v STE-024.wav ../../raw/1/sample1.wav trim 02:18.155 =02:30.625
参数说明:
--no-dither:强制禁用抖动处理--rate -v/--bits -v/--channels -v:强制继承输入文件的采样率、比特深度、声道数,避免SoX自动转换格式=02:30.625:用=前缀表示提取的结束时间(而非持续时间),这才是你需要的「从02:18.155到02:30.625」的正确写法——你之前的命令把02:30.625当成了持续时间,会提取远超预期的片段,这可能是你产生误解的原因。
更适配的工具推荐
FFmpeg
FFmpeg在无损音频片段提取上更高效简洁,默认会完全保留原文件的所有参数,且直接复制音频流(无重新编码):
ffmpeg -i STE-024.wav -ss 02:18.155 -to 02:30.625 -c copy ../../raw/1/sample1.wav
-ss:起始时间-to:结束时间-c copy:直接复制音频流,速度极快,无任何额外加工,100%保留原格式参数
内容的提问来源于stack exchange,提问作者ciemborowicz
相关产品推荐
相关产品推荐

