Les modèles de synthèse vocale (TTS) Gemini convertissent du texte en contenu audio à un ou plusieurs locuteurs. Vous pouvez contrôler le style, l'accent, le rythme et le ton de l'audio avec des métadonnées structurées de tour (speech_metadata) et des balises vocales intégrées.
Cette page vous explique comment générer de la parole avec les modèles suivants à l'aide des méthodes generateContent et streamGenerateContent de l'API Gemini Enterprise :
- Gemini 3.8 Flash TTS
(
gemini-3.8-flash-tts) - Gemini 3.8 Flash-Lite TTS
(
gemini-3.8-flash-lite-tts)
Les modèles TTS sont conçus pour la récitation exacte de texte avec un contrôle précis du style et du son, comme la narration, les livres audio et les réponses des agents vocaux. Pour des conversations interactives en temps réel avec entrée et sortie audio, utilisez plutôt l'API Live.
Si vous utilisez un modèle Gemini TTS antérieur, tel que gemini-3.1-flash-tts-preview, consultez le guide de migration.
Modèles compatibles
| Modèle | Un seul locuteur | Multi-locuteur | Streaming | Conception de la voix | Réplication vocale |
|---|---|---|---|---|---|
Gemini 3.8 Flash TTS (gemini-3.8-flash-tts) |
|||||
Gemini 3.8 Flash-Lite TTS (gemini-3.8-flash-lite-tts) |
|||||
Gemini 3.1 Flash TTS Preview (gemini-3.1-flash-tts-preview) |
|||||
Gemini 2.5 Pro TTS (gemini-2.5-pro-tts) |
|||||
Gemini 2.5 Flash TTS (gemini-2.5-flash-tts) |
Les exemples et les fonctionnalités de cette page s'appliquent aux modèles TTS Gemini 3.8. Pour les modèles précédents, consultez Gemini-TTS dans la documentationGoogle Cloud Text-to-Speech.
Quand utiliser quel modèle
Les deux modèles Gemini 3.8 TTS partagent le même schéma de requête et le même format d'invite. Vous pouvez donc passer de l'un à l'autre en modifiant l'ID du modèle :
- Utilisez Gemini 3.8 Flash TTS (
gemini-3.8-flash-tts) lorsque la fidélité acoustique, le jeu nuancé et le contrôle expressif sont les priorités absolues. Il convient aux travaux de création de qualité studio, aux dialogues complexes à plusieurs locuteurs, aux tags de rafales vocales fréquentes, aux prononciations difficiles, aux dialectes régionaux ou minoritaires, et aux narrations longues qui nécessitent une voix stable et un bruit ambiant. - Utilisez Gemini 3.8 Flash-Lite TTS (
gemini-3.8-flash-lite-tts) pour les charges de travail de production rapides et économiques. Il s'agit du remplacement recommandé pourgemini-3.1-flash-tts-preview. Il convient à la production par lots à fort volume, aux cascades d'agents vocaux conversationnels, aux fonctionnalités de lecture à voix haute, à la réplication vocale et à la parole quotidienne sur une seule enceinte dans les principales langues.
Avant de commencer
- Configurez un projet et activez l'API Gemini Enterprise.
- Configurez les identifiants par défaut de l'application pour votre environnement de développement.
Pour utiliser les exemples Python, installez la version 2.25.0 ou ultérieure du SDK Google Gen AI :
pip install --upgrade "google-genai>=2.25.0"
Les modèles Gemini 3.8 TTS sont disponibles dans la région global. Envoyez des requêtes au point de terminaison aiplatform.googleapis.com.
TTS à locuteur unique
Pour convertir du texte en audio à une seule voix, transmettez la transcription verbatim dans parts[].text, ajoutez un style facultatif au niveau du tour dans parts[].speech_metadata et définissez la voix dans speechConfig.voiceConfig.voice. Le champ voice accepte le nom d'une voix prédéfinie, l'ID d'une voix de la bibliothèque vocale étendue ou l'ID (voice_...) d'une voix conçue ou répliquée (ou une clé voicekey_... sans état facultative).
Par défaut, les requêtes unaires renvoient un fichier WAV complet (PCM 16 bits, 24 kHz, mono). Vous pouvez donc écrire les octets audio directement dans un fichier .wav. Les requêtes de streaming renvoient plutôt des blocs PCM bruts. Pour en savoir plus et découvrir d'autres encodages, consultez Formats de sortie audio.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-3.8-flash-tts",
contents=[{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speech_metadata": {"style": "cheerful and friendly"},
}],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {"voice_config": {"voice": "Kore"}},
},
)
# The SDK has already decoded the base64 audio, so inline_data.data is a
# complete WAV file by default.
with open("out.wav", "wb") as f:
f.write(response.candidates[0].content.parts[0].inline_data.data)
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speechMetadata": {"style": "cheerful and friendly"}
}]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"voiceConfig": {"voice": "Kore"}
}
}
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | base64 --decode > out.wav
Synthèse vocale en streaming avec un seul locuteur
Pour recevoir l'audio pendant que le modèle le synthétise, utilisez la méthode streamGenerateContent. Les réponses en streaming renvoient des fragments PCM bruts de 16 bits sans en-tête (24 kHz, mono). Vous pouvez ainsi transmettre chaque fragment à un lecteur, un socket ou un autre pipeline audio dès qu'il arrive. Dans l'exemple Python suivant, la fonction emit_audio représente cette destination.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
def emit_audio(pcm: bytes) -> None:
"""Sends a chunk of raw 16-bit PCM audio (24 kHz, mono) downstream."""
# Replace with your audio destination, such as a player, a WebSocket,
# or a telephony stream.
print(f"Received {len(pcm)} bytes of audio")
response_stream = client.models.generate_content_stream(
model="gemini-3.8-flash-lite-tts",
contents=[{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speech_metadata": {"style": "cheerful and friendly"},
}],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {"voice_config": {"voice": "Kore"}},
},
)
for chunk in response_stream:
if not chunk.candidates or not chunk.candidates[0].content:
continue
for part in chunk.candidates[0].content.parts or []:
if part.inline_data and part.inline_data.data:
emit_audio(part.inline_data.data)
REST
curl -N -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-lite-tts:streamGenerateContent?alt=sse" \
-d '{
"contents": [{
"role": "user",
"parts": [{
"text": "Have a wonderful day!",
"speechMetadata": {"style": "cheerful and friendly"}
}]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"voiceConfig": {"voice": "Kore"}
}
}
}' | sed -n 's/^data: //p' \
| jq -r '.candidates[0].content.parts[0].inlineData.data // empty' \
| while read -r chunk; do echo "$chunk" | base64 --decode; done > streamed.pcm
Le fichier streamed.pcm contient un fichier audio PCM 16 bits brut à 24 kHz, mono.
TTS multilocuteur
Pour un dialogue entre deux locuteurs, configurez les deux locuteurs dans speechConfig.multiSpeakerVoiceConfig.speakerVoiceConfigs. Transmettez ensuite chaque tour de parole en tant que part distinct, définissez speech_metadata.speaker sur chaque tour de parole sur l'un des noms de locuteurs configurés et ajoutez un style facultatif au niveau du tour de parole.
Les requêtes multi-locuteurs nécessitent exactement deux locuteurs.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-3.8-flash-tts",
contents=[{
"role": "user",
"parts": [
{
"text": "How's it going today, Jane?",
"speech_metadata": {"speaker": "Joe", "style": "cheerful and friendly"},
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speech_metadata": {"speaker": "Jane", "style": "calm and relaxed"},
},
],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {
"multi_speaker_voice_config": {
"speaker_voice_configs": [
{"speaker": "Joe", "voice_config": {"voice": "Puck"}},
{"speaker": "Jane", "voice_config": {"voice": "Kore"}},
]
}
},
},
)
with open("dialogue.wav", "wb") as f:
f.write(response.candidates[0].content.parts[0].inline_data.data)
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:generateContent \
-d '{
"contents": [{
"role": "user",
"parts": [
{
"text": "How'\''s it going today, Jane?",
"speechMetadata": {"speaker": "Joe", "style": "cheerful and friendly"}
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speechMetadata": {"speaker": "Jane", "style": "calm and relaxed"}
}
]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{"speaker": "Joe", "voiceConfig": {"voice": "Puck"}},
{"speaker": "Jane", "voiceConfig": {"voice": "Kore"}}
]
}
}
}
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | base64 --decode > dialogue.wav
Synthèse vocale en streaming avec plusieurs locuteurs
Les requêtes multi-locuteurs sont également compatibles avec le streaming. Utilisez la même requête que dans Synthèse vocale avec plusieurs locuteurs avec la méthode streamGenerateContent.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
def emit_audio(pcm: bytes) -> None:
"""Sends a chunk of raw 16-bit PCM audio (24 kHz, mono) downstream."""
# Replace with your audio destination, such as a player, a WebSocket,
# or a telephony stream.
print(f"Received {len(pcm)} bytes of audio")
response_stream = client.models.generate_content_stream(
model="gemini-3.8-flash-tts",
contents=[{
"role": "user",
"parts": [
{
"text": "How's it going today, Jane?",
"speech_metadata": {"speaker": "Joe", "style": "cheerful and friendly"},
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speech_metadata": {"speaker": "Jane", "style": "calm and relaxed"},
},
],
}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {
"multi_speaker_voice_config": {
"speaker_voice_configs": [
{"speaker": "Joe", "voice_config": {"voice": "Puck"}},
{"speaker": "Jane", "voice_config": {"voice": "Kore"}},
]
}
},
},
)
for chunk in response_stream:
if not chunk.candidates or not chunk.candidates[0].content:
continue
for part in chunk.candidates[0].content.parts or []:
if part.inline_data and part.inline_data.data:
emit_audio(part.inline_data.data)
REST
curl -N -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:streamGenerateContent?alt=sse" \
-d '{
"contents": [{
"role": "user",
"parts": [
{
"text": "How'\''s it going today, Jane?",
"speechMetadata": {"speaker": "Joe", "style": "cheerful and friendly"}
},
{
"text": "Not too bad, how about you? Ready to test these new voices?",
"speechMetadata": {"speaker": "Jane", "style": "calm and relaxed"}
}
]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{"speaker": "Joe", "voiceConfig": {"voice": "Puck"}},
{"speaker": "Jane", "voiceConfig": {"voice": "Kore"}}
]
}
}
}
}' | sed -n 's/^data: //p' \
| jq -r '.candidates[0].content.parts[0].inlineData.data // empty' \
| while read -r chunk; do echo "$chunk" | base64 --decode; done > dialogue_streamed.pcm
Le fichier dialogue_streamed.pcm contient de l'audio PCM 16 bits brut à 24 kHz, mono.
Contrôler le style de parole avec des métadonnées et des tags
Les modèles Gemini 3.8 TTS traitent le champ text comme une transcription textuelle.
Les instructions écrites dans le texte, telles que "Say cheerfully: Hello!" ou "Speaker 1: Hello!", peuvent être lues à voix haute. Pour contrôler la diffusion, divisez vos instructions par champ d'application :
- Diffusion continue au niveau du tour de parole (
speech_metadata.style) : placez l'émotion, le style de diffusion, la prosodie, le rythme et le volume qui s'appliquent à un tour de parole entier dansspeech_metadata.style. Par exemple,"style": "whispered urgently","style": "out of breath"ou"style": "warm and enthusiastic". - Événements ponctuels (balises intégrées) : placez les sons vocaux non verbaux momentanés et les pauses dans la transcription entre crochets. Par exemple,
"Wait... <short pause> did you hear that? <sigh>"ou"Excuse me <cough> as I was saying...".
Pour en savoir plus, consultez le guide sur les prompts.
Options vocales
Les modèles Gemini 3.8 TTS proposent quatre façons de sélectionner ou de créer des voix :
- Voix prédéfinies : 30 voix sélectionnées.
- Bibliothèque de voix étendue : plus de 2 000 voix prédéfinies sélectionnées dans différentes langues, accents régionaux et personnages.
- Conception de voix : créez une voix personnalisée à partir d'une description en langage naturel avec la méthode Voices.create
create(client.voices.create()dans le SDK Google Gen AI ouPOST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/voices). DéfinisseztypesurVOICE_TYPE_PROMPTEDetstoresurtrue. La réponse renvoie un IDvoice_...stocké et un échantillon de la voix. - Réplication de la voix : répliquez la voix d'un locuteur à partir d'un audio de référence et de consentement avec la même méthode
create. DéfinisseztypesurVOICE_TYPE_REPLICATED. Avecstore: true, la réponse renvoie un IDvoice_...stocké. Avecstore: false, elle renvoie une clévoicekey_...sans état.
Limites et TTL des voix personnalisées
| Type de voix | Mode de stockage | Gestion | Expiration |
|---|---|---|---|
Voix stockées (voice_..., conçues ou répliquées) |
store: true |
Méthodes list, get et delete de l'API Voices |
Un an après la dernière utilisation |
Clés de réplication vocale (voicekey_...) |
store: false |
Géré par votre application. Google ne conserve pas la clé. | 7 jours après la création |
La génération de voix avec une voix stockée redémarre sa période de conservation d'un an. Ainsi, une voix que vous utilisez régulièrement n'expire pas. Les requêtes de création de voix sont soumises à un quota par projet et par minute. Si vous le dépassez, la méthode create renvoie une erreur RESOURCE_EXHAUSTED. Pour en savoir plus, consultez Quotas et limites du système.
Stockage et conservation des données
Google stocke les entrées que vous fournissez lorsque vous créez une voix stockée, ainsi que les artefacts vocaux qui en découlent, en association avec le projetGoogle Cloud qui a créé la voix.
Lorsque vous créez une voix répliquée à partir de l'enregistrement d'un locuteur, les éléments suivants sont stockés :
- Audio de référence : échantillon de l'intervenant dont la voix est répliquée.
- Audio d'autorisation : l'intervenant lisant la déclaration d'autorisation requise.
Lorsque vous créez une voix conçue à l'aide d'une description textuelle d'une voix dans un prompt, les éléments suivants sont stockés :
- Le prompt textuel que vous avez écrit pour décrire la voix.
- L'audio de la voix généré à partir de cette requête, que le modèle utilise comme référence pour la voix.
Une voix conçue n'a pas d'audio de consentement, car elle est générée à partir d'une description plutôt que d'un enregistrement d'une personne.
Les entrées vocales sont stockées pour que votre voix continue de fonctionner après les mises à jour du modèle. Les artefacts vocaux sont régénérés à partir des entrées stockées lorsque le modèle sous-jacent est mis à jour. Si aucune entrée stockée n'est trouvée pour une voix, ses artefacts ne peuvent pas être régénérés et la voix cesse de fonctionner après une mise à jour du modèle. Vous devez ensuite recréer la voix.
Les entrées stockées ne sont utilisées que pour régénérer la voix lorsque les modèles sont mis à jour. Elles sont chiffrées au repos et isolées dans le projet qui a créé la voix.
Durée de conservation
Les voix et toutes les données stockées associées sont conservées pendant un an (365 jours) à compter de la dernière fois où vous avez utilisé la voix pour synthétiser la parole. La période commence lorsque vous créez la voix et est réinitialisée chaque fois que vous envoyez une demande de synthèse qui utilise la voix. Si une voix n'est pas utilisée pendant 365 jours, elle est supprimée, ainsi que ses entrées stockées et ses artefacts dérivés.
Suppression par le client
Vous pouvez supprimer une voix à tout moment à l'aide de la méthode delete de l'API Voices.
La suppression d'une voix entraîne la suppression de ses entrées stockées et de ses artefacts dérivés. La suppression du projet Google Cloud propriétaire d'une voix entraîne également la suppression de cette voix, conformément au processus standard de suppression de projet.
Voix prédéfinies
La liste suivante présente chaque nom de voix prédéfinie et sa caractéristique :
- Achernar : Doux
- Achird : amical
- Algenib : Gravelly
- Algieba : fluide
- Alnilam : affirmée
- Aoede : joviale
- Autonoé : joyeuse
- Callirrhoe : tranquille
- Charon : informative
- Despina : douce
- Encelade : voix chuchotée
- Erinome : claire
- Fenrir : nerveuse
- Gacrux : mature
- Japet : claire
- Kore : affirmée
- Laomedeia : optimiste
- Leda : jeune
- Orus : ferme
- Puck : optimiste
- Pulcherrima : franche
- Rasalgethi : informatif
- Sadachbia : Lively
- Sadaltager : éclairée
- Schedar : pair
- Sulafat : chaleureuse
- Umbriel : décontractée
- Vindemiatrix : agréable
- Zephyr : joyeuse
- Zubenelgenubi : décontractée
Bibliothèque vocale étendue
En plus des 30 voix prédéfinies, la bibliothèque de voix étendue propose plus de 2 000 voix prédéfinies sélectionnées dans différentes langues, accents régionaux, personnages et cas d'utilisation tels que les livres audio, les agents conversationnels et les actualités.
Pour utiliser une voix de la bibliothèque, transmettez son ID dans speechConfig.voiceConfig.voice, de la même manière que vous transmettez un nom de voix prédéfinie.
Pour parcourir la bibliothèque, appelez la méthode list de l'API Voices (ListVoices). Elle renvoie les voix personnalisées stockées dans votre projet, suivies des voix prédéfinies et de la bibliothèque de voix étendue. Chaque voix de la bibliothèque inclut son id et ses métadonnées, telles que language_code, accent, gender, pitch, persona et description. Pour affiner les résultats, utilisez les filtres suivants :
type: source de la voix :prebuiltpour les voix prédéfinies et de la bibliothèque,promptedpour les voix conçues oureplicatedpour les voix répliquées. Si vous transmettez plusieurs valeurs, la méthode renvoie les voix qui correspondent à l'une d'entre elles.search: texte à faire correspondre, non sensible à la casse, au nom à afficher et à la description de chaque voix.
L'exemple suivant recherche des voix de narrateur dans la bibliothèque :
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.voices.list(type_=["prebuilt"], search="narrator", page_size=50)
for voice in response.voices or []:
print(voice.id, voice.language_code, voice.gender, voice.description)
REST
curl -G \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/voices \
--data-urlencode "type=prebuilt" \
--data-urlencode "search=narrator" \
--data-urlencode "pageSize=50"
La méthode list renvoie jusqu'à 50 voix par page. Pour obtenir la page suivante, transmettez la valeur next_page_token de la réponse en tant que paramètre page_token.
Formats de sortie audio
L'encodage audio par défaut dépend de la méthode :
- Les requêtes unaires (
generateContent) renvoient un fichier WAV complet (audio/wav) avec un en-tête RIFF : PCM 16 bits, 24 kHz, mono. - Les requêtes de streaming (
streamGenerateContent) renvoient des fragments PCM bruts 16 bits signés little-endian sans en-tête (audio/l16) à 24 kHz, mono.
Pour demander un autre encodage, définissez generationConfig.responseFormat sur un format audio. Les modèles Gemini 3.8 TTS sont compatibles avec les valeurs mimeType suivantes :
Valeur mimeType |
Format | Description |
|---|---|---|
AUDIO_WAV (par défaut pour les opérations unaires) |
WAV (audio/wav) |
Fichier WAV complet avec un en-tête RIFF (PCM 16 bits, 24 kHz, mono). |
AUDIO_L16 (par défaut pour le streaming) |
PCM linéaire (audio/l16) |
PCM little-endian 16 bits signé brut sans en-tête. Utilisez-le pour le streaming, les pipelines audio personnalisés ou la concaténation de clips multi-tours. |
AUDIO_MULAW |
Loi μ (audio/mulaw) |
Audio compressé G.711 μ-law (8 kHz, mono), couramment utilisé dans la téléphonie nord-américaine et japonaise. |
AUDIO_ALAW |
Loi A (audio/alaw) |
Audio compressé G.711 loi A (8 kHz, mono), couramment utilisé dans la téléphonie européenne et internationale. |
Les modèles ignorent le champ sampleRate. La sortie PCM linéaire et WAV est de 24 kHz, et la sortie μ-law et A-law est de 8 kHz, quel que soit le taux dans la réponse mimeType. Rééchantillonnez la sortie sur le client si votre pipeline nécessite un taux d'échantillonnage différent.
L'exemple suivant demande une sortie μ-law pour un pipeline de téléphonie. Le SDK Google Gen AI pour Python n'expose pas responseFormat dans GenerateContentConfig. Par conséquent, l'exemple Python le transmet dans le corps de la requête avec http_options.extra_body.
Python
from google import genai
client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")
response = client.models.generate_content(
model="gemini-3.8-flash-tts",
contents=[{"role": "user", "parts": [{"text": "Have a wonderful day!"}]}],
config={
"response_modalities": ["AUDIO"],
"speech_config": {"voice_config": {"voice": "Kore"}},
"http_options": {
"extra_body": {
"generationConfig": {
"responseFormat": [{"audio": {"mimeType": "AUDIO_MULAW"}}]
}
}
},
},
)
# The response is headerless μ-law audio at 8 kHz, mono.
with open("out.mulaw", "wb") as f:
f.write(response.candidates[0].content.parts[0].inline_data.data)
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.8-flash-tts:generateContent \
-d '{
"contents": [{"role": "user", "parts": [{"text": "Have a wonderful day!"}]}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"responseFormat": [{"audio": {"mimeType": "AUDIO_MULAW"}}],
"speechConfig": {
"voiceConfig": {"voice": "Kore"}
}
}
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | base64 --decode > out.mulaw
Langues disponibles
Les modèles Gemini 3.8 TTS détectent automatiquement la langue d'entrée. Gemini 3.8 Flash TTS est compatible avec 130 langues, et Gemini 3.8 Flash-Lite TTS avec 101 langues :
Limites
- Les modèles TTS acceptent les entrées textuelles uniquement et renvoient des sorties audio uniquement.
- Les requêtes à plusieurs speakers nécessitent exactement deux speakers. Pour combiner des voix conçues (
voice_...) ou répliquées (voice_...ouvoicekey_...) dans un dialogue à plusieurs personnages, ou pour utiliser plus de deux locuteurs, synthétisez le tour de chaque locuteur individuellement et concaténez l'audio. Demandez une sortieAUDIO_L16pour chaque tour ou supprimez l'en-tête WAV de chaque extrait avant de les concaténer. - Les modèles ne sont disponibles que dans l'emplacement
global. - Les instructions système ne sont pas acceptées.
- Vous ne pouvez pas définir le taux d'échantillonnage de sortie. Les formats de sortie MP3 et Ogg Opus ne sont pas compatibles.
Étapes suivantes
- Découvrez comment orienter le style, le rythme et les sons vocaux dans le guide de création de requêtes.
- Créez des voix personnalisées à partir d'une description textuelle avec la conception de voix.
- Répliquez la voix d'un locuteur avec la réplication vocale.
- Consultez les spécifications des modèles sur les pages des modèles Gemini 3.8 Flash TTS et Gemini 3.8 Flash-Lite TTS.