Вычитание фоновой музыки из аудиозаписи

Постановка задачи

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

Такой алгоритм может найти применение на сервисах потокового видео, например, twitch, youtube. Сейчас, если музыка нарушает авторские права, то звуковая дорожка будет заглушена полностью. Но если сервис определил, что за музыка играет в фоне, это означает, что теперь у нас не 2 неизвестных сигнала, а только один.

Итого, мы имеем:

  1. Искусственно линейно сведёные дорожки.
  2. Информацию о фоновом звуке.

Так же как и в задаче о синхронизации звуковых дорожек тут есть следующие проблемы:

  1. Определить точный момент когда начинает играть фон, т.е. проблема смещения.
  2. Неизвестная амплитуда фона, т.е. проблема масштаба.
  3. Возможная проблема растягивания трека так, что хоть мы и знаем что именно за трек играет, но он немного отличается от оригинального.

Решения проблемы и эксперименты

Наивная реализация

Решение в лоб описано в тезисе к конференции 24.05.2017

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

Фактически эта задача в описанной формулировке может решаться методами адаптивной фильтрации с известным шумом и уравнениями Винера.

Метод адаптивной фильтрации для решения проблемы

results matching ""

    No results matching ""