我正在使用SoX将一组wav文件修剪为16kHz,16bit,单声道wav文件(这将是其中一个初始wav文件的子集)。大多数源wav文件已经设置为这个规范,但是,我发现其中一些具有不同的采样率。因为它会使用的ProcessBuilder在Java中实现自动化,我想我可以用下面的命令:在转换采样率时减少SoX中的削波
sox <source_wav> -b 16 <dest_wav> channels 1 rate 16000 trim <startTime> =<endTime>
,它会只改变采样率,如果它不是16000赫兹。它做什么,它应该与相同规格的文件,但对不同的采样率的文件,我得到:
sox WARN rate: rate clipped 48 samples; decrease volume?
sox WARN dither: dither clipped 44 samples; decrease volume?
我应该如何处理这种不降低音频的质量?请注意,我对信号处理一无所知。
我重读了文档,并意识到我错过了'-G'选项,它自动修复增益。我想避免设置一个任意数字,所以决定使用'-G'选项。如果您将防护选项的用法附加到您的答案中,我会很高兴将此信息提供给您,因为这些信息非常丰富。 – cesar
您还可以使用'--norm'选项来防止剪辑,并且如果音频太安静,请增加它以使其成为无剪辑的最大音量。 – drojf