Определить, генерируются ли два аудиофайла одним и тем же инструментом - PullRequest
0 голосов
/ 16 апреля 2020

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

Прослушайте этот файл из десяти объединенных образцов. Вы можете слышать, что все первые пять генерируются одним и тем же инструментом (electri c фортепиано), поэтому четыре из них следует считать дубликатами.

Какой алгоритм или метод я могу использовать для решения этой проблемы? Обратите внимание, что мне не нужно полноценное обнаружение инструмента, так как меня интересует только, является ли инструмент тем же или нет. Заметьте также, что я имею в виду буквально «один и тот же инструмент», а скорее «один и тот же acousti c аромат, просто разные тона».

1 Ответ

0 голосов
/ 22 апреля 2020

Формулировка задачи

Вам нужен показатель сходства c (тип расстояния Метри c), который предсказывает две выборки одного и того же типа инструмента / инструмента как очень похожие (низкий балл) и два образца разных инструментов как совершенно разные (высокий балл). И это верно независимо от того, какая нота играется. Таким образом, он должен быть чувствительным к тембру и не чувствительным к музыкальному контенту.

Настройка обучения

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

Архитектура модели

Первичной архитектурой модели, которую я бы рассмотрел, была бы сверточная нейронная сеть на спектрограммах логарифмической структуры. Сначала попробуйте использовать обобщенную c модель, такую ​​как OpenL3 , в качестве экстрактора функций. Он выдает 1024-мерный вывод, называемый «Аудио-вложение», с помощью которого вы можете создать модель потери триплета.

Наборы данных

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

Как минимум, вам потребуется создать набор проверки / тестирования для ваших собственных аудиоклипов, в Для того, чтобы оценить производительность модели. Минимум 10-100 помеченных примеров каждого интересующего типа инструмента.

...