Реализация кастомного словаря для STT-системы
Кастомный словарь — самый быстрый способ улучшить распознавание специфических терминов, имён и аббревиатур без переобучения модели. Работает как подсказка STT-движку: «обращай особое внимание на эти слова».
Реализация для основных провайдеров
AWS Transcribe Custom Vocabulary:
import boto3
transcribe = boto3.client('transcribe')
# Создаём словарь из файла (S3)
transcribe.create_vocabulary(
VocabularyName='corporate-terms-v1',
LanguageCode='ru-RU',
VocabularyFileUri='s3://my-bucket/vocabulary.txt'
)
# Формат файла vocabulary.txt:
# Phrase\tSoundsLike\tIPA\tDisplayAs
# Б-Ф-И-О\tбэ эф и о\t\tБФИО
# ИНН\tин эн эн\t\tИНН
Azure Custom Speech:
# Добавляем domain adaptation data через Azure Portal или REST API
# Поддерживает: pronunciation dictionary, phrase list
import requests
phrase_list = {
"kind": "PhraseList",
"locale": "ru-RU",
"phrases": ["ОГРН", "СНИЛС", "КПП", "расчётный счёт"]
}
faster-whisper с подсказками через initial prompt:
model = WhisperModel("large-v3", device="cuda")
# Начальный промпт помогает модели ориентироваться на нужную лексику
initial_prompt = "ИНН, ОГРН, СНИЛС, КПП, расчётный счёт, генеральный директор."
segments, _ = model.transcribe(
audio,
initial_prompt=initial_prompt,
language="ru"
)
Метод с initial_prompt работает ненадёжно для длинных файлов — промпт обрабатывается только для первого окна.
Поддержание словаря
- Версионирование словарей (v1, v2...)
- Автоматическое обновление при появлении новых терминов
- A/B тестирование версий на репрезентативном аудио
Сроки: 1–2 дня для базовой интеграции, включая наполнение словаря.







