# Synthèse TTS — STREAMING temps réel (TTFA)

> ⚠️ **Vitesse ≠ qualité/accent** : les latences classent la réactivité, pas le rendu — **écouter les audios** pour juger. Arbo normalisée `tts_out/<modele>-<version>-<stream|batch>-<cloud|hosted>/<langue>/<Voix>__<variante>.wav` ; liens relatifs depuis `bench/results/`. Généré le 2026-06-24.


## Tableau de synthèse

| Modèle | Héberg. | Stream | TTFA fr | Plage TTFA | Langues | RGPD | Licence |
|---|---|---|---|---|---|---|---|
| **Cartesia Sonic-3.5** | cloud | SSE | **176 ms** 🥇 | 155–243 ms | 42 | ⚠️ pas EU, ZDR>20k$ | propr. |
| **Chirp 3 HD** | cloud | gRPC | 888 ms | 684–888 ms | 50+ | ✅ **EU réel** | propr. |
| Gemini Live (3.1-flash-live) | cloud | WS | ~540 ms | — | 24–70+ | ❌ EU (rapide) | propr. |
| **Kyutai 1.6B** | **self-host** | natif | 1301 ms | fr/en | 2 | ✅ offline | CC-BY-4.0 |


---

## Détail modèle par modèle (cloud → self-host)


### Cartesia Sonic-3.5  ☁️ cloud

🥇 **TTFA le plus bas du bench (médiane 176 ms FR, 155–243 ms toutes langues)**. Vrai streaming SSE. FR natif — ⚠️ **« Amélie » sonne anglo (abandonnée)** → **Laurent / Inès** (émotions incluses). ⚠️ **stream cloud testé avec la voix défaut (mauvaise) → re-tester le stream avec Laurent/Inès (prochain bench)**.

**Fiche**

| Donnée | Valeur |
|---|---|
| Hébergement | Cloud (api.cartesia.ai, edge CloudFront Londres) |
| Streaming | SSE natif (`/tts/sse`) |
| Modèle | sonic-3.5 |
| Licence | Propriétaire (cloud) ; self-host **calibré H100/H200** ; **Sonic On-Device** Mac/MLX = private beta |
| Params / VRAM / disque | n/a (cloud) |
| Langues | **42** (FR, ES multi-pays, TR…), 775 voix |
| RGPD / ZDR | ⚠️ **Pas d'endpoint EU** ; GDPR contractuel SCC/DPF ; **Zero Data Retention réservé ENTREPRISE > 20 k$/an** |
| Tarif | cloud à l'usage ; ZDR/EU = offre entreprise > 20 k$/an |
| Date bench | 2026-06-16/24 |


**TTFA streaming par langue (mesuré)**

| Langue | TTFA médian (ms) | TTFA EU (ms) |
|---|---|---|
| Français | 176 | — |
| Anglais | 169 | — |
| Espagnol | 209 | — |
| Portugais | 161 | — |
| Allemand | 180 | — |
| Italien | 243 | — |
| Néerlandais | 161 | — |
| Japonais | 163 | — |
| Chinois | 194 | — |
| Turc | 155 | — |


**🔊 Audios (voix · émotions · langues)**


**Allemand** (7)  
- _Alexander Reliable Advisor_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/de/Alexander-Reliable-Advisor__neu.wav)
- _Alina Engaging Assistant_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/de/Alina-Engaging-Assistant__neu.wav)
- _Andreas Recorder_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/de/Andreas-Recorder__neu.wav)
- _Eleni Troubleshooter_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/de/Eleni-Troubleshooter__neu.wav)
- _Henrik SteadyAnalyst_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/de/Henrik-SteadyAnalyst__neu.wav)
- _Marlene ElegantSpeaker_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/de/Marlene-ElegantSpeaker__neu.wav)
- _Sebastian Orator_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/de/Sebastian-Orator__neu.wav)

**Anglais** (34)  
- _Adrian Explorer_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/en/Adrian-Explorer__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/en/Adrian-Explorer__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Adrian-Explorer__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/en/Adrian-Explorer__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Adrian-Explorer__emo-sad.wav)
- _Alaric Wizard_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/en/Alaric-Wizard__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/en/Alaric-Wizard__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Alaric-Wizard__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/en/Alaric-Wizard__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Alaric-Wizard__emo-sad.wav)
- _Albert Firm Guide_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/en/Albert-Firm-Guide__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/en/Albert-Firm-Guide__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Albert-Firm-Guide__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/en/Albert-Firm-Guide__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Albert-Firm-Guide__emo-sad.wav)
- _Allie Natural Conversationalist_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/en/Allie-Natural-Conversationalist__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/en/Allie-Natural-Conversationalist__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Allie-Natural-Conversationalist__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/en/Allie-Natural-Conversationalist__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Allie-Natural-Conversationalist__emo-sad.wav)
- _Amber Warm Support Agent_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/en/Amber-Warm-Support-Agent__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/en/Amber-Warm-Support-Agent__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Amber-Warm-Support-Agent__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/en/Amber-Warm-Support-Agent__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Amber-Warm-Support-Agent__emo-sad.wav)
- _Aurora Fairy Princess_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/en/Aurora-Fairy-Princess__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/en/Aurora-Fairy-Princess__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Aurora-Fairy-Princess__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/en/Aurora-Fairy-Princess__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/en/Aurora-Fairy-Princess__emo-sad.wav)
- _Gemma DecisiveAgent GB_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/en/Gemma-DecisiveAgent-GB__neu.wav)
- _George ComposedConsultant GB_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/en/George-ComposedConsultant-GB__neu.wav)
- _Skylar FriendlyGuide US_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/en/Skylar-FriendlyGuide-US__neu.wav)
- _Theo ModernNarrator US_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/en/Theo-ModernNarrator-US__neu.wav)

**Espagnol** (9)  
- _Alondra Reassuring Sister_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/es/Alondra-Reassuring-Sister__neu.wav)
- _Andres TrustedVoice MX_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/es/Andres-TrustedVoice-MX__neu.wav)
- _Benito Digital Voice_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/es/Benito-Digital-Voice__neu.wav)
- _Blanca Graceful Host_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/es/Blanca-Graceful-Host__neu.wav)
- _Daniela RelaxedWoman MX_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/es/Daniela-RelaxedWoman-MX__neu.wav)
- _Gonzalo Grounded Storyteller_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/es/Gonzalo-Grounded-Storyteller__neu.wav)
- _Marcos SteadyAdvisor ES_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/es/Marcos-SteadyAdvisor-ES__neu.wav)
- _Mariana NurturingGuide CO_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/es/Mariana-NurturingGuide-CO__neu.wav)
- _Nuria TrustedAdvisor ES_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/es/Nuria-TrustedAdvisor-ES__neu.wav)

**Français** (61)  
- _Antoine Stern Man_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Antoine-Stern-Man__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Antoine-Stern-Man__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Antoine-Stern-Man__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Antoine-Stern-Man__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Antoine-Stern-Man__emo-sad.wav)
- _Benoît Methodical Moderator_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Benoît-Methodical-Moderator__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Benoît-Methodical-Moderator__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Benoît-Methodical-Moderator__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Benoît-Methodical-Moderator__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Benoît-Methodical-Moderator__emo-sad.wav)
- _Eloise Dialogue Anchor_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Eloise-Dialogue-Anchor__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Eloise-Dialogue-Anchor__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Eloise-Dialogue-Anchor__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Eloise-Dialogue-Anchor__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Eloise-Dialogue-Anchor__emo-sad.wav)
- _FrenchNarratorLady_ : [dur · chiffres/dates](../tts_out/cartesia-sonic3.5-batch-cloud/fr/FrenchNarratorLady__hard-num.wav) · [dur · codes](../tts_out/cartesia-sonic3.5-batch-cloud/fr/FrenchNarratorLady__hard-code.wav) · [dur · noms](../tts_out/cartesia-sonic3.5-batch-cloud/fr/FrenchNarratorLady__hard-names.wav) · [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/fr/FrenchNarratorLady__neu.wav)
- _Ines PoisedCommunicator_ : [dur · chiffres/dates](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__hard-num.wav) · [dur · codes](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__hard-code.wav) · [dur · marques](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__hard-brand.wav) · [dur · noms](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__hard-names.wav) · [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Ines-PoisedCommunicator__emo-sad.wav)
- _Inès Poised Communicator_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Inès-Poised-Communicator__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Inès-Poised-Communicator__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Inès-Poised-Communicator__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Inès-Poised-Communicator__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Inès-Poised-Communicator__emo-sad.wav)
- _Laurent Dependable Anchor_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Laurent-Dependable-Anchor__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Laurent-Dependable-Anchor__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Laurent-Dependable-Anchor__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Laurent-Dependable-Anchor__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Laurent-Dependable-Anchor__emo-sad.wav)
- _Laurent DependableAnchor_ : [dur · chiffres/dates](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__hard-num.wav) · [dur · codes](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__hard-code.wav) · [dur · marques](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__hard-brand.wav) · [dur · noms](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__hard-names.wav) · [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Laurent-DependableAnchor__emo-sad.wav)
- _Mathieu AssuredExpert_ : [dur · chiffres/dates](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Mathieu-AssuredExpert__hard-num.wav) · [dur · codes](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Mathieu-AssuredExpert__hard-code.wav) · [dur · noms](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Mathieu-AssuredExpert__hard-names.wav) · [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Mathieu-AssuredExpert__neu.wav)
- _Pauline Helpful Companion_ : [dur · chiffres/dates](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Pauline-Helpful-Companion__hard-num.wav) · [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Pauline-Helpful-Companion__neu.wav) · [émotion · colère](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Pauline-Helpful-Companion__emo-angry.wav) · [émotion · enthousiaste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Pauline-Helpful-Companion__emo-enthus.wav) · [émotion · gaie](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Pauline-Helpful-Companion__emo-happy.wav) · [émotion · triste](../tts_out/cartesia-sonic3.5-stream-cloud/fr/Pauline-Helpful-Companion__emo-sad.wav)
- _Pauline HelpfulCompanion_ : [dur · chiffres/dates](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Pauline-HelpfulCompanion__hard-num.wav) · [dur · codes](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Pauline-HelpfulCompanion__hard-code.wav) · [dur · noms](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Pauline-HelpfulCompanion__hard-names.wav) · [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/fr/Pauline-HelpfulCompanion__neu.wav)

**Italien** (7)  
- _Alessandra Melodic Guide_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/it/Alessandra-Melodic-Guide__neu.wav)
- _Alessandra MelodicGuide_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/it/Alessandra-MelodicGuide__neu.wav)
- _Francesca Elegant Partner_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/it/Francesca-Elegant-Partner__neu.wav)
- _Francesca ElegantPartner_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/it/Francesca-ElegantPartner__neu.wav)
- _Giancarlo Support Leader_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/it/Giancarlo-Support-Leader__neu.wav)
- _Giuseppe Retro Man_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/it/Giuseppe-Retro-Man__neu.wav)
- _Lorenzo HospitableHost_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/it/Lorenzo-HospitableHost__neu.wav)

**Japonais** (7)  
- _Aiko Calming Voice_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/ja/Aiko-Calming-Voice__neu.wav)
- _Ayako_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/ja/Ayako__neu.wav)
- _Hinata GracefulGuide JP_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/ja/Hinata-GracefulGuide-JP__neu.wav)
- _Katsuya Promo Host_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/ja/Katsuya-Promo-Host__neu.wav)
- _Kenji CalmMan JP_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/ja/Kenji-CalmMan-JP__neu.wav)
- _Ren Calm Navigator_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/ja/Ren-Calm-Navigator__neu.wav)
- _Yuki CalmWoman JP_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/ja/Yuki-CalmWoman-JP__neu.wav)

**Néerlandais** (7)  
- _Anneke Trusted Guide_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/nl/Anneke-Trusted-Guide__neu.wav)
- _Isa Empathetic Ear_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/nl/Isa-Empathetic-Ear__neu.wav)
- _Jeroen Clear Storyteller_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/nl/Jeroen-Clear-Storyteller__neu.wav)
- _Jeroen ClearStory NL_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/nl/Jeroen-ClearStory-NL__neu.wav)
- _Lucas Storyteller_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/nl/Lucas-Storyteller__neu.wav)
- _Lucas Storyteller NL_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/nl/Lucas-Storyteller-NL__neu.wav)
- _Sanne ClearCompanion NL_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/nl/Sanne-ClearCompanion-NL__neu.wav)

**Portugais** (8)  
- _Beatriz Support Guide_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/pt/Beatriz-Support-Guide__neu.wav)
- _Beatriz SupportGuide PT_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/pt/Beatriz-SupportGuide-PT__neu.wav)
- _Bruno ReliableComm BR_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/pt/Bruno-ReliableComm-BR__neu.wav)
- _Diogo Promotion Lead_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/pt/Diogo-Promotion-Lead__neu.wav)
- _Isabel Confident Woman_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/pt/Isabel-Confident-Woman__neu.wav)
- _Isabella WarmStory BR_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/pt/Isabella-WarmStory-BR__neu.wav)
- _Tiago Narration Expert_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/pt/Tiago-Narration-Expert__neu.wav)
- _Tiago NarrationExpert PT_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/pt/Tiago-NarrationExpert-PT__neu.wav)

**Turc** (7)  
- _Aykut Friendly Companion_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/tr/Aykut-Friendly-Companion__neu.wav)
- _Aylin Warm Guide_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/tr/Aylin-Warm-Guide__neu.wav)
- _Aylin WarmGuide TR_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/tr/Aylin-WarmGuide-TR__neu.wav)
- _Elif Structured Supporter_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/tr/Elif-Structured-Supporter__neu.wav)
- _Emre Calming Speaker_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/tr/Emre-Calming-Speaker__neu.wav)
- _Leyla StoryCompanion TR_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/tr/Leyla-StoryCompanion-TR__neu.wav)
- _Taylan ExpressiveVoice TR_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/tr/Taylan-ExpressiveVoice-TR__neu.wav)

**Chinois** (7)  
- _Hao Friendly Guy_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/zh/Hao-Friendly-Guy__neu.wav)
- _Hao FriendlyGuy_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/zh/Hao-FriendlyGuy__neu.wav)
- _Hua Sunny Support_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/zh/Hua-Sunny-Support__neu.wav)
- _Jian Direct Dispatcher_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/zh/Jian-Direct-Dispatcher__neu.wav)
- _Jing Clear Coordinator_ : [neutre](../tts_out/cartesia-sonic3.5-stream-cloud/zh/Jing-Clear-Coordinator__neu.wav)
- _Jing ClearCoordinator_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/zh/Jing-ClearCoordinator__neu.wav)
- _Tao Lecturer_ : [neutre](../tts_out/cartesia-sonic3.5-batch-cloud/zh/Tao-Lecturer__neu.wav)


### Google Cloud TTS — Chirp 3 HD  ☁️ cloud

🥈 **Seul candidat avec VRAIE résidence EU** (`europe-west2`, sans surcoût). TTFA ~680–890 ms (gRPC natif). Même techno de voix qu'Gemini (AudioML). ⚠️ **stream cloud testé voix défaut → re-tester le stream avec les bonnes voix (prochain bench)**.

**Fiche**

| Donnée | Valeur |
|---|---|
| Hébergement | Cloud Google (global + **EU eu/europe-west2 GA**) |
| Streaming | gRPC `streamingSynthesize` natif |
| Modèle | chirp3-hd |
| Licence | Propriétaire (cloud) |
| Params / VRAM / disque | n/a (cloud) |
| Langues | 50+ ; 30 voix/locale ; ⚠️ pas de `pt-PT` (BR seul), pas d'`es-MX` dédié (=es-US) |
| RGPD / ZDR | ✅ **Résidence EU réelle**, pas de réutilisation des données, **sans surcoût entreprise** |
| Tarif | cloud à l'usage (par caractère) |
| Date bench | 2026-06-13/16 |


**TTFA streaming par langue (mesuré)**

| Langue | TTFA médian (ms) | TTFA EU (ms) |
|---|---|---|
| Français | 888 | 765 |
| Anglais | 727 | 818 |
| Espagnol | 700 | 820 |
| Portugais | 717 | 760 |
| Allemand | 744 | 733 |
| Italien | 684 | 730 |
| Néerlandais | 743 | 708 |
| Japonais | 715 | 732 |
| Chinois | 718 | 708 |
| Turc | 792 | 715 |


**🔊 Audios (voix · émotions · langues)**


**Allemand** (7)  
- _Aoede_ : [neutre](../tts_out/chirp3-hd-batch-cloud/de/Aoede__neu.wav)
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/de/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/chirp3-hd-batch-cloud/de/Kore__neu.wav)
- _de DE Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/de/de-DE-Chirp3-HD-Achernar__neu.wav)
- _de DE Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/de/de-DE-Chirp3-HD-Achird__neu.wav)
- _de DE Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/de/de-DE-Chirp3-HD-Algenib__neu.wav)
- _de DE Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/de/de-DE-Chirp3-HD-Aoede__neu.wav)

**Anglais** (9)  
- _Achernar_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/en/Achernar__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/en/Achernar__hard-code.wav) · [dur · marques](../tts_out/chirp3-hd-batch-cloud/en/Achernar__hard-brand.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/en/Achernar__hard-names.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/en/Achernar__neu.wav)
- _Aoede_ : [neutre](../tts_out/chirp3-hd-batch-cloud/en/Aoede__neu.wav)
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/en/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/chirp3-hd-batch-cloud/en/Kore__neu.wav)
- _Puck_ : [neutre](../tts_out/chirp3-hd-batch-cloud/en/Puck__neu.wav)

**Anglais (GB)** (15)  
- _en GB Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achernar__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achernar__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achernar__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achernar__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achernar__emo-sad.wav)
- _en GB Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achird__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achird__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achird__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achird__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Achird__emo-sad.wav)
- _en GB Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Aoede__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Aoede__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Aoede__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Aoede__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/en-GB/en-GB-Chirp3-HD-Aoede__emo-sad.wav)

**Anglais (US)** (15)  
- _en US Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achernar__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achernar__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achernar__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achernar__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achernar__emo-sad.wav)
- _en US Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achird__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achird__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achird__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achird__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Achird__emo-sad.wav)
- _en US Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Algenib__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Algenib__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Algenib__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Algenib__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/en-US/en-US-Chirp3-HD-Algenib__emo-sad.wav)

**Espagnol** (4)  
- _Aoede_ : [neutre](../tts_out/chirp3-hd-batch-cloud/es/Aoede__neu.wav)
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/es/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/chirp3-hd-batch-cloud/es/Kore__neu.wav)
- _Puck_ : [neutre](../tts_out/chirp3-hd-batch-cloud/es/Puck__neu.wav)

**Espagnol (Espagne)** (2)  
- _es ES Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/es-ES/es-ES-Chirp3-HD-Achernar__neu.wav)
- _es ES Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/es-ES/es-ES-Chirp3-HD-Achird__neu.wav)

**Espagnol (Amérique latine)** (2)  
- _es US Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/es-US/es-US-Chirp3-HD-Achernar__neu.wav)
- _es US Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/es-US/es-US-Chirp3-HD-Achird__neu.wav)

**Français** (98)  
- _Achernar_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__hard-code.wav) · [dur · marques](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__hard-brand.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__hard-names.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-batch-cloud/fr/Achernar__emo-sad.wav)
- _Achird_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Achird__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Achird__hard-code.wav) · [dur · marques](../tts_out/chirp3-hd-batch-cloud/fr/Achird__hard-brand.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Achird__hard-names.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Achird__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-batch-cloud/fr/Achird__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Achird__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-batch-cloud/fr/Achird__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-batch-cloud/fr/Achird__emo-sad.wav)
- _Aoede_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__hard-num.wav) · [dur · chiffres/dates (2)](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__hard-num-2.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__hard-code.wav) · [dur · codes (2)](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__hard-code-2.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__hard-names.wav) · [dur · noms (2)](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__hard-names-2.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__neu.wav) · [neutre (2)](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__neu-2.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Aoede__emo-enthus.wav)
- _Charon_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Charon__hard-num.wav) · [dur · chiffres/dates (2)](../tts_out/chirp3-hd-batch-cloud/fr/Charon__hard-num-2.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Charon__hard-code.wav) · [dur · codes (2)](../tts_out/chirp3-hd-batch-cloud/fr/Charon__hard-code-2.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Charon__hard-names.wav) · [dur · noms (2)](../tts_out/chirp3-hd-batch-cloud/fr/Charon__hard-names-2.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Charon__neu.wav) · [neutre (2)](../tts_out/chirp3-hd-batch-cloud/fr/Charon__neu-2.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Charon__emo-enthus.wav)
- _Fenrir_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Fenrir__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Fenrir__hard-code.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Fenrir__hard-names.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Fenrir__neu.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Fenrir__emo-enthus.wav)
- _Kore_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Kore__hard-num.wav) · [dur · chiffres/dates (2)](../tts_out/chirp3-hd-batch-cloud/fr/Kore__hard-num-2.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Kore__hard-code.wav) · [dur · codes (2)](../tts_out/chirp3-hd-batch-cloud/fr/Kore__hard-code-2.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Kore__hard-names.wav) · [dur · noms (2)](../tts_out/chirp3-hd-batch-cloud/fr/Kore__hard-names-2.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Kore__neu.wav) · [neutre (2)](../tts_out/chirp3-hd-batch-cloud/fr/Kore__neu-2.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Kore__emo-enthus.wav)
- _Leda_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Leda__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Leda__hard-code.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Leda__hard-names.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Leda__neu.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Leda__emo-enthus.wav)
- _Puck_ : [dur · chiffres/dates](../tts_out/chirp3-hd-batch-cloud/fr/Puck__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-batch-cloud/fr/Puck__hard-code.wav) · [dur · noms](../tts_out/chirp3-hd-batch-cloud/fr/Puck__hard-names.wav) · [neutre](../tts_out/chirp3-hd-batch-cloud/fr/Puck__neu.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-batch-cloud/fr/Puck__emo-enthus.wav)
- _fr FR Chirp3 HD Achernar_ : [dur · chiffres/dates](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__hard-code.wav) · [dur · marques](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__hard-brand.wav) · [dur · noms](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__hard-names.wav) · [neutre](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achernar__emo-sad.wav)
- _fr FR Chirp3 HD Achird_ : [dur · chiffres/dates](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__hard-num.wav) · [dur · codes](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__hard-code.wav) · [dur · marques](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__hard-brand.wav) · [dur · noms](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__hard-names.wav) · [neutre](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Achird__emo-sad.wav)
- _fr FR Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algenib__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algenib__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algenib__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algenib__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algenib__emo-sad.wav)
- _fr FR Chirp3 HD Algieba_ : [neutre](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algieba__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algieba__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algieba__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algieba__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Algieba__emo-sad.wav)
- _fr FR Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Aoede__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Aoede__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Aoede__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Aoede__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Aoede__emo-sad.wav)
- _fr FR Chirp3 HD Autonoe_ : [neutre](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Autonoe__neu.wav) · [émotion · colère](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Autonoe__emo-angry.wav) · [émotion · enthousiaste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Autonoe__emo-enthus.wav) · [émotion · gaie](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Autonoe__emo-happy.wav) · [émotion · triste](../tts_out/chirp3-hd-stream-cloud/fr/fr-FR-Chirp3-HD-Autonoe__emo-sad.wav)

**Italien** (7)  
- _Aoede_ : [neutre](../tts_out/chirp3-hd-batch-cloud/it/Aoede__neu.wav)
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/it/Charon__neu.wav)
- _Puck_ : [neutre](../tts_out/chirp3-hd-batch-cloud/it/Puck__neu.wav)
- _it IT Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/it/it-IT-Chirp3-HD-Achernar__neu.wav)
- _it IT Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/it/it-IT-Chirp3-HD-Achird__neu.wav)
- _it IT Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/it/it-IT-Chirp3-HD-Algenib__neu.wav)
- _it IT Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/it/it-IT-Chirp3-HD-Aoede__neu.wav)

**Japonais** (7)  
- _Aoede_ : [neutre](../tts_out/chirp3-hd-batch-cloud/ja/Aoede__neu.wav)
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/ja/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/chirp3-hd-batch-cloud/ja/Kore__neu.wav)
- _ja JP Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/ja/ja-JP-Chirp3-HD-Achernar__neu.wav)
- _ja JP Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/ja/ja-JP-Chirp3-HD-Achird__neu.wav)
- _ja JP Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/ja/ja-JP-Chirp3-HD-Algenib__neu.wav)
- _ja JP Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/ja/ja-JP-Chirp3-HD-Aoede__neu.wav)

**Néerlandais** (6)  
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/nl/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/chirp3-hd-batch-cloud/nl/Kore__neu.wav)
- _nl NL Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/nl/nl-NL-Chirp3-HD-Achernar__neu.wav)
- _nl NL Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/nl/nl-NL-Chirp3-HD-Achird__neu.wav)
- _nl NL Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/nl/nl-NL-Chirp3-HD-Algenib__neu.wav)
- _nl NL Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/nl/nl-NL-Chirp3-HD-Aoede__neu.wav)

**Portugais** (3)  
- _Aoede_ : [neutre](../tts_out/chirp3-hd-batch-cloud/pt/Aoede__neu.wav)
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/pt/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/chirp3-hd-batch-cloud/pt/Kore__neu.wav)

**Portugais (Brésil)** (4)  
- _pt BR Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/pt-BR/pt-BR-Chirp3-HD-Achernar__neu.wav)
- _pt BR Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/pt-BR/pt-BR-Chirp3-HD-Achird__neu.wav)
- _pt BR Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/pt-BR/pt-BR-Chirp3-HD-Algenib__neu.wav)
- _pt BR Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/pt-BR/pt-BR-Chirp3-HD-Aoede__neu.wav)

**Turc** (6)  
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/tr/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/chirp3-hd-batch-cloud/tr/Kore__neu.wav)
- _tr TR Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/tr/tr-TR-Chirp3-HD-Achernar__neu.wav)
- _tr TR Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/tr/tr-TR-Chirp3-HD-Achird__neu.wav)
- _tr TR Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/tr/tr-TR-Chirp3-HD-Algenib__neu.wav)
- _tr TR Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/tr/tr-TR-Chirp3-HD-Aoede__neu.wav)

**Chinois** (6)  
- _Aoede_ : [neutre](../tts_out/chirp3-hd-batch-cloud/zh/Aoede__neu.wav)
- _Charon_ : [neutre](../tts_out/chirp3-hd-batch-cloud/zh/Charon__neu.wav)
- _cmn CN Chirp3 HD Achernar_ : [neutre](../tts_out/chirp3-hd-stream-cloud/zh/cmn-CN-Chirp3-HD-Achernar__neu.wav)
- _cmn CN Chirp3 HD Achird_ : [neutre](../tts_out/chirp3-hd-stream-cloud/zh/cmn-CN-Chirp3-HD-Achird__neu.wav)
- _cmn CN Chirp3 HD Algenib_ : [neutre](../tts_out/chirp3-hd-stream-cloud/zh/cmn-CN-Chirp3-HD-Algenib__neu.wav)
- _cmn CN Chirp3 HD Aoede_ : [neutre](../tts_out/chirp3-hd-stream-cloud/zh/cmn-CN-Chirp3-HD-Aoede__neu.wav)


### Gemini Live API (native audio)  ☁️ cloud

Streaming réel TEXTE→audio (WebSocket bidi) ~540 ms chaud / 840 ms froid. Lourd (dialogue) + rapide (`3.1-flash-live`) **pas EU** ; seul EU (`2.5-native`) ~2 s. = fallback.

**Fiche**

| Donnée | Valeur |
|---|---|
| Hébergement | Cloud (AI Studio / Vertex) |
| Streaming | WebSocket `BidiGenerateContent` natif |
| Modèle | gemini-3.1-flash-live-preview (rapide) / gemini-2.5-flash-native-audio (EU, lent) |
| Licence | Propriétaire (cloud) |
| Params / VRAM / disque | n/a |
| Langues | 24–70+, 30 voix, FR inclus |
| RGPD / ZDR | `2.5-native` régions EU ; `3.1-flash-live` global only |
| Tarif | cloud à l'usage |
| Date bench | 2026-06-16 |
| Code | branche `feat/gemini-live-tts-streaming` |


**TTFA streaming par langue (mesuré)**

| Langue | TTFA médian (ms) | TTFA EU (ms) |
|---|---|---|
| Français | 540 | — |


**🔊 Audios (voix · émotions · langues)**


**Allemand** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/de/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/de/Kore__neu.wav)

**Anglais** (6)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/en/Charon__neu.wav) · [émotion · colère](../tts_out/gemini-live3.1-stream-cloud/en/Charon__emo-angry.wav) · [émotion · enthousiaste](../tts_out/gemini-live3.1-stream-cloud/en/Charon__emo-enthus.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/en/Kore__neu.wav) · [émotion · colère](../tts_out/gemini-live3.1-stream-cloud/en/Kore__emo-angry.wav) · [émotion · enthousiaste](../tts_out/gemini-live3.1-stream-cloud/en/Kore__emo-enthus.wav)

**Espagnol** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/es/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/es/Kore__neu.wav)

**Français** (7)  
- _Charon_ : [dur · rendez-vous (date/heure)](../tts_out/gemini-live3.1-stream-cloud/fr/Charon__hard-rdv.wav) · [neutre](../tts_out/gemini-live3.1-stream-cloud/fr/Charon__neu.wav) · [émotion · colère](../tts_out/gemini-live3.1-stream-cloud/fr/Charon__emo-angry.wav) · [émotion · enthousiaste](../tts_out/gemini-live3.1-stream-cloud/fr/Charon__emo-enthus.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/fr/Kore__neu.wav) · [émotion · colère](../tts_out/gemini-live3.1-stream-cloud/fr/Kore__emo-angry.wav) · [émotion · enthousiaste](../tts_out/gemini-live3.1-stream-cloud/fr/Kore__emo-enthus.wav)

**Italien** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/it/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/it/Kore__neu.wav)

**Japonais** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/ja/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/ja/Kore__neu.wav)

**Néerlandais** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/nl/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/nl/Kore__neu.wav)

**Portugais** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/pt/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/pt/Kore__neu.wav)

**Turc** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/tr/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/tr/Kore__neu.wav)

**Chinois** (2)  
- _Charon_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/zh/Charon__neu.wav)
- _Kore_ : [neutre](../tts_out/gemini-live3.1-stream-cloud/zh/Kore__neu.wav)


### Kyutai TTS 1.6B  🖥️ self-host

Le plus rapide des self-host (**RTF 0,82**, TTFA natif **1301 ms**), offline. Voix FR correcte mais « fait IA » (rate le « h » de l'heure) — **reste candidat** offline.

**Fiche**

| Donnée | Valeur |
|---|---|
| Hébergement | **Self-host (offline)** — moshi (PyTorch) |
| Streaming | natif (on_frame) |
| Modèle | kyutai/tts-1.6b-en_fr |
| Licence | **CC-BY-4.0** (commercial OK) |
| Params | ~1,6 B |
| Pic VRAM | 5302 MiB |
| Disque | ~3,8 Go |
| Langues | **fr, en** uniquement |
| RGPD / ZDR | ✅ **offline = aucune donnée sortante** |
| Tarif | gratuit (poids ouverts) |
| Date bench | 2026-06-13 |


**TTFA streaming par langue (mesuré)**

| Langue | TTFA médian (ms) | TTFA EU (ms) |
|---|---|---|
| Français | 1301 | — |
| Anglais | 1301 | — |


**Métriques (L4)**

| RTF médian | TTFA natif | Pic VRAM | synth médian |
|---|---|---|---|
| 0,82 | 1301 ms | 5302 MiB | 4316 ms |


**🔊 Audios (voix · émotions · langues)**


**Anglais** (45)  
- _ENexpr1_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr1__emo-sad.wav)
- _ENexpr2_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr2__emo-sad.wav)
- _ENexpr3_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr3__emo-sad.wav)
- _ENexpr4_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/en/ENexpr4__emo-sad.wav)
- _default_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-batch-hosted/en/default__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-batch-hosted/en/default__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-batch-hosted/en/default__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-batch-hosted/en/default__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-batch-hosted/en/default__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-batch-hosted/en/default__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-batch-hosted/en/default__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-batch-hosted/en/default__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-batch-hosted/en/default__emo-sad.wav)

**Français** (45)  
- _FRcml1_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml1__emo-sad.wav)
- _FRcml2_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml2__emo-sad.wav)
- _FRcml3_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml3__emo-sad.wav)
- _FRcml4_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-stream-hosted/fr/FRcml4__emo-sad.wav)
- _default_ : [dur · chiffres/dates](../tts_out/kyutai-1.6b-batch-hosted/fr/default__hard-num.wav) · [dur · codes](../tts_out/kyutai-1.6b-batch-hosted/fr/default__hard-code.wav) · [dur · marques](../tts_out/kyutai-1.6b-batch-hosted/fr/default__hard-brand.wav) · [dur · noms](../tts_out/kyutai-1.6b-batch-hosted/fr/default__hard-names.wav) · [neutre](../tts_out/kyutai-1.6b-batch-hosted/fr/default__neu.wav) · [émotion · colère](../tts_out/kyutai-1.6b-batch-hosted/fr/default__emo-angry.wav) · [émotion · enthousiaste](../tts_out/kyutai-1.6b-batch-hosted/fr/default__emo-enthus.wav) · [émotion · gaie](../tts_out/kyutai-1.6b-batch-hosted/fr/default__emo-happy.wav) · [émotion · triste](../tts_out/kyutai-1.6b-batch-hosted/fr/default__emo-sad.wav)



---

## ⚠️ Non testable sur GCP (L4) — TTS SELF-HOST à mesurer sur le **Mac mini M4 UNIQUEMENT**

Les latences TTS **self-host** (Kyutai, Qwen3-TTS, Chatterbox : **RTF, TTFA, pic VRAM**) sont mesurées sur **L4 CUDA en mode eager** (sans flash-attn ni torch.compile). **Ces chiffres NE sont PAS le verdict pour la cible de prod (Mac mini M4)** — ils servent juste à comparer les modèles entre eux. À refaire sur le Mac :

- **TTFA/RTF réels en MLX / Metal** : le portage Apple Silicon change tout (Qwen3-TTS à RTF 2,49 sur L4 peut être bien plus rapide une fois optimisé Mac ; idem Chatterbox/Kyutai). La vitesse self-host ne se tranche que là.
- **Cartesia Sonic On-Device** (Apple Silicon/MLX, private beta) : le candidat TTS « qualité ≈ Gemini » **offline** ne tourne **que** sur Mac — à demander + bencher (le self-host datacenter Cartesia est calibré H100/H200, pas Mac).
- **Co-résidence en mémoire unifiée** : STT + LLM + **TTS** ensemble dans la RAM unifiée du M4 (pic mémoire global, throughput partagé) — impossible à reproduire sur la VM L4.
- **Conso / thermique / Neural Engine** sur Apple Silicon.

Côté **cloud** (Cartesia, Chirp 3 HD, Gemini), les latences mesurées sont valables (ce sont des APIs) ; seul le **self-host** exige la cible Mac. → Bench **DÉCISIF = Mac mini M4** (cf. `docs/75-ops-scaleway-mac.md` / `docs/plans/bench-stt-tts.md`).
