На главную

Голосовой ассистент на потоковой архитектуре

Цель: Перевести стек голосового ассистента (Deepgram → OpenAI → Яндекс SpeechKit) на потоковую архитектуру для минимизации задержек между речью пользователя и ответом ассистента. Текущие проблемы: - Последовательная обработка (ASR → LLM → TTS) вызывает задержки в 3–5 секунд. - Яндекс SpeechKit не поддерживает потоковый ввод/вывод. - Непредсказуемость при перебивании ассистента. Ожидаемый результат: - Ответ ассистента воспроизводится через 0.7–1.5 сек после речи пользователя. - Параллельная обработка аудио, текста и синтеза речи. - Возможность прерывания ответа. 2. Основные изменения Бэкенд: 1. WebSocket-сервер (src/ws/server): - Реализовать параллельную обработку потока: ASR (Deepgram) → OpenAI → TTS (Яндекс) без ожидания завершения на каждом этапе. - Использовать асинхронные очереди для обработки чанков. 2. Механизм перебивания: - Оприостановка текущей генерации ответа и синтеза речи при новом аудио вводе. 3. Текущий стек: - Бэкенд: Асинхронные модули (Deepgram, OpenAI, TTS) + WebSocket. - Фронтенд: Web Audio API + обработка потокового аудио. 3. Критерии приемки 1. Ответ ассистента начинается ≤ 1.5 сек после речи пользователя. 2. Поддержка прерывания ответа. 3. Стабильная работа при 500+ одновременных сессиях. Риски: Если Яндекс TTS не справится с потоковым режимом, потребуется замена на ElevenLabs или другой качественный сервис. Необходимо учитывать правильность транскрипции и ударений.