sox преобразовать в параметры спектрограммы, означающие

Здесь я хочу использовать sox для преобразования файла flac в файл спектрограммы png. Когда я хочу преобразовать файл .flac, я могу использовать следующую команду

sox output.flac -n spectrogram -r -o a.png

И если я хочу преобразовать в спектрограмму N x 129 пикселей, я могу использовать следующую команду

sox output.flac -n spectrogram -Y 200 -X 50 -m -r -o spectogram.png

Однако я не совсем понимаю, что означают параметры -Y 200 и -X 50, т.е. есть ли способ преобразовать эти параметры в частоту дискретизации, интервал времени (в миллисекундах), а также интервал частоты, как в Matlab или Python. Было бы здорово, если бы кто-то мог подробно ответить здесь, поскольку в документации в chirlu/sox не указано четко что это значит (или я не нашел это явно).


sox
person titipata    schedule 30.04.2018    source источник


Ответы (1)


Официальное руководство по sox полностью описывает параметры, а исходный код здесь спектрограмма. в.

Но кратко:

−X число:

пикселей по оси X/секунду; значение по умолчанию вычисляется автоматически, чтобы соответствовать заданной или известной длительности звука размеру по оси X или 100 в противном случае. Если указан вместе с -d, этот параметр влияет на ширину спектрограммы; в противном случае это влияет на продолжительность спектрограммы. num может принимать значения от 1 (низкое временное разрешение) до 5000 (высокое временное разрешение) и не обязательно должно быть целым числом.

и

-Y число:

Устанавливает целевую общую высоту спектрограммы. Значение по умолчанию — 550 пикселей. Используя эту опцию (и по умолчанию), SoX выберет высоту для отдельных каналов спектрограммы, которая на единицу больше степени двойки, поэтому фактическая общая высота может не соответствовать заданному числу.

Для -X 50 горизонтальное временное разрешение:

dt = 1000/50 = 20 ms/pixel

Для -Y 200 наибольшая степень числа 2 меньше 200 равна 128. При частоте дискретизации 44,1 кГц разрешение по частоте равно:

bin_size = 44100/128 = 344.5 Hz
person tonys    schedule 30.04.2018
comment
Я только что заметил, что -Y будет выбирать диапазон частот, попадающий в 2^n. Вот почему он достигает 128, а не 50. - person titipata; 30.04.2018