← Назад к ИИ
ПриложениеPythonПлатно

AI Voice Assistant — умные ответы на вопросы с голосовым вводом-выводом

До: пользователям приходилось печатать запросы и читать текстовые ответы — медленно, неудобно и неестественно на мобильных устройствах. После: задать вопрос голосом и мгновенно получить голосовой ответ. Полный голосовой цикл: распознавание речи → рассуждение LLM → синтез речи — менее чем за две секунды.

AI Voice Assistant — умные ответы на вопросы с голосовым вводом-выводом

Стек

PythonFastAPIOpenAIWhisperGPT-4ElevenLabsPineconeReactAI

Задача

Клиенту требовался диалоговый ассистент, встроенный в продукт, — способный отвечать на вопросы по своей предметной области, понимать устную речь и отвечать естественным голосом. Готовые виджеты чат-ботов покрывали только текст. Голос требовал соединить три отдельных ИИ-сервиса: распознавание речи, языковую модель и синтез речи — с задержкой достаточно низкой, чтобы ощущаться как настоящий разговор.

Рассмотренные варианты

  1. Только браузерный Web Speech API — бесплатно, нулевая задержка для распознавания речи, но качество было нестабильным на неанглийском акценте и в мобильных браузерах. Синтез речи звучал механически. Отклонено из-за качества.
  2. Полностью managed-платформа голосовых ассистентов (Voiceflow, VAPI) — быстро для прототипа, но привязывала клиента к вендору с ограниченной кастомизацией слоя рассуждений. Отклонено, чтобы сохранить контроль над промптом и контекстом LLM.
  3. OpenAI Whisper + GPT-4 + ElevenLabs с кастомной оркестрацией — выбранный вариант. Лучшая в классе точность на каждом этапе; стриминг снижает субъективную задержку; слой рассуждений полностью настраиваемый.

Решение

Аудио, захваченное в браузере, потоково передаётся на бэкенд на Python. Whisper транскрибирует звук в реальном времени. Транскрипт отправляется в GPT-4 с системным промптом, ограниченным базой знаний предметной области клиента. Ответ приходит потоково, токен за токеном; по мере завершения предложений они передаются в ElevenLabs для синтеза. Полученные аудиофрагменты воспроизводятся в браузере последовательно — пользователь слышит первое предложение ещё до того, как модель закончила генерировать полный ответ.

Реализация

Бэкенд на FastAPI открывает WebSocket-эндпоинт для потоковой передачи аудио. Слой VAD (voice activity detection) на фронтенде определяет момент, когда пользователь закончил говорить, прежде чем сбросить буфер в Whisper. База знаний хранится в виде векторных эмбеддингов (OpenAI Embeddings + Pinecone); релевантные фрагменты извлекаются и добавляются в контекстное окно GPT-4 на каждом шаге. История диалога сохраняется по сессии для поддержки уточняющих вопросов. Виджет на фронтенде — самодостаточный React-компонент, встраиваемый одним тегом script.

Результат

Сквозная задержка от окончания речи до первого произнесённого слога — в среднем менее 1,8 секунды. Точность распознавания специфической терминологии предметной области превысила 95%. Виджет развёртывается без изменений в хост-приложении — один тег script, никакой привязки к бэкенду.

Открыт для работы по контракту

Я доступен для работы по контракту. Если у вас есть интересная идея проекта — запишитесь на звонок через Calendly.

Записаться на 30-минутный звонок