Использование Python для измерения громкости звука

1

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

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

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

  • 0
    PyMedia предоставляет getVolume .
Теги:
audio
audio-analysis

1 ответ

2
Лучший ответ

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

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

  • 0
    Привет Ли, спасибо за это подробное описание! Вы отлично ответили на мой первый вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню