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

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

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

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 окупає впровадження протягом кількох місяців.

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