Skip to main content

Руководство по интеграции DeepFilterNet в Miscord

🎯 Обзор

DeepFilterNet успешно интегрирован в ваше Electron приложение Miscord как продвинутый движок шумоподавления. Теперь у вас есть три варианта шумоподавления на выбор:
  1. Браузерные фильтры - базовое качество, минимальная нагрузка
  2. RNNoise - хорошее качество, средняя нагрузка
  3. DeepFilterNet - отличное качество, высокая нагрузка (НОВОЕ!)

📦 Что было сделано

1. Установлены зависимости

2. Созданы файлы

Сервисы:

  • frontend/src/services/deepFilterNetProcessor.ts - основной процессор DeepFilterNet
  • Обновлен frontend/src/services/audioProcessingService.ts - интеграция с существующей системой

UI компоненты:

  • frontend/src/components/NoiseSuppressionSettings.tsx - настройки выбора движка
  • frontend/src/components/ui/card.tsx - UI компонент карточки
  • frontend/src/components/ui/alert.tsx - UI компонент уведомлений

Документация:

  • frontend/DEEPFILTERNET_INTEGRATION.md - техническая документация
  • DEEPFILTERNET_GUIDE_RU.md - это руководство

⚠️ ВАЖНО: Требуется модель ONNX

DeepFilterNet требует модель в формате ONNX для работы!

Вариант 1: Использовать готовую модель (Рекомендуется)

  1. Скачайте предобученную модель DeepFilterNet3 в формате ONNX:
  2. Создайте директорию для моделей:
  3. Поместите файл модели:

Вариант 2: Конвертировать модель из PyTorch

Если у вас есть Python окружение:
Примечание: Конвертация DeepFilterNet в ONNX может потребовать дополнительной настройки из-за сложной архитектуры модели с рекуррентными состояниями.

Вариант 3: Упрощенная модель (для тестирования)

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

🚀 Использование

В коде приложения

Проверка поддержки

📊 Сравнение движков

🔧 Настройка производительности

Оптимизация для слабых устройств

Оптимизация для мощных устройств

🐛 Решение проблем

Модель не загружается

Ошибка: Failed to load model Решение:
  1. Проверьте, что файл модели существует: frontend/public/models/deepfilternet3.onnx
  2. Проверьте путь в deepFilterNetProcessor.ts (по умолчанию /models/deepfilternet3.onnx)
  3. Убедитесь, что файл доступен через HTTP (проверьте в DevTools → Network)

WebAssembly SIMD не поддерживается

Предупреждение: WebAssembly SIMD не поддерживается Решение:
  • Используйте современный браузер (Chrome 91+, Edge 91+, Firefox 89+)
  • Или отключите SIMD: ort.env.wasm.simd = false

Высокая нагрузка на CPU

Проблема: Приложение тормозит при использовании DeepFilterNet Решение:
  1. Уменьшите количество потоков: ort.env.wasm.numThreads = 2
  2. Переключитесь на RNNoise или браузерные фильтры
  3. Закройте другие приложения

Большая задержка звука

Проблема: Заметная задержка при разговоре Решение:
  • DeepFilterNet имеет алгоритмическую задержку ~20-30ms
  • Для минимальной задержки используйте браузерные фильтры
  • Проверьте общую задержку сети (ping)

📝 Дальнейшие шаги

1. Получение модели

Срочно: Для работы DeepFilterNet нужна модель ONNX! Варианты:
  • Скачать готовую модель с GitHub releases
  • Конвертировать из PyTorch
  • Использовать упрощенную модель для тестирования

2. Интеграция в UI

Добавьте компонент NoiseSuppressionSettings в настройки голоса:

3. Сохранение настроек

Сохраняйте выбранный движок в localStorage или в профиле пользователя:

4. Тестирование

  • Протестировать на разных устройствах
  • Измерить нагрузку на CPU
  • Проверить качество шумоподавления
  • Протестировать переключение между движками

🎓 Дополнительные ресурсы

💡 Советы

  1. Начните с браузерных фильтров - они работают везде и сразу
  2. Переходите на RNNoise - если нужно лучшее качество
  3. Используйте DeepFilterNet - только если критически важно максимальное качество
  4. Предупреждайте пользователей - о необходимости переподключения при смене движка
  5. Мониторьте производительность - добавьте индикатор нагрузки CPU

✅ Checklist готовности к продакшену

  • Модель ONNX размещена в public/models/
  • Компонент настроек добавлен в UI
  • Сохранение выбора пользователя реализовано
  • Обработка ошибок добавлена
  • Уведомления о переподключении работают
  • Fallback на браузерные фильтры настроен
  • Документация для пользователей создана
  • Тестирование на разных устройствах проведено

Статус: ✅ Интеграция кода завершена | ⚠️ Требуется модель ONNX Следующий шаг: Получить и разместить модель DeepFilterNet3 в формате ONNX