Как запускать голосовых AI-агентов локально
Hugging Face speech-to-speech: локальный open-source пайплайн для голосовых AI-агентов с OpenAI Realtime-совместимым WebSocket API.
Оригинал: пост Sumanth в X.
Hugging Face развивает speech-to-speech — модульный пайплайн для голосовых AI-агентов, который может работать целиком на open-source моделях и локальной инфраструктуре. Каждый компонент в нём заменяемый, а отдельные стадии выполняются в собственных потоках и связываются через очереди.
Проект: https://github.com/huggingface/speech-to-speech

Совместимость с OpenAI Realtime
Пайплайн предоставляет WebSocket API, совместимый с OpenAI Realtime. Это значит, что существующий клиент для OpenAI Realtime можно направить на локальный сервер, изменив один URL, без переписывания клиентской логики.
Как устроен пайплайн
- Voice Activity Detection: Silero VAD v5 определяет границы речи и моменты смены реплики.
- Speech to Text: модуль распознаёт речь пользователя, при необходимости отдавая частичные live-транскрипты.
- Language Model: языковая модель генерирует ответ, потоковый текст и tool calls.
- Text to Speech: TTS-модуль синтезирует аудио и отправляет его обратно клиенту потоково.
Локальный режим без API-ключей
Каждая стадия поддерживает несколько взаимозаменяемых backend-ов, которые выбираются через CLI-флаги. Для полностью локальной конфигурации автор предлагает запускать Gemma 4 через llama.cpp вместе с пайплайном, использовать Parakeet TDT для STT и Qwen3-TTS для озвучивания ответа. В таком варианте API-ключи не нужны.
Ключевые возможности
- WebSocket API, совместимый с OpenAI Realtime, как drop-in replacement.
- Полностью локальный запуск без API-ключей через
llama.cpp, Parakeet TDT и Qwen3-TTS. - STT-backend-ы: Parakeet TDT, Whisper, Faster Whisper, Paraformer.
- TTS-backend-ы: Qwen3-TTS, Kokoro, Pocket TTS, ChatTTS, MMS TTS.
- Мультиязычность с автоматическим определением языка.
- Четыре режима запуска: Realtime, Local, Raw WebSocket и TCP Socket.
Автор подчёркивает, что проект полностью open source.