Уменьшение / удаление отсечения в SoX при преобразовании частоты дискретизации - PullRequest
24 голосов
/ 30 июля 2011

Я использую 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?

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

Ответы [ 2 ]

33 голосов
/ 31 июля 2011

Как подсказывает инструмент, попробуйте немного уменьшить громкость, например, добавив -v 0,99 (или 0,98 и т. Д.).Такие небольшие изменения в объеме незаметны.

Пример:

sox -v 0.99 <source_wav> -b 16 <dest_wav> channels 1 rate 16000 trim <startTime> =<endTime>

Если вы все еще получаете обрезку, то звук, вероятно, сильно обрезан (т.е. искажен) для начала (это часто встречается в современной музыке; см. Википедия: Война громкости ) и поэтому предупреждения можно игнорировать - никаких дополнительных искажений не вносится.

Как уже упоминалось в комментариях, можно указать параметр -G, который автоматически выполнит любую настройку требуемой громкости.чтобы избежать отсечения (за счет небольшого дополнительного процессорного времени, т.е. он работает немного медленнее с -G).

0 голосов
/ 12 мая 2016

У меня была проблема. Изменение кодировки wav-файла исправило это:

sox input.wav -e signed-integer output.wav
...