我正在使用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