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 дБ.
Что входит в работу
- Аудит акустики: измерение SNR, спектральный анализ шума, определение типа (стационарный/импульсный).
- Выбор пайплайна: подбор денойзера и STT-модели под вашу аппаратную платформу (CPU/GPU/Edge).
- Кастомизация VAD: настройка порогов, фильтрация ложных срабатываний.
- Интеграция: REST API, WebSocket, микросервис на FastAPI.
- Тестирование: MUSHRA, PESQ, WER на ваших записях.
- Документация и обучение: описание pipeline, рекомендации по микрофонному тракту.
Свяжитесь с нами для тестового запуска пайплайна на ваших записях.
Сроки и опыт
Базовое шумоподавление + STT: 3–4 дня. Оптимизированный pipeline под конкретный тип шума: 1–2 недели. 5+ лет опыта в аудиообработке, 30+ проектов по STT для складов, колл-центров и промышленных цехов. Экономия от снижения WER окупает внедрение в течение нескольких месяцев.
Получите консультацию инженера — проанализируем ваши аудиозаписи и предложим решение с гарантией результата.







