Voix disponibles et personnalisation
Sur cette page
Mise à jour du 2 novembre 2026 — modèles audio. Plusieurs modèles de ce cours sont dépréciés :
tts-1,tts-1-hdetgpt-4o-mini-ttss’arrêtent le 6 janvier 2027 (remplaçant indiqué :gpt-realtime-2.1-mini, que le guide TTS d’OpenAI déclare non pris en charge par/v1/audio/speech: la migration de la synthèse vocale passe par l’API Realtime) ;gpt-realtime,gpt-4o-realtimeet les anciens modèles audio le 20 janvier 2027 (gpt-realtime-2.1,gpt-realtime-2.1-mini,gpt-audio-1.5) ;whisper-1,gpt-4o-transcribeet/v1/audio/translationsle 26 février 2027 (gpt-transcribe,gpt-live-transcribe,v1/realtime/translations). Pour la voix full-duplex, GPT-Live 1 est disponible dans l’API depuis le 10 septembre 2026. Leçon corrigée le 3 novembre 2026 : les « six voix principales » et leurs personnalités ne correspondaient plus à la documentation, qui liste 13 voix pourgpt-4o-mini-tts, 9 pourtts-1ettts-1-hdet 10 pour l’API Realtime ;gpt-4o-mini-ttsaccepte des consignes de style (instructions) ; la voix d’une session Realtime se fixe jusqu’à la première réponse audio. Sources : Text to speech · Realtime conversations.
Voix disponibles et personnalisation
Le choix de la voix est déterminant pour l’expérience utilisateur de votre agent vocal. Une voix adaptée au contexte — professionnelle pour un service client, chaleureuse pour un assistant personnel — transforme la perception de l’agent. L’API TTS propose plusieurs voix distinctes, chacune avec son caractère et ses forces.
Les voix standard
La documentation d’OpenAI liste 13 voix intégrées, dont la disponibilité dépend du modèle :
| Voix | gpt-4o-mini-tts | tts-1, tts-1-hd | API Realtime |
|---|---|---|---|
alloy, ash, coral, echo, sage, shimmer | Oui | Oui | Oui |
fable, nova, onyx | Oui | Oui | Non |
ballad, verse | Oui | Non | Oui |
marin, cedar | Oui, recommandées | Non | Oui, recommandées |
OpenAI recommande marin ou cedar pour la meilleure qualité, et précise que les voix sont optimisées pour l’anglais. Plutôt que de vous fier à une description, écoutez-les en français sur OpenAI.fm, le site de démonstration d’OpenAI, avec vos propres phrases : un timbre qui sonne bien en anglais peut décevoir sur un nom de rue ou un chiffre.
La sélection de voix peut être dynamique selon le type de contenu. La table ci-dessous est un exemple, à remplir après écoute, avec des voix que tts-1 accepte aussi :
def select_voice(context: str, tone: str = "professional") -> str:
"""Sélectionne la voix optimale selon le contexte."""
voice_map = {
"customer_service": {
"professional": "nova",
"warm": "shimmer",
"authoritative": "onyx"
},
"education": {
"professional": "echo",
"warm": "fable",
"authoritative": "onyx"
},
"narration": {
"professional": "onyx",
"warm": "echo",
"authoritative": "onyx"
},
"notification": {
"professional": "alloy",
"warm": "shimmer",
"authoritative": "nova"
}
}
return voice_map.get(context, {}).get(tone, "alloy")
# Exemples
voice = select_voice("customer_service", "warm") # → shimmer
voice = select_voice("education", "professional") # → echo
voice = select_voice("narration", "authoritative") # → onyx
Voix dans la Realtime API
Le TTS et la Realtime API partagent une famille de voix commune, mais chacune a les siennes : la Realtime API ajoute marin et cedar (les deux recommandées) et n’accepte pas certaines voix du TTS comme nova ou onyx. La voix se définit dans session.update :
await ws.send(json.dumps({
"type": "session.update",
"session": {
"type": "realtime",
"output_modalities": ["audio"],
"audio": {"output": {"voice": "marin"}}
}
}))
Choisissez la voix à la création de la session, ou dans un response.create : une fois que le modèle a produit de l’audio, elle ne peut plus changer pour la session. Pour basculer ensuite, ouvrez une nouvelle session.
Influencer le style par le texte
Avec gpt-4o-mini-tts, le style se règle d’abord par des consignes en langage naturel (instructions) : accent, émotion, intonation, vitesse, ton, chuchotement (leçon 13). tts-1 et tts-1-hd ne les acceptent pas ; il reste alors la ponctuation et la mise en forme du texte :
# Ton neutre
text_neutral = "Votre commande a été expédiée. Elle arrivera demain."
# Ton enthousiaste (exclamations)
text_excited = "Bonne nouvelle ! Votre commande a été expédiée ! Elle arrive dès demain !"
# Ton posé (phrases longues, virgules)
text_calm = "Votre commande, qui a été soigneusement préparée, vient d'être expédiée, et elle devrait arriver demain dans la journée."
# Pause explicite (tiret long ou points de suspension)
text_dramatic = "Le résultat est... extraordinaire."
# Emphase par capitalisation partielle
text_emphasis = "C'est EXACTEMENT ce dont vous avez besoin."
Utiliser le SSML-like via le texte
La documentation ne prévoit pas de SSML, mais vous pouvez simuler certains effets :
def format_for_tts(text: str, pauses: dict = None) -> str:
"""Formate le texte pour optimiser le rendu TTS."""
# Ajouter des pauses via des points de suspension
if pauses:
for marker, duration in pauses.items():
dots = "..." if duration == "short" else "....."
text = text.replace(marker, dots)
return text
formatted = format_for_tts(
"Résultat final : [pause] vous avez réussi le test.",
pauses={"[pause]": "short"}
)
# → "Résultat final : ... vous avez réussi le test."
Points clés à retenir
- 13 voix pour
gpt-4o-mini-tts, 9 pourtts-1ettts-1-hd, 10 pour l’API Realtime ;marinetcedarsont recommandées gpt-4o-mini-ttsaccepte des consignes de style (instructions) ; les anciens modèles ne réagissent qu’à la ponctuation- Le choix de la voix dépend du contexte : service client, éducation, narration, notifications
- La voix ne peut pas être changée en cours de session Realtime API
- La ponctuation influence directement la prosodie : exclamations, ellipses, tirets créent des effets
- Testez systématiquement les voix sur votre contenu réel avant de choisir