Реализация горячих слов (Hotword Boosting) для STT

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Реализация горячих слов (Hotword Boosting) для STT
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1240
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1167
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    867
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1084
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    563
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    829

Реализация горячих слов (Hotword Boosting) для STT

Hotword Boosting — механизм повышения вероятности распознавания конкретных слов и фраз. В отличие от custom vocabulary (статичный список), hotword boosting применяется динамически в runtime — разные фразы для разных контекстов запроса.

Реализация для разных провайдеров

Google STT с phrase boost:

from google.cloud import speech

def transcribe_with_hotwords(audio_content: bytes, hotwords: list[str]) -> str:
    client = speech.SpeechClient()

    speech_contexts = [
        speech.SpeechContext(
            phrases=hotwords,
            boost=20.0  # max значение
        )
    ]
    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=16000,
        language_code="ru-RU",
        speech_contexts=speech_contexts,
        enable_automatic_punctuation=True,
    )
    response = client.recognize(config=config,
                                 audio=speech.RecognitionAudio(content=audio_content))
    return response.results[0].alternatives[0].transcript

Vosk с grammar (FST-based boosting):

from vosk import Model, KaldiRecognizer
import json

model = Model("vosk-model-ru-0.42")

# Ограниченная грамматика для определённого контекста
grammar = json.dumps(["да", "нет", "отмена", "помощь", "[unk]"])
recognizer = KaldiRecognizer(model, 16000, grammar)

Whisper через prefix промпт — ненадёжно, но работает для коротких записей с конкретными ожиданиями.

Динамические hotwords

В голосовых ботах hotwords зависят от состояния диалога:

DIALOG_HOTWORDS = {
    "greeting": ["здравствуйте", "добрый день", "привет"],
    "payment": ["оплатить", "счёт", "карта", "перевод", "сумма"],
    "cancel": ["отменить", "назад", "стоп", "выход"],
}

def get_hotwords_for_state(state: str) -> list[str]:
    return DIALOG_HOTWORDS.get(state, [])

Сроки: интеграция в существующий STT — 1–2 дня.