Skip to main content
Vapi est une plateforme de création et de déploiement d’agents vocaux qui prend en charge la téléphonie, le transport web, les appels au LLM et la gestion des tours de parole. Gradium n’est pas un fournisseur intégré à Vapi : vous le connectez donc via les endpoints personnalisés de Vapi, à savoir un webhook custom-voice pour la sortie vocale et un WebSocket custom-transcriber pour l’entrée vocale. Vous faites tourner un petit service passerelle, et Vapi continue de gérer le reste de l’appel.

Guide TTS Gradium

Configuration de la synthèse vocale Gradium via WebSocket et comportement du streaming.

Guide STT Gradium

Transcription Gradium via WebSocket, VAD et flush.

Gestion des tours de parole

Ajustez les horizons et les seuils de la VAD sémantique.

Tableau de bord Vapi

Créez un compte Vapi et un assistant.
Vous avez besoin d’un compte Vapi et d’une clé API Gradium. Cette page sert de référence pour la partie Gradium de l’intégration : les contrats des endpoints, le code de la passerelle et les options de réglage.

Comment Gradium se connecte

Vous pouvez utiliser chaque côté indépendamment. Conserver le transcripteur intégré de Vapi tout en utilisant Gradium pour la sortie vocale est une configuration valide, et inversement.

Installation

Définissez votre clé API Gradium dans l’environnement :

Synthèse vocale

Vapi envoie une requête par phrase, contenant le texte et la fréquence d’échantillonnage attendue :
Lisez message.sampleRate et transmettez-le tel quel dans l’output_format de Gradium. Vapi attend du PCM brut mono 16 bits little-endian, exactement à la fréquence demandée, envoyé en flux au fur et à mesure de sa production.
Chaque fréquence d’échantillonnage demandée par Vapi a un format PCM Gradium correspondant : aucun rééchantillonnage n’est donc nécessaire. Consultez Limites pour la liste complète des formats.
Faites pointer le voice de l’assistant vers l’endpoint :

Transcription

Vapi ouvre un WebSocket, envoie une trame JSON start, puis envoie en flux du PCM 16 bits entrelacé. Lorsque channels vaut 2, le canal 0 porte l’appelant et le canal 1 l’assistant : transmettez uniquement le canal 0, sinon l’agent transcrit sa propre voix.
Envoyez les transcriptions partial en plus des final : Vapi doit voir la parole pendant qu’elle a lieu pour que l’interruption (barge-in) fonctionne. Considérez flushed comme la fin du tour plutôt que de finaliser dès que le seuil de VAD est franchi, car Gradium conserve encore de l’audio dans sa fenêtre de décodage. Consultez Gestion des tours de parole avec la VAD sémantique pour ajuster l’horizon et le seuil. Faites pointer le transcriber de l’assistant vers la passerelle en wss :

Sécuriser les endpoints

Les deux endpoints sont des points d’accès HTTP publics. Définissez un secret sur l’objet server dans la configuration de l’assistant : Vapi l’envoie dans un en-tête X-Vapi-Secret à chaque requête. Rejetez tout ce qui ne correspond pas :

Configuration

Réduire la latence grâce au multiplexage

Vapi envoie une requête custom-voice par phrase : ouvrir un nouveau WebSocket à chaque requête fait donc payer l’établissement de la connexion plusieurs fois par réponse de l’agent. Gardez une connexion ouverte par fréquence d’échantillonnage et faites-y transiter les requêtes concurrentes avec close_ws_on_eos: false et un client_req_id propre à chaque requête. Renouvelez les connexions du pool avant d’atteindre la limite de durée de session, et repliez-vous sur une connexion à usage unique si un socket du pool se ferme avant d’avoir produit de l’audio. Consultez Multiplexage pour le contrat complet.

Laisser Gradium décider de la fin du tour

Par défaut, Vapi applique sa propre détection de fin de parole (endpointing) sur vos transcriptions partielles, ce qui peut entrer en concurrence avec la VAD de Gradium et faire répondre l’assistant avant l’arrivée de la transcription finale issue du flush. Confiez cette décision à Gradium avec un modèle d’endpointing personnalisé :
Vapi envoie alors un call.endpointing.request à chaque mise à jour de la transcription, et votre serveur répond en indiquant combien de temps attendre encore, en fonction de la session Gradium en cours :
Supprimez votre référence à la session Gradium à la fin d’un appel. Si une session terminée reste enregistrée, les premières requêtes d’endpointing de l’appel suivant reçoivent une réponse fondée sur un état de tour obsolète.

Appels longs

Une session Gradium dure au maximum 300 secondes. Reconnectez la session Gradium de manière transparente lorsqu’elle se termine, tout en gardant ouvert le socket Vapi, afin que les appels de toute durée continuent d’être transcrits. Voir Limites.

Quand utiliser Vapi avec Gradium

  • Agents téléphoniques : laissez Vapi gérer les numéros de téléphone, le SIP et le routage des appels pendant que Gradium s’occupe de la voix.
  • Changement de fournisseur vocal : conservez un assistant Vapi existant, son LLM et ses outils, et ne changez que la couche voix ou transcription.
  • Voix personnalisées : utilisez une voix Gradium clonée instantanément dans un agent Vapi. Voir Voix.
  • Vocabulaire métier : améliorez la reconnaissance des noms de plats, de marques et de produits grâce au renforcement de mots-clés (keyword boosting) et aux règles de réécriture de texte.