Данный проект представляет собой высокотехнологичный сервис для очистки речи от шума. Система объединяет 9 современных архитектур нейронных сетей, позволяя сравнивать их эффективность в реальном времени. Пользователь может записать голос через браузер, наложить синтетический шум и мгновенно получить очищенный результат.
ml-asr/
├── code/ # Коды обучения моделей
├── data/
│ ├── raw/ # Хранилище необработанных данных
│ └── procesed/ # Хранилище обработанных данных
├── models/ # Определения архитектур и веса (.pth)
├── static/
│ └── audio/ # Временное хранилище обработанных треков
├── templates/
│ └── index.html # Веб-интерфейс (Frontend)
├── service/
│ └── app.py # Flask-сервис и логика инференса
├── requirements.txt # Список зависимостей
└── README.md # Документация проекта
Сервис включает в себя широкий спектр архитектур — от классических сверточных сетей до диффузионных подходов:
DCCRN — Сверточная рекуррентная сеть в комплексной области (Лучшая).
BSRNN — Band-Split RNN для детальной обработки частотных полос.
FRCRN — Частотно-рекуррентная CRN.
DeepFilterNet 2 — Сверхбыстрая модель на базе ERB-фильтров.
FullSubNet — Модель, сочетающая полнодиапазонную и субполосную информацию.
MetricGAN+ — Генеративно-состязательная сеть, оптимизированная под метрику PESQ.
PHASEN — Сеть с раздельной обработкой амплитуды и фазы.
DCUNET — Deep Complex U-Net для глубокой фильтрации.
SGMSE — Диффузионная модель на основе стохастических дифференциальных уравнений.
Частота дискретизации: 16 000 Гц.
Входные данные: Моно-аудио.
Типы шума для тестирования:
Babble: Многоголосый фоновый шум.
RIR: Реверберация и акустика помещения.
White Noise: Статический белый шум.
Метрики оценки: Модели обучались с использованием SI-SDR и Multi-Resolution STFT Loss.
- Подготовка окружения
Клонируйте репозиторий, создайте вирутальное окружение и установите необходимые библиотеки:
pip install -r requirements.txt
- Загрузка данных
curl -L "https://huggingface.co/datasets/fsicoli/common_voice_19_0/resolve/main/audio/ru/train/ru_train_0.tar" -o data/raw/ru_train_0.tar
- Обучение любой модели
запустите любой .ipynb файл модели из папки code
Убедитесь, что файлы весов (например, bsrnn_weights.pth, dccrn_weights.pth и т.д.) находятся в папке models/. 4. Запуск веб-сервиса
python service/app.py
Приложение будет доступно по адресу: http://127.0.0.1:5000
Выбор модели: В выпадающем списке выберите одну из 9 архитектур.
Выбор шума: Укажите тип помехи, которую нужно наложить на ваш голос.
Запись: Нажмите "Начать запись" и скажите фразу в микрофон.
Результат: После нажатия "Остановить", сервис вернет три аудиофайла для сравнения:
Clean: Исходная чистая запись.
Noisy: Запись с наложенным выбранным шумом.
Denoised: Результат работы нейросети.
Эффективность моделей проверяется через Automatic Speech Recognition с использованием Whisper (large-v3). Основные показатели:
WER (Word Error Rate): Снижение частоты ошибок в тексте после денойзинга.
SI-SDR Improvement: Прирост отношения сигнала к искажениям в децибелах (дБ).
Лицензирование и контакты
Проект распространяется под лицензией MIT.