← Назад ко всем проектам

Клиентский проект

Голосовой ИИ-ассистент — умные вопросы и ответы с голосовым вводом-выводом

Голосовой ИИ-ассистент — умные вопросы и ответы с голосовым вводом-выводом

Технологии

PythonFastAPIOpenAIWhisperGPT-4ElevenLabsPineconeReactAI

Услуги

  • Архитектура ИИ-конвейера (STT → LLM → TTS)
  • Интеграция OpenAI Whisper для распознавания речи
  • Интеграция GPT-4 с RAG по кастомной базе знаний
  • Синтез голоса ElevenLabs с потоковым воспроизведением аудио
  • Встраиваемый React-виджет — установка «из коробки»
  • Управление историей диалога с учётом сессии

Результаты

  • Полный цикл голосового ассистента: речь → транскрипция → рассуждение → голосовой ответ
  • Задержка менее 2 секунд от конца речи до первого голосового ответа
  • База знаний в рамках предметной области с векторным поиском (RAG)
  • Самодостаточный встраиваемый виджет — интеграция одним тегом скрипта
  • Потоковая передача на базе WebSocket для аудиоввода-вывода с низкой задержкой

Задача

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

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

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

Решение

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

Голосовой ИИ-ассистент — встроенный виджет с живой транскрипцией и голосовым ответом

Реализация

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

Результат

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

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

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

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