Stack Voix IA
Zonos, Moshi, OpenAI Realtime, LiveKit Agents — agents vocaux temps réel et TTS prêts pour la production.
Ce que contient ce pack
La voix IA est le domaine où l'écart entre "démo sur laptop" et "expédition aux utilisateurs" est le plus large. Latence, turn-taking, interruptions et barge-in doivent tous fonctionner — et ce n'est pas le cas par défaut. Ce pack rassemble les six ressources que les équipes qui livrent vraiment des produits vocaux en 2026 utilisent.
| # | Ressource | Couche | Pourquoi elle est là |
|---|---|---|---|
| 1 | OpenAI Realtime API | speech-to-speech | hosted, latence de tour <300ms, pas de plomberie STT/TTS |
| 2 | Moshi | speech-to-speech | open-source full-duplex ; les données restent locales |
| 3 | Zonos | TTS | TTS open-source haute qualité avec clonage de voix |
| 4 | LiveKit Agents | infra | WebRTC + orchestration d'agents, substrat production |
| 5 | Patterns agent vocal | design | turn-taking, barge-in, détection de fin d'utterance |
| 6 | Feuille budget latence | ops | checklist <800ms end-to-end par composant |
Pourquoi c'est important
Une réponse de 1,5 seconde paraît cassée en voix. Une réponse de 600ms paraît humaine. La différence est architecturale, pas juste calculatoire — elle vient de comment vous composez STT, LLM, TTS et la couche réseau.
Trois choix architecturaux déterminent si votre agent vocal paraît vivant :
- Speech-to-speech vs cascade. Une cascade traditionnelle (audio → STT → LLM → TTS → audio) a 4 goulots séquentiels et atterrit typiquement à 1,2-2,0s par tour. Les modèles speech-to-speech (OpenAI Realtime, Moshi) coupent ça à 200-400ms en sautant l'intermédiaire texte. Choisissez speech-to-speech pour les cas conversationnels ; choisissez cascade seulement quand il faut un contrôle précis sur l'étape LLM (p. ex. tool calling que les modèles audio peinent encore).
- TTS streaming vs non-streaming. Le TTS non-streaming attend le texte complet avant de générer l'audio. Le streaming commence à émettre l'audio après les ~100ms premiers de texte. Pour une réponse de 5s, c'est 4-5 secondes de différence de latence perçue. Zonos et la plupart des TTS production supportent le streaming ; utilisez-le.
- WebRTC vs WebSocket. WebRTC gère perte de paquets, gigue et bitrate adaptatif. WebSocket non. Sur des réseaux cellulaires réels, la différence entre un appel qui marche et un qui bafouille est le transport choisi. LiveKit Agents enveloppe la boucle d'agent dans un WebRTC propre ; c'est non-négociable pour mobile.
Installer en une commande
# Installer le pack entier
tokrepo install pack/voice-ai-stack
# Ou choisir la couche dont vous avez besoin en premier
tokrepo install livekit-agents
tokrepo install moshi
tokrepo install zonos
Le TokRepo CLI dépose le scaffolding d'agent, la config de room et le code init SDK dans votre projet. Une room LiveKit branchée à OpenAI Realtime peut tourner localement en moins de 10 minutes depuis un checkout propre.
Pièges fréquents
- Construire une cascade pour un cas conversationnel. Si les utilisateurs discutent (pas en train de dicter des commandes), utilisez speech-to-speech. L'architecture cascade avait du sens en 2023 ; en 2026 c'est une pénalité de latence sans bénéfice compensatoire pour le chat.
- Sauter la voice activity detection (VAD). Sans VAD, l'agent soit parle par-dessus l'utilisateur (pas de détection de fin) soit reste silencieux en attendant des timeouts fixes. LiveKit Agents livre la VAD câblée ; utilisez-la.
- Pas de gestion de barge-in. Quand l'utilisateur commence à parler pendant que l'agent parle, l'agent doit le détecter en ~150ms et s'arrêter. Hardcoder "attendre la fin" paraît robotique. Les quatre moteurs supportent un barge-in propre mais c'est désactivé par défaut dans certaines configs.
- Prompts TTS qui ne collent pas à la parole. "$1,234.56" se lit terriblement. Pré-traitez nombres, dates et abréviations avant l'envoi au TTS. La ressource voice-agent-patterns de TokRepo livre un normaliseur.
- Oublier de budgéter la latence du premier tour. La première réponse d'une session est toujours 200-400ms plus lente que le régime stable parce que les modèles chargent les caches. Cachez l'écart avec un son "prêt" ou une animation de connexion.
Idées reçues fréquentes
"Speech-to-speech ne peut pas faire de tool calls." Dépassé — OpenAI Realtime supporte le function calling nativement, et Moshi peut être enveloppé dans un agent tool-router. La limitation de 2024 ne tient plus.
"Il faut un GPU par appel concurrent." Pour le TTS seul à qualité modérée, le TTS open-source moderne atteint le temps réel sur CPU. Pour le speech-to-speech vous avez besoin de GPU pour Moshi self-hosted, ou vous externalisez la latence à OpenAI Realtime. LiveKit Agents gère le multiplexage de connexions, donc une machine peut intermédiaire de nombreuses sessions concurrentes même si le modèle vit ailleurs.
"Le clonage de voix est trop risqué pour livrer." Zonos et les moteurs similaires livrent avec des flags de watermarking exigeant le consentement. Utilisé responsablement avec consentement explicite (l'utilisateur clone sa propre voix pour accessibilité, p. ex.), c'est une fonctionnalité sûre et à haute valeur.
6 ressources prêtes à installer
Questions fréquentes
OpenAI Realtime est-il gratuit ?
Non — il est mesuré à la minute audio (entrée et sortie), et le prix est plusieurs fois plus haut que les appels API texte seul parce que les tokens audio sont plus denses. Pour le prototypage le coût est négligeable ; pour un produit déployé gérant des milliers de minutes/jour, faites le calcul d'avance. Moshi self-hosted a un coût zéro à la minute mais nécessite un GPU. La plupart des équipes lancent Realtime en production jusqu'à ce que le volume justifie la facture GPU, puis migrent vers Moshi.
Comment Moshi se compare-t-il à OpenAI Realtime ?
Moshi est open-source, auto-hébergeable, speech-to-speech full-duplex de Kyutai. OpenAI Realtime est hosted, closed-source et un peu meilleur en qualité anglaise. L'arbre de décision : souveraineté des données ou coût zéro à la minute → Moshi ; latence la plus basse hosted sans infra → OpenAI Realtime. Ils partagent le même pattern architectural, donc un wrapper autour de l'un ou l'autre se ressemble dans votre code.
Est-ce que ça fonctionnera avec Cursor ou Codex CLI ?
Les agents vocaux sont des services côté serveur, pas des extensions d'éditeur. Vous les construisez comme des applications standalone en utilisant LiveKit Agents et Realtime/Moshi. Cursor ou Codex CLI sont utiles pour écrire le code de ces agents (l'install TokRepo dépose des scaffolds fonctionnels), mais le runtime est son propre service. L'entrée de l'outil Codex CLI a des exemples de construction d'agents qui ciblent Realtime API.
Quelle est la différence vs le pack Observabilité LLM ?
L'observabilité vous donne des traces de ce qui s'est passé — latence par tour, erreurs modèle, coût de tokens. Le pack Voice AI Stack concerne la construction du runtime. Vous voulez les deux : installez le stack vocal pour livrer un agent vocal, installez l'observabilité pour déboguer pourquoi le tour 47 a eu 2 secondes de délai. LiveKit Agents émet des traces OpenTelemetry standard que Langfuse et Phoenix peuvent ingérer directement.
Puis-je utiliser mon TTS existant avec ça ?
Oui. Le pack documente le contrat que LiveKit Agents attend (frames audio, signaux de fin d'utterance, événements barge-in) et vous pouvez brancher ElevenLabs, Cartesia, Azure TTS ou tout moteur capable de streaming. Zonos est inclus comme un solide défaut open-source. La ressource voice-agent-patterns a un guide pour échanger les moteurs TTS sans réécrire la boucle d'agent.
12 packs · 80+ ressources sélectionnées
Découvrez tous les packs curatés sur la page d'accueil
Retour à tous les packs