AiHummer
Français
ConnexionCompte
v1.3.x
{ }Swagger

Entrée et sortie vocale (STT / TTS)

v1.3.x · mis à jour 2026-09-15

Poignées AiHummer discours entrant et discours sortant de la boîte — aucune API de synthèse vocale payante requise. Un extrait audio entrant est transcrit (STT), le texte pilote un tour d’agent normal, et la réponse est reproduite à l’oral (TTS). Les deux moteurs sont gratuit et local et exécuter en tant que side-cars: faster-whisper pour la transcription et edge-tts pour la synthèse.

Comment fonctionne un changement de voix

Un tour de voix est un tour normal d’agent avec l’audio activé aux deux extrémités :

  1. La passerelle envoie l’audio entrant vers le Sidecar STT (:8001, faster-whisper) et récupère le texte.
  2. Ce texte déclenche le tour habituel d’appel de fonction — même routeur, orchestrateur, outils et mémoire comme un message texte.
  3. Le texte de réponse est envoyé au Module complémentaire TTS (:8002, edge-tts) et le L’audio parlé est renvoyé à l’appelant.

Ceci est exposé comme un point de terminaison unique, POST /v1/voice/turn, de sorte qu’un canal ou un client puisse transmettre de l’audio et recevoir de l’audio sans orchestrer lui-même les étapes.

Les points de terminaison

Méthode Point de terminaison But
POST /v1/voice/turn Audio entrant → tour de l’agent → audio sortant
GET /v1/voice/config Configuration vocale actuelle (moteurs, boutons de réglage)
POST /v1/voice/turn HTTP/1.1
Host: localhost:8780
Content-Type: application/json

{
  "audio": "<base64-encoded clip>",
  "format": "wav"
}

[!NOTE] Les caractéristiques de la parole font partie de noyau — ils ne sont pas liés au plugin SIP. Le Le canal SIP utilise ces mêmes moteurs STT/TTS pour son local moteur, mais voix entrant/sortant fonctionne pour tout client qui appelle /v1/voice/turn.

Les sidecars vocaux

Port Side-car Moteur Rôle Câblé avec
8001 STT chuchotement-plus-rapide discours → texte AIHUMMER_STT_URL
8002 TTS edge-tts texte → parole AIHUMMER_TTS_URL

Les deux moteurs sont gratuits et locaux : rien n’est envoyé à un fournisseur de voix payant. Comme pour chaque sidecar, la passerelle les atteint par URL, afin que vous puissiez les exécuter à côté de la passerelle ou les pointer vers une instance partagée.

Câblage

L’installateur hôte-natif configure pour vous les URLs STT et TTS. Elles sont paramètres du catalogue — changez-les depuis l’interface d’administration (Gestion → Paramètres) ou avec aihummer settings set; gateway.env est uniquement pour bootstrap et ignoré pour ceux-ci :

# Voice in/out (auto-configured by the installer)
aihummer settings set AIHUMMER_STT_URL http://127.0.0.1:8001
aihummer settings set AIHUMMER_TTS_URL http://127.0.0.1:8002

[!TIP] Parce que chaque sidecar n’est qu’une URL, plusieurs passerelles peuvent partager un STT/TTS instance. Centralisez les services de communication plus lourds au lieu d’exécuter une copie par hôte.

Réglage du chemin audio

Les boutons de qualité de voix vivent dans le Média · Voix groupe de paramètres et sont configurables depuis l’interface d’administration web — aucun redéploiement nécessaire. Ils couvrent le chemin audio en temps réel :

Bouton Ce que cela contrôle
Duplex Duplex intégral (écouter tout en parlant) vs semi-duplex
AEC Annulation de l’écho acoustique
Suppression du bruit Filtre le bruit de fond avant la reconnaissance vocale
AGC Commande automatique du gain (normalisation du niveau)
Seuil VAD Sensibilité de la détection d’activité vocale
Interruption Laissez l’appelant interrompre l’agent en plein réponse

GET /v1/voice/config renvoie la configuration effective afin qu’un client puisse découvrir les moteurs actifs et ces paramètres.

Réponses vocales automatiques

Trois réglages du groupe « Media · Voice » (interface web → Gestion → Paramètres) décident quand une réponse terminée est lue à voix haute :

Réglage Clé Valeurs
Réponses vocales automatiques AIHUMMER_TTS_AUTO_REPLY off — jamais ; always — toujours ; inbound (par défaut) — seulement en réponse à un audio entrant ; tagged — quand l’agent marque explicitement la réponse pour la voix
Limite de caractères à lire AIHUMMER_TTS_MAX_CHARS 0 (par défaut) — lire la réponse entière ; 10010000 — limite du texte lu
Résumer les longues réponses vocales AIHUMMER_TTS_SUMMARIZE activé par défaut : une réponse longue est raccourcie par le modèle jusqu’à la limite ; si le modèle est indisponible, le début du texte est lu

Le texte complet de la réponse reste dans l’historique du dialogue quel que soit le mode. off ne désactive que la lecture automatique — une demande explicite de synthèse via l’outil tts fonctionne toujours.

Pour un dialogue donné, l’agent peut, à la demande de l’interlocuteur, surcharger ces valeurs avec les outils voice_preferences (lire les valeurs en vigueur) et set_voice_preferences (définir auto, max_chars, summarize ; un objet vide rétablit les valeurs par défaut de l’instance). L’écriture n’est possible que pour un participant du dialogue. La sortie vocale prend en compte un fournisseur connecté après le démarrage de la passerelle et respecte les réglages de l’utilisateur concerné.

Où aller ensuite