我有一个严重“溢出”的WAV文件(用浮点数32位格式编写的示例):而不是-1.0,+1.0,样本范围高达-5.0,+5.0。
使用SoX从WAV文件获取原始PCM音频示例:
sox --bits 32 --channels 1 --encoding floating-point --rate 48000 input.wav output.raw
我收到警告:
sox WARN sox: `input.wav' input clipped 1163400 samples
sox WARN sox: `output.raw' output clipped 605664 samples; decrease volume?当我查看输出时,我看到样本被剪裁了,现在的范围是-1.0,+1.0。然而,这不是我想要的。
我希望有完全相同的输入输出,只是以不同的格式(RAW而不是WAV)。我需要使用命令行工具来执行任务。有什么方法可以防止SoX做剪裁吗?
发布于 2020-06-29 10:51:34
我从SoX邮件列表那里得到了答案。
所需的行为是不可能的,然而,在这种特殊的情况下,有一个解决办法。将输入示例编码重写为32位有符号整数,而不是浮点数,这些值将不受影响地复制;由于输出是无头的,所以SoX认为样本是什么并不重要。
因此,这是可行的:
sox --bits 32 --channels 1 --encoding signed-integer --rate 48000 input.wav output.raw
https://stackoverflow.com/questions/62194098
复制相似问题