Аудиоанализ Python: найдите в реальном времени значения самого сильного удара в каждом метре - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть песня, и я хотел бы использовать Python для ее анализа.

Мне нужно найти "основные звуки" в песне.Я использую этот термин, потому что я не знаю технический термин для него, но вот что я имею в виду:

https://www.youtube.com/watch?v=TYYyMu3pzL4

Если вы играете только первую секунду песни, ярассчитывать около 4 основных звуков.

В общем, это те же звуки, которые человек напевал бы, если бы напевал песню.

Как они называются?И есть ли функция в librosa (или любом другом языке библиотеки / языка программирования), которая может помочь мне точно определить их появление в песне?

Я могу предоставить больше информации / примеров по мере необходимости.

ОБНОВЛЕНИЕ: Проведя дополнительные исследования, я считаю, что я ищу то, что называется "сильнейшими ударами".Librosa уже имеет функцию beat_track, но я думаю, что это дает вам все, что можно назвать ударением в песне.Я не хочу каждый удар, только те, которые выделяются больше всего.Главная цель здесь - создать музыкальное видео, в котором главное действие, происходящее на экране, идеально сочетается с сильнейшими ударами.Это создает синергетический эффект в видео - все чувствует себя связанным.

1 Ответ

0 голосов
/ 17 февраля 2019

Процесс анализа аудио для определения его звуковых архетипов можно назвать acoustic fingerprinting

Аудио имеет временное измерение, поэтому для того, чтобы засвидетельствовать ваши "основные звуки", требуется прослушивание аудио в течение определенного периода времени.через последовательность мгновенных аудиосэмплов.Аудио можно рассматривать как кривую временного ряда, в которой для каждого момента времени вы записываете высоту звуковой кривой, оцифрованной в формате PCM.Требуется время настенных часов, чтобы услышать данный «основной звук».Здесь ваше аудио находится в своем естественном состоянии во временной области.Однако информационная нагрузка участка звука может быть преобразована в его аналог в частотной области путем подачи окна выборок звука в вызов API fft (чтобы принять его преобразование Фурье).

Очень тонкий аспект использования БПФ состоит в том, что он удаляет измерение времени из входных данных и заменяет его дистилляцией, сохраняя при этом входную информационную нагрузку.Кроме того, если аудио является периодическим после преобразования из временной области в его представление частотной области путем применения преобразования Фурье, оно может быть восстановлено обратно в ту же самую идентичную звуковую кривую во временной области путем применения обратного преобразования Фурье.Данные, которые начинали жизнь как кривая, которая колеблется вверх и вниз во времени, теперь представляются как разброс частот, каждая из которых имеет интенсивность и сдвиг фазы, но критически, без какого-либо представления о времени.Теперь у вас есть возможность вытащить из этого статического массива частот набор атрибутов, которые могут быть представлены структурной структурой данных с обычной структурой и в то же время проникнуть в ее временные источники.

Здесь вы можете найти свои "основные звуки".В первом приближении вы просто складываете верхние X-частоты вместе с их значениями интенсивности, и это является мерой заданного отрезка времени вашего входного аудио, захваченного как его «основной звук».Как только у вас есть коллекция «основных звуков», вы можете использовать это, чтобы определить, когда любое последующее аудио содержит возникновение «основного звука», выполнив тест на совпадение различий между предварительно сохраненным набором «основных звуков» и БПФтекущее окно аудиосэмплов.Вы нашли совпадение, когда между значениями интенсивности частот каждой из этих верхних частот X текущего результата БПФ мало или нет различий по сравнению с каждым предварительно сохраненным «основным звуком»

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

Вот некоторые ссылки на аудио-дактилоскопию

Аудио-дактилоскопия и распознавание в Python https://github.com/worldveil/dejavu

Аудио-отпечатки пальцев с Python и Numpy http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/

Shazam-подобные акустические отпечатки непрерывных аудиопотоков (github.com) https://news.ycombinator.com/item?id=15809291

https://github.com/dest4/stream-audio-fingerprint

Аудио ориентир fingerprinting как модуль Node Stream - nodejs преобразует аудиосигнал PCM в серию аудио-отпечатков пальцев.https://github.com/adblockradio/stream-audio-fingerprint

https://stackoverflow.com/questions/26357841/audio-matching-audio-fingerprinting

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...