Стандартные STT-модели обучены на общем корпусе, но специфические термины — «диоксид кремния», «апелляционное определение», «микроконтроллер STM32F407» — часто распознаются некорректно. В медицинских диктовках WER достигает 25–30%, а половина терминов требует постредактирования. Для юристов ошибки в именах и датах могут стоить судебного иска. Мы решаем это комбинацией boosting, кастомных словарей и fine-tuning Whisper. У нас 5+ лет опыта в NLP и 30+ проектов по кастомизации STT.
Например, в проекте для сети клиник мы снизили WER с 28% до 12% за две недели, используя комбинацию boosting и посткоррекции. Это сэкономило врачам 40% времени на расшифровку. В другом кейсе для юридической фирмы boosting юридических фраз с boost=18 уменьшил WER по именам судей и статьям кодекса втрое. Для технической лексики (например, STM32, REST API) boosting с адаптивными фразами также эффективен.
Как улучшить распознавание специализированной лексики?
Самый быстрый метод — Custom Vocabulary / Boosting. Он не требует переобучения и даёт прирост точности на редких терминах в 2–3 раза. Например, boosting 15 медицинских фраз со boost=15 повышает точность их распознавания на 40%. Адаптивные фразы можно задать для Google STT, AWS Transcribe и Azure Speech.
# Google STT — адаптивные фразы
from google.cloud import speech
speech_context = speech.SpeechContext(
phrases=[
"мерцательная аритмия",
"фибрилляция желудочков",
"атриовентрикулярная блокада",
"ЭКГ",
"QRS-комплекс"
],
boost=15.0 # от 1 до 20
)
config = speech.RecognitionConfig(
speech_contexts=[speech_context],
language_code="ru-RU"
)
Второй метод — посткоррекция через словарь с fuzzy matching. Он ловит фонетические ошибки, не замедляя обработку.
from fuzzywuzzy import fuzz
DOMAIN_TERMS = {
"дексаметозон": "дексаметазон",
"миокарда инфаркт": "инфаркт миокарда",
"гипотиреоз": "гипотиреоз",
}
def correct_medical_terms(text: str, threshold: int = 80) -> str:
words = text.split()
for i, word in enumerate(words):
for wrong, correct in DOMAIN_TERMS.items():
if fuzz.ratio(word.lower(), wrong) >= threshold:
words[i] = correct
return " ".join(words)
Когда boosting не помогает?
Boosting слабо влияет на синонимы и грамматические конструкции. Если стандартная модель путает «экстрасистолия» и «экстросистолия», boosting исправит это. Но если она распознаёт «мерцательная аритмия» как «мерцательная аритмия» с ошибкой в окончании — boosting бессилен. Здесь нужна посткоррекция, которая заменяет целые фразы по шаблону.
Почему комбинация методов даёт лучший результат?
Boosting эффективен для десятков терминов, но не справляется с синонимией и грамматикой. Посткоррекция исправляет фонетику, но требует словаря. Вместе они перекрывают слабые места друг друга. По данным Microsoft Research, комбинированный подход снижает WER на 50–80% без затрат на разметку.
Что входит в адаптацию STT под ваш домен?
Мы предоставляем под ключ:
- словарь доменной лексики (500–5000 терминов);
- конфигурацию boosting для облачных STT (Google, AWS, Azure);
- пайплайн посткоррекции с точностью 95%+;
- отчёт по WER до и после адаптации;
- обучение операторов работе с доработанной системой.
Сравнение методов
| Метод | Время внедрения | Снижение WER | Необходимые данные |
|---|---|---|---|
| Boosting | 1–2 дня | 20–40% | Только список терминов |
| Посткоррекция | 2–3 дня | 10–30% | Словарь терминов с вариантами |
| Fine-tuning Whisper | 2–4 недели | 50–70% | 10+ часов диктовок |
| Комбинированный подход | 3–5 дней | 50–80% | Минимальные требования |
Типичный WER по доменам
| Домен | Стандартная модель | После адаптации |
|---|---|---|
| Медицина | 25–30% | 8–15% |
| Юриспруденция | 20–25% | 5–10% |
| Техника | 15–20% | 5–8% |
Пример настройки boosting для AWS Transcribe
{
"VocabularyName": "medical-phrases",
"LanguageCode": "ru-RU",
"Phrases": ["экстрасистолия", "атеросклеротический", "эндопротезирование"],
"VocabularyFilter": {
"VocabularyFilterName": "medical-filter",
"VocabularyFilterMethod": "mask"
}
}
Процесс работы
- Анализ корпуса — выделяем редкие термины и типичные ошибки распознавания. На этом этапе формируем первичный словарь.
- Конфигурация boosting — настраиваем адаптивные фразы для облачных STT. Для каждого сервиса (Google, AWS, Azure) оптимизируем параметры boost.
- Посткоррекция — создаём словарь доменных терминов с fuzzy matching. Учитываем фонетические варианты и опечатки.
- Тестирование — измеряем WER на репрезентативной выборке, итеративно улучшаем. Обычно достаточно 2–3 итераций.
- Деплой и мониторинг — внедряем пайплайн и отслеживаем качество в продакшене. Настраиваем автоматические оповещения при росте WER.
Сроки и стоимость
Словарный подход (boosting + посткоррекция) занимает 2–3 дня. Fine-tuning Whisper — 2–4 недели, включая сбор и разметку данных. Стоимость адаптации рассчитывается индивидуально — зависит от объёма корпуса, количества терминов и выбранных методов. Экономия на постредактировании после адаптации достигает 70%, а срок окупаемости инвестиций — 3–6 месяцев.
Дополнительные улучшения
Для критичных доменов (медицина, юриспруденция) boost эффективнее при указании формы слова в каждом контексте. Если данных достаточно, fine-tuning Whisper даёт WER 8–15% на медицинских данных против 25% у стандартной модели. При малом объёме аудио (менее 100 часов) используем boosting и посткоррекцию — результат близок к дообучению за меньшие сроки.
Гарантия: на всех проектах фиксируем целевой WER и подтверждаем его на тестовой выборке. Опыт команды — 5+ лет, сертификаты AWS и GCP. Закажите бесплатную диагностику вашего корпуса — мы оценим текущий WER и подберём оптимальное решение. Свяжитесь с нами для консультации.







