eliseygusev / audio-denoising

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Описание алгоритма

Для деноизинга используется UNet-архитектура + в сети есть дополнительный выход, выполняющий классификацию. Схематично это можно изобразить так.

UNet

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

Как запускать

Докер-репозиторий лежит тут: egusev/audio-denoising

Чтобы запустить тренировку нужно запустить файл train.py из текущей директории

docker run --rm -it -v {YOUR_DIR}:/app -w /app denoising python train.py

Предсказания получить можно следующим образом:

docker run --rm -it -v {YOUR_DIR}:/app -w /app denoising python predict.py --mel-path {YOUR_PATH}

Ответом будет словарь:

{
    'denoised': denoised,
    'is_clean': is_clean
}

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

Возможные улучшения

  • Потренировать подольше (classic)

  • Ускорить инференс, разбив обученную на обе задачи одновременно сеть на две подсети - класссифицирующую и убирающую шум

  • Добавить признаки, зависящие от голоса человека, как сделали ребята в этой статье, но это зависит от условий использования модели в дальнейшем

About


Languages

Language:Python 97.4%Language:Dockerfile 2.6%