С помощью модели не получится повысить качество аудио. Модель во время разделения, скорее наоборот, может добавлять артефакты и "протечки", что, кстати, заметно на некоторых демках.
Для такой задачи, как Вы описываете, можно брать аудиозаписи в хорошем качестве, специально понижать и искажать их, а затем обучать модель на восстановление к исходному качеству. Но это уже другая история :)
Да, идея как раз такая. Модель оценивает, что находится в кадре и на основе этой информации извлекает из звуковой смеси те звуки, которые, по мнению модели, издаются объектом на картинке. При этом в режиме применения модели такая "оценка" делается для разных участков видео и по объекту в этом участке модель решает, какую часть звуковой дорожки нужно взять, чтобы изолировать звук. Это как раз демонстрируется на рисунках с подписью "локализация звука": сетка 14x14 и каждая ячейка - небольшой участок кадра, в котором модель оценивает, что находится внутри и на основе этого выделяет звук из общей дорожки
Архитектура из статьи без кадров не работает. Если убрать кадры, то это будет UNet для спектрограмм. Так делают, но качество сам не сравнивал. В данном случае идея не только в разделении, но и в нахождении источников звука в кадре, а для этого нужны визуальные данные.
Это так. Можно даже взять датасеты, которые я использовал и достать из них дорожки. Но так я не делал тоже, потому что основной целью исследования было не разделение звуков как таковых, а аудио визуальное соответствие источников звука
Два источника - это гиперпараметр обучения. Можно было бы смешивать 3, 4 и т.д. источника и разделять на них, но это потребовало значительно больше ресурсов. Демки, где два видео смешиваются и разделяются, завязаны на число источников при обучении.
При локализации источников звука сетка строится для одного видео и из этой сетки можно выделять больше двух источников. Тогда ненулевые маски были бы в трех разных областях кадра, например.
Для сборки примеров из приведенного репозитория подойдет:
sudo apt install bazel-2.0.0
Для более ранних версий Mediapipe был необходим:
sudo apt install bazel-1.2.1
Версии 1 и 2 несовместимы, из-за чего могут возникать некоторые проблемы, если поставить просто bazel. Насколько я помню, для Ubuntu 19.04 bazel == bazel-1.2.1, для Ubuntu 19.10 bazel == bazel-2.0.0. Причем при попытке собрать не той версией появляется много косвенных ошибок.
Opencv подтягивается через bazel, откуда брать указывается в WORKSPACE. Файл довольно большой, но бОльшая его часть — это зависимости, перенесенные из оригинального WORKSPACE из Mediapipe. Поскольку поддерживаемых платформ много, там указывается отдельные opencv для linux, android, ios, mac. Android SDK и NDK там также указаны в самом начале.
Первая сборка может быть действительно долгой, потому что сначала собирается сам Mediapipe.
С помощью модели не получится повысить качество аудио. Модель во время разделения, скорее наоборот, может добавлять артефакты и "протечки", что, кстати, заметно на некоторых демках.
Для такой задачи, как Вы описываете, можно брать аудиозаписи в хорошем качестве, специально понижать и искажать их, а затем обучать модель на восстановление к исходному качеству. Но это уже другая история :)
Да, идея как раз такая. Модель оценивает, что находится в кадре и на основе этой информации извлекает из звуковой смеси те звуки, которые, по мнению модели, издаются объектом на картинке. При этом в режиме применения модели такая "оценка" делается для разных участков видео и по объекту в этом участке модель решает, какую часть звуковой дорожки нужно взять, чтобы изолировать звук. Это как раз демонстрируется на рисунках с подписью "локализация звука": сетка 14x14 и каждая ячейка - небольшой участок кадра, в котором модель оценивает, что находится внутри и на основе этого выделяет звук из общей дорожки
Архитектура из статьи без кадров не работает. Если убрать кадры, то это будет UNet для спектрограмм. Так делают, но качество сам не сравнивал. В данном случае идея не только в разделении, но и в нахождении источников звука в кадре, а для этого нужны визуальные данные.
Это так. Можно даже взять датасеты, которые я использовал и достать из них дорожки. Но так я не делал тоже, потому что основной целью исследования было не разделение звуков как таковых, а аудио визуальное соответствие источников звука
Два источника - это гиперпараметр обучения. Можно было бы смешивать 3, 4 и т.д. источника и разделять на них, но это потребовало значительно больше ресурсов. Демки, где два видео смешиваются и разделяются, завязаны на число источников при обучении.
При локализации источников звука сетка строится для одного видео и из этой сетки можно выделять больше двух источников. Тогда ненулевые маски были бы в трех разных областях кадра, например.
Сам я с такой задачей не работал, это Voice/Speech separation, можно посмотреть решения https://paperswithcode.com/task/speech-separation или есть свежая статья от фейсбука https://arxiv.org/pdf/2003.01531.pdf
Спасибо за замечание.
bazel устанавливался из репозитория Ubuntu.
Для сборки примеров из приведенного репозитория подойдет:
Для более ранних версий Mediapipe был необходим:
Версии 1 и 2 несовместимы, из-за чего могут возникать некоторые проблемы, если поставить просто bazel. Насколько я помню, для Ubuntu 19.04 bazel == bazel-1.2.1, для Ubuntu 19.10 bazel == bazel-2.0.0. Причем при попытке собрать не той версией появляется много косвенных ошибок.
Opencv подтягивается через bazel, откуда брать указывается в WORKSPACE. Файл довольно большой, но бОльшая его часть — это зависимости, перенесенные из оригинального WORKSPACE из Mediapipe. Поскольку поддерживаемых платформ много, там указывается отдельные opencv для linux, android, ios, mac. Android SDK и NDK там также указаны в самом начале.
Первая сборка может быть действительно долгой, потому что сначала собирается сам Mediapipe.
У гугла было несколько крупных и провальных проектов: очки, G+ и др. Так что «гугл — значит выстрелит» — не аксиома.