Уменьшение / удаление отсечения в SoX при преобразовании частоты дискретизации

Я использую SoX для обрезки набора файлов wav до 16 кГц, 16 бит, моноканальных файлов wav (которые будут подмножествами одного из исходных файлов wav. ). Большинство исходных файлов wav уже настроены на эту спецификацию, однако я только что обнаружил, что некоторые из них имеют разные частоты дискретизации. Поскольку это будет автоматизировано в Java с помощью ProcessBuilder, я решил, что могу использовать следующую команду:

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?

Как мне с этим справиться, не ухудшая качества звука? Обратите внимание, что я ничего не знаю об обработке сигналов.

27
задан cesar 30 July 2011 в 09:05
поделиться