Перцептивное подобие между двумя аудио последовательностями

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

Это походит на трудную проблему. Каков был бы лучший способ приблизиться к нему? Я думал, чтобы извлечь несколько функций из звуковых сигналов и затем сделать Евклидово расстояние или подобие косинуса (или что-то как этот) на тех функциях. Какие функции было бы легко извлечь и полезный для определения перцептивного различия между звуками?

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

16
задан Bill the Lizard 26 November 2013 в 13:34
поделиться

3 ответа

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

3
ответ дан 30 November 2019 в 22:49
поделиться

Вашим первым шагом будет выполнение преобразования Фурье (FT) звуковых волн. Если вы выполните FT с данными относительно частоты во времени 1 , вы сможете сравнить, как часто определенные ключевые частоты попадают в течение шума.

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

- 1. Гц / мс, возможно? Я не знаком с единицей измерения, с которой здесь работают, я обычно работаю в диапазоне от фемто до нанодиапазона.

- 2. Пока ∀ΔT, Δ Шаг / ΔT и Δ Частота / ΔT находятся в пределах некоторого допуска x .

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

3
ответ дан 30 November 2019 в 22:49
поделиться

Процесс сравнения набора звуков на предмет сходства называется Content Based Audio Indexing , Retrieval и Fingerprinting в исследования в области информатики.

Один из способов сделать это:

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

  2. Положите все функции для каждого аудиофайла в многомерный массив и выгружать каждый многомерный массив в базу данных

  3. Используйте методы оптимизации (такие как градиентный спуск ), чтобы найти наилучшее соответствие для данного аудио файл в вашей базе многомерных данных.

Уловка, чтобы заставить эту работу работать хорошо, состоит в том, какие функции выбрать. Сделать это автоматически и получить хорошие результаты может быть непросто. Ребята из Pandora справляются с этим очень хорошо, и, на мой взгляд, у них самое лучшее сопоставление схожести.Однако они кодируют свои векторы вручную, заставляя людей слушать музыку и оценивать их по-разному. См. Их Проект музыкального генома и Список атрибутов проекта музыкального генома для получения дополнительной информации.

Для автоматического измерения расстояний существует несколько проектов, которые делают подобные вещи, в том числе marsysas , MusicBrainz и EchoNest .

У Echonest есть один из простейших API , которые я видел в этой области. Начать очень легко.

9
ответ дан 30 November 2019 в 22:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: