Как я могу получить уровень громкости из необработанных данных, полученных с микрофона в DirectShow?
IMediaSample хранит данные в байтах. И как я могу прочитать эти байты и получить что-то?
Громкость — это слуховое качество, а не физическая формула. Есть много много определений для этого.
Это также временная ценность. Как следствие, это значение изменяется во времени.
Самая простая реализация, которую я помню несколько лет назад, заключалась в простом выделении максимального значения амплитуды. Но логарифм амплитуды конечно лучше приблизить чувствительность уха гораздо ближе.
Вы также можете учитывать мощность сигнала (сигнал * сигнал … но есть и другие определения, которые учитывают компоненты частотного спектра …).
Это кухонные рецепты. Выбери самый простой.
редактироватькажется, мой ответ был слишком быстрым и нечетким, я, вероятно, ошибаюсь в громкости и громкости. эта статья в википедии штаты есть единицы измерения громкости. Соня а также Phon.
Вам необходимо обработать данные, чтобы вычислить громкость из необработанных байтов. Один из методов определен в BS.1770: Алгоритмы для измерения громкости звуковых программ и истинно пикового уровня звука спецификация и описывает алгоритм.