10d. Audio Workers (TTS & STT)

ECHO intègre deux moteurs dédiés au traitement du signal vocal : Kokoro TTS (synthèse vocale) et Whisper STT (transcription). Ces services opèrent comme des micro-services isolés au sein de l'infrastructure Docker, exposant des API compatibles OpenAI (endpoints /v1/audio/speech et /v1/audio/transcriptions) consommées nativement par Open WebUI.

Fiche d'identité technique

AttributTTS WorkerSTT Worker
Imageecho-tts-workerecho-stt-worker
Port Interne79967995
TechnologieKokoro (ONNX) + PydubFaster-Whisper (INT8)
Modèle Actifkokoro-v0.19 (~80Mo)whisper-base/small
Endpoint/v1/audio/speech/v1/audio/transcriptions

Architecture du Worker Kokoro TTS

Le moteur de synthèse vocale (tts_api.py) implémente une architecture de flux audio asynchrone conçue pour minimiser le TTFB (Time To First Byte) et préserver la fidélité prosodique multilingue.

Pipeline Hybride G2P (Grapheme-to-Phoneme)

La gestion du texte multilingue repose sur l'algorithme hybrid_g2p_parse(text, main_lang). Le traitement s'effectue en trois phases :

  1. Découpage sémantique : Le texte entrant est fractionné en phrases (via expressions régulières) pour respecter le souffle et le rythme naturel.
  2. Analyse lexicale : Chaque phrase est décomposée en mots. Chaque mot est testé contre le dictionnaire de la langue principale (main_lang). En cas d'échec, les dictionnaires secondaires sont interrogés.
  3. Reconstitution phonémique : Les phonèmes issus de différentes langues sont concaténés. Ce mécanisme préserve la prosodie exacte lors des changements de langue (code-switching) au sein d'une même phrase.

Encodage et Streaming MP3 à la volée

L'inférence du modèle Kokoro produit des tenseurs audio bruts (numpy.ndarray en float32). Pour être consommables par les navigateurs web, ces données subissent une conversion asynchrone :

Mappage Dynamique des Modèles Vocaux

Les voix sont assignées dynamiquement via le dictionnaire VOICE_MAP en fonction de la langue détectée. Les modèles féminins de référence sont :

Architecture du Worker Whisper STT

Le service de reconnaissance vocale utilise l'implémentation faster-whisper, offrant une transcription locale à faible latence sans dépendance cloud. Le service traite les flux audio entrants via l'endpoint compatible OpenAI, extrait le texte et le retourne immédiatement à l'interface pour injection dans le prompt utilisateur.

← Bouclier BunkerWeb WAF    Scripts d'Infrastructure →