Значения из моего преобразования в формат .dat с использованием sox, похоже, не нормализованы - надеюсь, кто-то увидит, что я делаю неправильно.
Я пытаюсь сделать что-то похожее на то, что описано в этот замечательный пост SO о sox и gnuplot (я отправляю значения для обработки в Java, поэтому немного другой контекст).Проблема в том, что в моем файле .dat я получаю "только небольшие значения", в то время как на страницах руководства написано, что они будут нормализованы между -1 и 1.
После установки пакетов обработки sox и mp3 я делаюследующие для проверки:
sox elevator.mp3 -c 1 -r 11000 elevator_mediumres.dat
cat elevator_mediumres.dat |cut -c21-33 > elevator_mediumres_values_only.dat
sort -n elevator_mediumres_values_only.dat > elevator_mediumres_values_only_sorted.dat
# echo min $(head -1 elevator_mediumres_values_only_sorted.dat) max $(tail -1 elevator_mediumres_values_only_sorted.dat)
Это дает вывод "min -0.48370361 max 9.1552734e-05".Если я выполню первую команду для wav вместо dat, wav-файл звучит нормально (так же хорошо, как и моно 11 кГц из "Любви в лифте" Aerosmith).Я мог бы, конечно, потом нормализовать данные вручную, но я надеюсь, что есть лучший и более простой способ.
Спасибо,
-S-