STT с шумоподавлением: WER < 10% даже при SNR 5 дБ

Noise Robust STT: распознавание речи в шумной среде под ключ

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1460
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1314
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1013
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1275
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    727
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1019

Noise Robust STT: распознавание речи в шумной среде под ключ

При SNR ниже 10 дБ стандартные STT-модели показывают WER от 30% до 60% — это непригодно для голосового управления, диктовки или транскрибации в промышленных условиях. Например, для складского комплекса с гудением конвейеров удалось снизить WER с 45% до 8% после внедрения пайплайна с DeepFilterNet и Whisper large-v3. Ключевое отличие нашего подхода — индивидуальная настройка под акустику помещения, что невозможно при использовании универсальных решений. Мы решаем задачу комплексно: шумоподавление на базе DNN, адаптивная VAD-фильтрация и подбор устойчивых акустических моделей. Получите консультацию инженера — проанализируем ваши аудиозаписи и предложим оптимальный пайплайн.

Как добиться WER < 10% при SNR 5 дБ?

Первый этап — спектральное вычитание с адаптивной оценкой шума. Затем — DNN-денойзер, например, Facebook Denoiser (DNS64) или DeepFilterNet. После этого VAD-фильтр на основе Silero VAD отсекает неречевые фрагменты. Финальное распознавание выполняем на whisper-large-v3 или Wav2Vec2-XLSR, которые дополнительно fine-tuned на зашумлённых данных. Пример пайплайна на Python:

import torch import torchaudio from denoiser import pretrained # Facebook Denoiser — state-of-the-art шумоподавление denoiser_model = pretrained.dns64() def denoise_audio(audio_path: str) -> torch.Tensor: waveform, sr = torchaudio.load(audio_path) if sr != 16000: waveform = torchaudio.functional.resample(waveform, sr, 16000) with torch.no_grad(): denoised = denoiser_model(waveform.unsqueeze(0))[0] return denoised.squeeze(0) 
Развёрнутый пайплайн с VAD и ASR
import faster_whisper from silero_vad import get_speech_timestamps, read_audio def process_audio(audio_path: str) -> str: denoised = denoise_audio(audio_path) speech_timestamps = get_speech_timestamps(denoised, model, sampling_rate=16000) model = faster_whisper.WhisperModel("large-v3", device="cuda") segments, info = model.transcribe(denoised, vad_filter=True) return ' '.join(seg.text for seg in segments) 

Для минимизации latency на edge-устройствах используем ONNX Runtime с INT8-квантизацией денойзера и ASR-модели. Это снижает время инференса в 2-3 раза при падении WER не более чем на 2%.

Инструменты шумоподавления

Инструмент Тип Качество PESQ Задержка
Facebook Denoiser DNN >3.5 50–100 мс
RNNoise RNN 2.8-3.0 <10 мс
DeepFilterNet DNN >3.2 20–50 мс
Speex DSP DSP <2.0 <5 мс
noisereduce (scipy) Stat 1.5-2.0

Результаты получены на синтетических миксах с SNR 0–15 дБ из датасета CHiME-5.

Сравнение VAD-решений

VAD Точность (F1) Задержка Применение
Silero VAD 0.95 30 мс off/online
WebRTC VAD 0.85 10 мс real-time
InaSpeechSegmenter 0.88 100 мс batch

Почему Facebook Denoiser выгоднее классических DSP-фильтров?

Традиционные методы (спектральное вычитание, фильтр Винера) дают PESQ <2.5 и оставляют музыкальный шум. DNN-модель, обученная на 64 тыс. часов шумов, достигает PESQ >3.5 и снижает WER в среднем на 20% по сравнению с DSP. Это подтверждают наши тесты на датасетах CHiME-5 и LibriSpeech с искусственным шумом. Метрика PESQ показывает субъективное качество.

Что включает аудит акустики?

На первом этапе измеряем SNR и спектральный профиль шума с помощью импульсной характеристики помещения. Для типовых сценариев (офис, склад, улица) подбираем оптимальный денойзер и конфигурацию VAD. Пример: для склада с гудением кондиционеров эффективен DeepFilterNet с подавлением до 30 дБ на частоте 50 Гц. Добавляем анализ микрофонного тракта: расположение, диаграмма направленности, защита от ветра. Это позволяет снизить стоимость последующих этапов за счёт точного выбора компонентов.

Как VAD-фильтрация улучшает Whisper?

Whisper имеет тенденцию галлюцинировать на зашумлённых участках. VAD-фильтр в faster-whisper отсекает шумные сегменты:

segments, _ = model.transcribe( audio, vad_filter=True, vad_parameters={ "threshold": 0.5, "min_speech_duration_ms": 250, "min_silence_duration_ms": 2000, "speech_pad_ms": 400 } ) 

Без VAD WER может быть выше на 15–25% при импульсных шумах. Наши кейсы показывают, что комбинация DeepFilterNet + Silero VAD + whisper-large-v3 даёт стабильное качество при SNR до 0 дБ.

Что входит в работу

  1. Аудит акустики: измерение SNR, спектральный анализ шума, определение типа (стационарный/импульсный).
  2. Выбор пайплайна: подбор денойзера и STT-модели под вашу аппаратную платформу (CPU/GPU/Edge).
  3. Кастомизация VAD: настройка порогов, фильтрация ложных срабатываний.
  4. Интеграция: REST API, WebSocket, микросервис на FastAPI.
  5. Тестирование: MUSHRA, PESQ, WER на ваших записях.
  6. Документация и обучение: описание pipeline, рекомендации по микрофонному тракту.

Свяжитесь с нами для тестового запуска пайплайна на ваших записях.

Сроки и опыт

Базовое шумоподавление + STT: 3–4 дня. Оптимизированный pipeline под конкретный тип шума: 1–2 недели. 5+ лет опыта в аудиообработке, 30+ проектов по STT для складов, колл-центров и промышленных цехов. Экономия от снижения WER окупает внедрение в течение нескольких месяцев.

Получите консультацию инженера — проанализируем ваши аудиозаписи и предложим решение с гарантией результата.