Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 50

Поиск звуков в аудиозаписи

03.02.2019, 12:41. Показов 921. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
У меня есть следующая задача:
Есть некоторый аудиофайл прочитанный в массив, из которого получена спектрограмма с помощью преобразования Фурье
В начальном аудиофайле присутствует один или несколько звуков
Получается вот такая спектрограмма
(в данном примере в каждый момент времени звук один)
(на графике по высоте идет частота, по длине время, цвет отмечает громкость для конкретной частоты)

Из статей по теории звука я понял, что звук издаваемый реальным объектом(не синтезированный) имеет обертона, т.е. призвуки меньшей громкости, частота которых кратна частоте самого звука
Тоесть в аудиозаписи присутствуют
1)Сами звуки
2)Их обертона
3)шум получающийся из-за дефектов записывающей аппаратуры, потере точности при работе с числами с плавающей точкой и тд
Соответственно мне нужно найти каждый звук(если такие есть) для каждого момента записи

Если принять, что звук на момент времени всегда один, и что он всегда громче шумов, то можно было бы просто искать для каждого момента времени самое большое значение громкости и если оно выше некоторого порога, то считать это за звук

Но
1)Звуков может быть много
2)одновременно может быть тихий и громкий звуки

Это значительно усложняет задачу
Для начала я реализовал функцию поиска пиков на графике
Вот так выглядит спектрограмма с отмеченными на ней пиками

А вот так выглядит график для отдельного момента времени


Зеленым обозначено расположение пиков
В данном конкретном случае номер 2 является звуком,
номера 4, 7, 10, 12, 14,15, 20, 22, 25, 29... являются обертонами этого звука
остальное является шумами

Первый способ поиска который я попробовал, это искать цепочки пиков, в которых координата каждого кратна координате первого элемента

И к моему удивлению все сработало с первого раза
На записи пианино звуки были определенны идеально
Но это была случайность
Как в последствии показали тесты, в 95% случаев координаты обертонов отличаются от идеальных
Причем у высоких звуков это отклонение может составлять вплоть до 1/7 частоты самого звука

Делать поиск с разбросом безсмысленно, т.к. в такой разброс гарантированно попадут мусорные пики

Была еще одна идея
А именно
Я генерировал комбинации со всеми возможными пиками попадающих в зоны разброса, для каждой комбинации считал средне арифметическое отклонение от идеальных значений, и если оно не превышало 0.1 от частоты первого элемента (то есть предполагаемого звука), то этот элемент считался звуком

Такой подход тоже показал себя крайне плохо
Этот алгоритм находил звуки там где их нет и пропускал там где они есть

Также я составил еще несколько вариаций этого алгоритма, но не одна из них не дала хоть сколько ни будь приемлемого результата
В результате, изрядно намучившись, я обращаюсь сюда за помощью
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2019, 12:41
Ответы с готовыми решениями:

Поиск звуков в аудиозаписи на Java
Здравствуйте У меня есть следующая задача: Есть некоторый аудиофайл прочитанный в массив, из которого получена спектрограмма с помощью...

Даны набор гласных звуков и текст. Составьте набор, кроме гласных звуков в тексте
Даны набор гласных звуков и текст. Составьте набор, кроме гласных звуков в тексте

Даны набор гласных звуков и текст. Составьте набор, кроме гласных звуков в тексте
Даны набор гласных звуков и текст. Составьте набор, кроме гласных звуков в тексте

1
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
03.02.2019, 15:35
ну нет же понятия звук
есть некий сигнал
у сигнала нужно выделить характерные признаки, чтобы именно их и искать
это может быть набор частот и или периодичность, или бох знает что еще
т.е. сама задача и является задачей подбора хорошей метрики

что конкретно вы собираетесь распознавать, какой "звук" выделять ?
обычно все алгоритмы распознавания эвристические и сильно зависят от исходных данных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2019, 15:35
Помогаю со студенческими работами здесь

Аудиозаписи ВКонтакте
Ребят,проблема такая. Решил вчера музыку послушать в ВК,а она не воспроизводится,даже не буферизируется. Причем не все треки,некоторые...

Url аудиозаписи с компьютера
Здравствуйте уважаемые форумчане. Столкнулся с проблемой пытаясь решить очередную свою гениальную идею)) Задача стоит в том, чтобы...

Убрать шум с аудиозаписи
Записал с ютюба девченка играет на Ханге, красивая мелодия, но запись с посторонним шумом. Кто может вычистить ее?

Изменить формат аудиозаписи
Здравствуйте, не подскажите как поменять формат песни из wav в mp3? спасибо за ранее)

Чем шифруют/дешифруют аудиозаписи?
Преподаватель дал аудиозапись, которую нужно расшифровать. Каким методом или средствами это можно сделать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru