Реалізація фільтрації нецензурної лексики в STT Фільтрація нецензурної лексики у транскрипціях необхідна для публічних платформ, корпоративних систем та сервісів, що працюють з дітьми. Реалізується на кількох рівнях: у STT-движку та/або на рівні post-processing. ### Вбудовані фільтри STT-провайдерів Google STT:```python
config = speech.RecognitionConfig(
profanity_filter=True, # заменяет нецензурные слова на ***
language_code="ru-RU"
)
**AWS Transcribe**:python
transcribe.start_transcription_job(
VocabularyFilterName='profanity-filter-ru',
VocabularyFilterMethod='mask', # 'mask' | 'remove' | 'tag'
)
**Azure Speech**:python
speech_config.set_profanity(speechsdk.ProfanityOption.Masked)
### Post-processing фільтр Для двигунів без вбудованого фільтра або для більш тонкого контролю:python
import re
PROFANITY_LIST_RU = [...] # список слов в нормализованной форме
def filter_profanity(text: str, replacement: str = "***") -> str: """Фильтр с учётом морфологии через нормализацию""" import pymorphy3 morph = pymorphy3.MorphAnalyzer()
words = text.split()
result = []
for word in words:
# Нормализуем слово (приводим к начальной форме)
parsed = morph.parse(word)
normal_form = parsed[0].normal_form if parsed else word.lower()
if normal_form in PROFANITY_LIST_RU:
result.append(replacement)
else:
result.append(word)
return " ".join(result)







