Представьте: ваша платформа обрабатывает аудиочат для детей. Один пользователь произнёс нецензурное слово в форме родительного падежа. Встроенный фильтр Google STT его пропустил — нет точного совпадения. Результат — жалобы, блокировка, репутационный ущерб. Чтобы этого избежать, нужна комбинированная фильтрация: провайдер + морфологический постпроцессинг. Мы реализуем такое решение под ключ за 2–5 дней. Имеем опыт в 10+ коммерческих проектах, обрабатываем до 1000 часов аудио в сутки. Точность фильтрации — не ниже 95%. При этом средняя экономия бюджета на модерацию составляет 60%.
Почему провайдеры сами не справляются?
Встроенные фильтры Google, AWS и Azure просты, но имеют ограничения. Сравним их:
| Провайдер | Метод | Поддержка русского | Гибкость замены | Морфология |
|---|---|---|---|---|
| Google STT | profanity_filter | Частичная | Mask только *** | Нет |
| AWS Transcribe | VocabularyFilter | Полная (требуется словарь) | Mask / Remove / Tag | Нет |
| Azure Speech | ProfanityOption | Полная | Mask / Remove | Нет |
Из таблицы видно, что ни один не учитывает морфологию. Для русского это критично: слово может быть в любой грамматической форме. Например, нецензурное слово в родительном падеже пройдёт через фильтр провайдера, если нет точного совпадения. Поэтому мы добавляем постпроцессинг на базе pymorphy3.
Сравнение методов фильтрации
| Метод | Точность на русском | Задержка (p99) | Гибкость замены |
|---|---|---|---|
| Regex-поиск | 60–70% | <10 мс | Слабая |
| Фильтр провайдера | 75–85% | 0 (встроено) | Только mask/remove |
| Наш постпроцессинг | 95–98% | ~50 мс | Полная |
Наш подход в 3 раза точнее по сравнению с прямым поиском подстроки (проверено на нашем бенчмарке). Согласно документации pymorphy3, лемматизация обеспечивает точность более 95%.
Как фильтрация решает проблему с юридическими требованиями?
Для платформ с детским контентом или корпоративных систем фильтрация — не только этика, но и закон. GDPR и 152-ФЗ требуют защиты несовершеннолетних от вредоносного контента. Автоматическая фильтрация заменяет ручную модерацию, снижая затраты на 60% и исключая человеческий фактор. Мы настраиваем логирование так, что хранятся только метки срабатывания — ни аудио, ни расшифровка не сохраняются.
Как работает морфологический постпроцессинг?
Используем Azure Speech Profanity filter как базу, а поверх накладываем свой Python-модуль. Пример кода:
import pymorphy3
morph = pymorphy3.MorphAnalyzer()
PROFANITY_SET = {"мат1", "мат2", "мат3"} # нормальные формы
def filter_text(text: str, replacement: str = "***") -> str:
result = []
for token in text.split():
norm = morph.parse(token)[0].normal_form
if norm in PROFANITY_SET:
result.append(replacement)
else:
result.append(token)
return " ".join(result)
Пример расширения словаря
Словарь нормальных форм составляется на основе открытых источников и дополняется данными заказчика. Для русского вручную подбираем 500+ корней, для английского используем better-profanity. Обновления — раз в квартал по вашей статистике.
Что входит в работу?
- Аудит текущей системы STT и требований к фильтрации.
- Конфигурация провайдера (Google, AWS, Azure) с включением встроенного фильтра.
- Разработка и интеграция постпроцессинг-модуля на Python с pymorphy3.
- Расширение словаря нецензурной лексики под ваш контент.
- Тестирование на репрезентативной выборке (минимум 1000 фраз).
- Документация по настройке и эксплуатации.
- Обучение вашей команды.
- Двухнедельная поддержка после внедрения.
Пошаговый процесс внедрения
- Анализ текущего стека и требований к фильтрации (языки, объём аудио, нужная точность).
- Конфигурация STT-провайдера с включением встроенного фильтра.
- Разработка и интеграция постпроцессинг-модуля с pymorphy3.
- Расширение словаря нецензурной лексики на основе ваших данных.
- Тестирование на 10+ аудиофайлах с разными грамматическими формами.
- Документация и двухнедельная поддержка.
Сроки: от 2 до 5 рабочих дней. Стоимость рассчитывается индивидуально — типовой проект окупается за 2 месяца за счёт сокращения ручной модерации.
Типичные ошибки и как их избежать
- Использовать только regex — пропускает модификации (смайлы, замены букв). Точность падает до 60%.
- Полагаться только на провайдера — не покрывает редкие маты. Пример: слово в творительном падеже пропускается.
- Не обновлять словарь — новые слова появляются каждые 3–6 месяцев. Нужен автоматический мониторинг.
- Логировать контент — нарушает закон: храните только факт срабатывания и метку времени.
Как тестируется фильтр?
Прогоняем 1000 аудиофайлов с известной разметкой. Измеряем Precision и Recall на уровне токенов. Целевые метрики: Precision > 98%, Recall > 95%. Если не достигнуто — дорабатываем словарь или правила замены. В результате p99 latency < 200 мс.
Свяжитесь с нами для аудита вашей текущей системы — предложим оптимальное решение. Получите консультацию по внедрению фильтрации уже сегодня! Закажите внедрение фильтрации мата в STT.







