Использование Python для измерения громкости звука - PullRequest
1 голос
/ 30 мая 2011

Я рассчитываю рассчитать громкость звука с помощью Python - возможно, путем извлечения максимальной громкости звука или использования более точного измерения (RMS?).

Какой лучший способ сделать это? Я посмотрел на pyaudio , но, похоже, это не помогло. Хорошо выглядел ruby-audio , поскольку в него, похоже, встроено sound.abs.max.

Входной аудиосигнал будет взят из различных локальных файлов MP3 продолжительностью около 30 секунд.

1 Ответ

2 голосов
/ 30 мая 2011

Я думаю, что RMS будет наиболее точной мерой. Стоит отметить, что мы воспринимаем громкость по-разному на разных частотах, поэтому конвертируем аудио в частотное пространство с помощью fft (numpy.fft отлично работает только на 30 с аудио). Теперь вычислите спектральную плотность мощности из этого. Взвесьте PSD по частоте, используя некоторую кривую громкости. Особенно частоты ниже 10 Гц, так как там будет много энергии (это будет доминировать в расчете RMS во временной области), но мы не можем слышать это. Теперь интегрируйте PSD и возьмите квадратный корень, и это даст полученное RMS.

Вы также можете разбить mp3 на разделы или окна и применить эту технику, чтобы придать громкость отдельным разделам.

...