我正在使用 SoX 将一组 wav 文件修剪为 16kHz、16 位、单声道 wav 文件(这将是一个初始 wav 文件的子集)。大多数源 wav 文件已经设置为这个规范,但是,我刚刚发现其中一些具有不同的采样率。由于它将使用 ProcessBuilder 在 Java 中实现自动化,我想我可以使用以下命令:
sox <source_wav> -b 16 <dest_wav> channels 1 rate 16000 trim <startTime> =<endTime>
如果不是 16000 Hz,它只会改变采样率。它对具有相同规范的文件执行应有的操作,但在具有不同采样率的文件上,我得到:
sox WARN rate: rate clipped 48 samples; decrease volume?
sox WARN dither: dither clipped 44 samples; decrease volume?
我应该如何在不降低音频质量的情况下处理这个问题?请注意,我对信号处理一无所知。