|
2 / 2 / 0
Регистрация: 24.03.2013
Сообщений: 59
|
|
Wav-файл(набор значений громкости)12.01.2019, 20:55. Показов 3634. Ответов 4
Метки нет (Все метки)
В рамках работы возник вопрос, после получения data wav файла, я имею набор из 2 в -8 до 2 в 8.
Для нахождения максимальной громкости, допустим в секунду, мне надо просто складывать значения за секунду, или складывать их по модулю?
0
|
|
| 12.01.2019, 20:55 | |
|
Ответы с готовыми решениями:
4
Получить массив double значений с использованием mmsystem и записать wav файл Написать программу, формирующую по исходному WAV файлу новый WAV файл |
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 13.01.2019, 20:40 | ||
Сообщение было отмечено aa41014091 как решение
РешениеСкладывать нужно по модулю. Добавлено через 13 минут Но это всё же не максимальная громкость как таковая, а пиковое значение. Причём, если среднее значение окажется не в нуле (оно может быть смещено по факту и иногда значительно), то результат будет некорректный. К примеру, амплитуда колеблется от -100 до +199, среднее скорее всего будет при этом в районе +50. И тогда пик будет = 150, а не 199. Но просто взять минимум и максимум и найти среднее – это неверно, среднее значение рассчитывается так: Здесь N - кол-во отсчётов, xi - значение отсчёта (как есть, неабсолютное; i = от 0 до N-1). Потом вычитаем из пика Но вообще, для получения громкости я бы вычислял не пик, а RMS (среднеквадратическое отклонение): ( Так будет правильнее. Естественно, чем больше N, тем точнее результат. Одна секунда - нормально, 10 отсчётов - не годится. Добавлено через 6 минут N-1 в знаменателе (под корнем) - это не ошибка, для этого есть основания (компенсация статистических погрешностей). Добавлено через 10 минут Ещё одна формула (чтобы 2 раза по массиву не бегать): или по простому: где SqrSum - сумма квадратов отсчётов, а Sum - просто сумма отсчётов. Красная линия на рисунке - это ноль. Сиреневая - среднее значение (т.е. как бы положение реального нуля). Разница между ними - это Пик (жёлтая линия) не зависит от остальных отсчётов волны. И если записана тишина и один громкий щелчок, мы получим завышенное значение "громкости". RMS (зелёная линия) получается исходя из всех значений. Если будет везде громко, то и RMS будет большим. Если будет тихо, то вне зависимости от случайных всплесков, результат будет тоже низким. Это более объективная оценка громкости.
1
|
||
|
2 / 2 / 0
Регистрация: 24.03.2013
Сообщений: 59
|
|
| 31.03.2019, 16:24 [ТС] | |
|
Хм, допустим я нахожу RMS всей звуковой дорожки(допустим, продолжительностью 1 час == 3600 сек == 3600* 44100 значений), и мне надо находить те секунды, где особенно громкая. Далее мне стоит находить значения RMS за секунду(1-10), а затем сравнить с общим RMSом?
Добавлено через 24 секунды
0
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 31.03.2019, 21:21 | ||
|
Как вариант, можно просчитать каждую секунду (я бы на самом деле сделал с нахлёстом... хотя смотря что за задача у вас, не совсем понятно пока что, для чего это всё), затем отсортировать в порядке уменьшения (сохранив связь между RMS и номером секунды). И дальше уже взять столько, сколько нужно (5% от всего файла; громче среднего арифметического между максимумом и средним RMS; громче 80% от максимума и т.д. – в зависимости от задачи). Понятие "особенно громкая" слишком расплывчатое. Особенно в сравнении с чем? Для кого/чего? И т.д.
0
|
||
|
2 / 2 / 0
Регистрация: 24.03.2013
Сообщений: 59
|
||
| 01.04.2019, 02:01 [ТС] | ||
|
с использованием только среднего значения, я находил его для каждой секунду, и после брал 2% значений. дальше создавал интервалы(условно, если в этих 2% были близкие друг к другу), то я их объединял. эффективность метода в районе 15% получилась. Теперь я вернулся к этой задаче и пробую увеличить эффективность каким-либо образом) Добавлено через 21 минуту попробовал RMS, значение от среднего по итоге на 10 отличается, что на таком диапазоне ничего не дает. поэксперементирую, конечно, и дальше уже для секунд и тд
0
|
||
| 01.04.2019, 02:01 | |
|
Помогаю со студенческими работами здесь
5
Создать wav файл имея raw файл с данными
Преобразование .wav файла в массив значений Самый простой вариант считать массив значений из wav? Wav файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|