Как сравнить / сопоставить два неидентичных звуковых клипа

Мне нужно делать короткие звуковые образцы каждые 5 секунд, а затем загружать их на наш облачный сервер.

Затем мне нужно найти способ сравнить/проверить, является ли этот образец частью полного длинного аудиофайла.

Сэмплы будут записаны с микрофона телефона, поэтому они действительно не будут точными.

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

Одна из идей заключалась в том, чтобы использовать службу преобразования аудио в текст, а затем выполнять сопоставление на основе фактического диалога. Однако это не кажется мне эффективным. В то время как сопоставление на основе реальных звуковых частот или паттернов было бы намного эффективнее.

Я знаю, что есть такие сервисы, как Shazam, которые выполняют такое сопоставление аудио. Однако я бы предположил, что их услуги являются приличными.

Некоторые факторы, которые могут на это повлиять:

  • Оба аудиосэмпла имеют временную метку. Таким образом, нам не нужно искать по всему звуковому клипу.

person Zapnologica    schedule 18.04.2018    source источник


Ответы (1)


Чтобы дать вам толчок к получению ответа, вам нужно сосредоточиться на вопросе, на который можно ответить, где вы участвовали в битве, и показать свой код.

Внезапно я ходил по аудиозаписи, чтобы вытащить ведро из нескольких сэмплов... затем передвигал ведро по нескольким сэмплам и выполнял другую операцию извлечения ведра... позволял каждому ведру содержать перекрывающиеся сэмплы, также содержащиеся в предыдущем ведре а также следующее ведро ... меньше выборок более быстрое вычисление больше выборок большая точность до степени YMMV

... подавать каждое ведро в преобразование Фурье, чтобы преобразовать входной звук во временной области в его аналог в частотной области ... записать в базу данных основные атрибуты БПФ каждого ведра, например, какие частоты X имеют наибольшую энергию (наибольшая величина на ваш БПФ)

... также, возможно, сохраните стандартное отклонение этих верхних частот X по отношению к их энергии (насколько разбросаны эти частоты) ... определите дополнительные такие атрибуты по мере необходимости ... для такого подхода в частотной области вам нужно относительно немного образцы в каждом сегменте, так как БПФ работает с периодическими данными временных рядов, поэтому, если вы подаете ему 500 миллисекунд сложного звука, такого как речь или музыка, у вас больше не будет периодического звука, вместо этого у вас будет каша.

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

Звучит как очень крутой проект, удачи... вот несколько ресурсов по отпечаткам пальцев


появляется ли аудиоклип A в аудиофайле B Обнаружение звука внутри аудио [Распознавание звука] Обнаружение звука внутри аудио [Распознавание звука]

Обнаружение определенного шаблона из БПФ в Arduino конкретный образец из БПФ в Arduino

Отпечатки аудио с использованием AudioContext API https://news.ycombinator.com/item?id=21436414 https://iq.opengenus.org/audio-fingerprinting/

Chromaprint является основным компонентом проекта AcoustID. Это клиентская библиотека, реализующая собственный алгоритм извлечения отпечатков пальцев из любого аудиоисточника https://acoustid.org/chromaprint< /а>

Обнаружение определенного шаблона из БПФ образец из БПФ в Arduino

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

SO продолжение Как сравнить/сопоставить два неидентичных звуковых клипа Как сравнить / сопоставить два неидентичных звуковых клипа

Звуковой отпечаток и распознавание в Python https://github.com/worldveil/dejavu

Отпечатки звуков с помощью Python и Numpy http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/

MusicBrainz: открытая музыкальная энциклопедия (musicbrainz.org) https://news.ycombinator.com/item?id=14478515

https://acoustid.org/chromaprint Как работает Chromaprint? https://oxygene.sk/2011/01/how-does-chromaprint-work/

https://acoustid.org/

MusicBrainz — это открытая музыкальная энциклопедия, которая собирает музыкальные метаданные и делает их общедоступными. https://musicbrainz.org/

Chromaprint является основным компонентом проекта AcoustID. Это клиентская библиотека, реализующая собственный алгоритм извлечения отпечатков пальцев из любого аудиоисточника https://acoustid.org/chromaprint< /а>

Аудио сопоставление (аудиофингерпринтинг)

Можно ли сравнить две похожие песни по их wav-файлам? Можно ли сравнить две похожие песни учитывая их wav-файлы?

звуковой хеш https://en.wikipedia.org/wiki/Hash_function#Finding_similar_records

звуковой отпечаток https://encrypted.google.com/search?hl=en&pws=0&q=python+audio+fingerprinting

ACRCloud https://www.acrcloud.com/ Как распознать музыкальный образец с помощью Python и Gracenote?

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

person Scott Stensland    schedule 21.04.2018