Génération de synthèse vocale

L'API Gemini peut transformer une entrée de texte en contenu audio à une ou plusieurs voix à l'aide des fonctionnalités de génération de synthèse vocale (TTS) de Gemini. La génération de synthèse vocale (TTS) est contrôlable, ce qui signifie que vous pouvez utiliser le langage naturel pour structurer les interactions et guider le style, l'accent, le rythme et le ton de l'audio.

La fonctionnalité TTS diffère de la génération vocale fournie par l'API Live, qui est conçue pour les entrées et sorties audio interactives, non structurées et multimodales. Alors que l'API Live excelle dans les contextes conversationnels dynamiques, la synthèse vocale via l'API Gemini est conçue pour les scénarios qui nécessitent une récitation exacte du texte avec un contrôle précis du style et du son, comme la génération de podcasts ou de livres audio.

Ce guide explique comment générer de l'audio à un ou plusieurs locuteurs à partir de texte.

Avant de commencer

Assurez-vous d'utiliser une variante du modèle Gemini avec des fonctionnalités de synthèse vocale Gemini, comme indiqué dans la section Modèles compatibles. Pour obtenir des résultats optimaux, déterminez le modèle qui correspond le mieux à votre cas d'utilisation spécifique.

Il peut être utile de tester les modèles Gemini TTS dans AI Studio avant de commencer à créer.

Synthèse vocale à un seul locuteur

Pour convertir du texte en audio à une seule voix, définissez la modalité de réponse sur "audio" et transmettez un objet SpeechConfig avec VoiceConfig défini. Vous devez choisir un nom de voix parmi les voix de sortie prédéfinies.

Cet exemple enregistre le contenu audio généré par le modèle dans un fichier WAV :

Python

from google import genai
from google.genai import types
import wave

# Set up the wave file to save the output:
def wave_file(filename, pcm, channels=1, rate=24000, sample_width=2):
   with wave.open(filename, "wb") as wf:
      wf.setnchannels(channels)
      wf.setsampwidth(sample_width)
      wf.setframerate(rate)
      wf.writeframes(pcm)

client = genai.Client()

response = client.models.generate_content(
   model="gemini-3.1-flash-tts-preview",
   contents="Say cheerfully: Have a wonderful day!",
   config=types.GenerateContentConfig(
      response_modalities=["AUDIO"],
      speech_config=types.SpeechConfig(
         voice_config=types.VoiceConfig(
            prebuilt_voice_config=types.PrebuiltVoiceConfig(
               voice_name='Kore',
            )
         )
      ),
   )
)

data = response.candidates[0].content.parts[0].inline_data.data

file_name='out.wav'
wave_file(file_name, data) # Saves the file to current directory

JavaScript

import {GoogleGenAI} from '@google/genai';
import wav from 'wav';

async function saveWaveFile(
   filename,
   pcmData,
   channels = 1,
   rate = 24000,
   sampleWidth = 2,
) {
   return new Promise((resolve, reject) => {
      const writer = new wav.FileWriter(filename, {
            channels,
            sampleRate: rate,
            bitDepth: sampleWidth * 8,
      });

      writer.on('finish', resolve);
      writer.on('error', reject);

      writer.write(pcmData);
      writer.end();
   });
}

async function main() {
   const ai = new GoogleGenAI({});

   const response = await ai.models.generateContent({
      model: "gemini-3.1-flash-tts-preview",
      contents: [{ parts: [{ text: 'Say cheerfully: Have a wonderful day!' }] }],
      config: {
            responseModalities: ['AUDIO'],
            speechConfig: {
               voiceConfig: {
                  prebuiltVoiceConfig: { voiceName: 'Kore' },
               },
            },
      },
   });

   const data = response.candidates?.[0]?.content?.parts?.[0]?.inlineData?.data;
   const audioBuffer = Buffer.from(data, 'base64');

   const fileName = 'out.wav';
   await saveWaveFile(fileName, audioBuffer);
}
await main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-tts-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "contents": [{
          "parts":[{
            "text": "Say cheerfully: Have a wonderful day!"
          }]
        }],
        "generationConfig": {
          "responseModalities": ["AUDIO"],
          "speechConfig": {
            "voiceConfig": {
              "prebuiltVoiceConfig": {
                "voiceName": "Kore"
              }
            }
          }
        },
        "model": "gemini-3.1-flash-tts-preview",
    }' | jq -r '.candidates[0].content.parts[0].inlineData.data' | \
          base64 --decode >out.pcm
# You may need to install ffmpeg.
ffmpeg -f s16le -ar 24000 -ac 1 -i out.pcm out.wav

Synthèse vocale multilocuteur

Pour l'audio multi-locuteurs, vous aurez besoin d'un objet MultiSpeakerVoiceConfig avec chaque locuteur (jusqu'à deux) configuré en tant que SpeakerVoiceConfig. Vous devez définir chaque speaker avec les mêmes noms que ceux utilisés dans le prompt :

Python

from google import genai
from google.genai import types
import wave

# Set up the wave file to save the output:
def wave_file(filename, pcm, channels=1, rate=24000, sample_width=2):
   with wave.open(filename, "wb") as wf:
      wf.setnchannels(channels)
      wf.setsampwidth(sample_width)
      wf.setframerate(rate)
      wf.writeframes(pcm)

client = genai.Client()

prompt = """TTS the following conversation between Joe and Jane:
         Joe: How's it going today Jane?
         Jane: Not too bad, how about you?"""

response = client.models.generate_content(
   model="gemini-3.1-flash-tts-preview",
   contents=prompt,
   config=types.GenerateContentConfig(
      response_modalities=["AUDIO"],
      speech_config=types.SpeechConfig(
         multi_speaker_voice_config=types.MultiSpeakerVoiceConfig(
            speaker_voice_configs=[
               types.SpeakerVoiceConfig(
                  speaker='Joe',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Kore',
                     )
                  )
               ),
               types.SpeakerVoiceConfig(
                  speaker='Jane',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Puck',
                     )
                  )
               ),
            ]
         )
      )
   )
)

data = response.candidates[0].content.parts[0].inline_data.data

file_name='out.wav'
wave_file(file_name, data) # Saves the file to current directory

JavaScript

import {GoogleGenAI} from '@google/genai';
import wav from 'wav';

async function saveWaveFile(
   filename,
   pcmData,
   channels = 1,
   rate = 24000,
   sampleWidth = 2,
) {
   return new Promise((resolve, reject) => {
      const writer = new wav.FileWriter(filename, {
            channels,
            sampleRate: rate,
            bitDepth: sampleWidth * 8,
      });

      writer.on('finish', resolve);
      writer.on('error', reject);

      writer.write(pcmData);
      writer.end();
   });
}

async function main() {
   const ai = new GoogleGenAI({});

   const prompt = `TTS the following conversation between Joe and Jane:
         Joe: How's it going today Jane?
         Jane: Not too bad, how about you?`;

   const response = await ai.models.generateContent({
      model: "gemini-3.1-flash-tts-preview",
      contents: [{ parts: [{ text: prompt }] }],
      config: {
            responseModalities: ['AUDIO'],
            speechConfig: {
               multiSpeakerVoiceConfig: {
                  speakerVoiceConfigs: [
                        {
                           speaker: 'Joe',
                           voiceConfig: {
                              prebuiltVoiceConfig: { voiceName: 'Kore' }
                           }
                        },
                        {
                           speaker: 'Jane',
                           voiceConfig: {
                              prebuiltVoiceConfig: { voiceName: 'Puck' }
                           }
                        }
                  ]
               }
            }
      }
   });

   const data = response.candidates?.[0]?.content?.parts?.[0]?.inlineData?.data;
   const audioBuffer = Buffer.from(data, 'base64');

   const fileName = 'out.wav';
   await saveWaveFile(fileName, audioBuffer);
}

await main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-tts-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
  "contents": [{
    "parts":[{
      "text": "TTS the following conversation between Joe and Jane:
                Joe: Hows it going today Jane?
                Jane: Not too bad, how about you?"
    }]
  }],
  "generationConfig": {
    "responseModalities": ["AUDIO"],
    "speechConfig": {
      "multiSpeakerVoiceConfig": {
        "speakerVoiceConfigs": [{
            "speaker": "Joe",
            "voiceConfig": {
              "prebuiltVoiceConfig": {
                "voiceName": "Kore"
              }
            }
          }, {
            "speaker": "Jane",
            "voiceConfig": {
              "prebuiltVoiceConfig": {
                "voiceName": "Puck"
              }
            }
          }]
      }
    }
  },
  "model": "gemini-3.1-flash-tts-preview",
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | \
    base64 --decode > out.pcm
# You may need to install ffmpeg.
ffmpeg -f s16le -ar 24000 -ac 1 -i out.pcm out.wav

Contrôler le style de parole avec des requêtes

Vous pouvez contrôler le style, le ton, l'accent et le rythme à l'aide de requêtes en langage naturel ou de tags audio pour la synthèse vocale à une ou plusieurs voix. Par exemple, dans une requête à un seul locuteur, vous pouvez dire :

Say in an spooky voice:
"By the pricking of my thumbs... [short pause]
[whisper] Something wicked this way comes"

Dans une requête à plusieurs locuteurs, fournissez au modèle le nom de chaque locuteur et la transcription correspondante. Vous pouvez également fournir des conseils pour chaque enceinte individuellement :

Make Speaker1 sound tired and bored, and Speaker2 sound excited and happy:

Speaker1: So... [yawn] what's on the agenda today?
Speaker2: You're never going to guess!

Essayez d'utiliser une option vocale qui correspond au style ou à l'émotion que vous souhaitez transmettre, pour l'accentuer encore plus. Dans la requête précédente, par exemple, le ton haletant d'Encelade peut mettre l'accent sur les mots"fatigué " et"ennuyé", tandis que le ton enjoué de Puck peut compléter les mots "enthousiaste" et "heureux".

Générer un prompt pour convertir en audio

Les modèles TTS ne génèrent que de l'audio, mais vous pouvez utiliser d'autres modèles pour générer d'abord une transcription, puis la transmettre au modèle TTS pour qu'il la lise à voix haute.

Python

from google import genai
from google.genai import types

client = genai.Client()

transcript = client.models.generate_content(
   model="gemini-3-flash-preview",
   contents="""Generate a short transcript around 100 words that reads
            like it was clipped from a podcast by excited herpetologists.
            The hosts names are Dr. Anya and Liam.""").text

response = client.models.generate_content(
   model="gemini-3.1-flash-tts-preview",
   contents=transcript,
   config=types.GenerateContentConfig(
      response_modalities=["AUDIO"],
      speech_config=types.SpeechConfig(
         multi_speaker_voice_config=types.MultiSpeakerVoiceConfig(
            speaker_voice_configs=[
               types.SpeakerVoiceConfig(
                  speaker='Dr. Anya',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Kore',
                     )
                  )
               ),
               types.SpeakerVoiceConfig(
                  speaker='Liam',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Puck',
                     )
                  )
               ),
            ]
         )
      )
   )
)

# ...Code to handle audio output

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {

const transcript = await ai.models.generateContent({
   model: "gemini-3-flash-preview",
   contents: "Generate a short transcript around 100 words that reads like it was clipped from a podcast by excited herpetologists. The hosts names are Dr. Anya and Liam.",
   })

const response = await ai.models.generateContent({
   model: "gemini-3.1-flash-tts-preview",
   contents: transcript,
   config: {
      responseModalities: ['AUDIO'],
      speechConfig: {
         multiSpeakerVoiceConfig: {
            speakerVoiceConfigs: [
                   {
                     speaker: "Dr. Anya",
                     voiceConfig: {
                        prebuiltVoiceConfig: {voiceName: "Kore"},
                     }
                  },
                  {
                     speaker: "Liam",
                     voiceConfig: {
                        prebuiltVoiceConfig: {voiceName: "Puck"},
                    }
                  }
                ]
              }
            }
      }
  });
}
// ..JavaScript code for exporting .wav file for output audio

await main();

Options vocales

Les modèles TTS sont compatibles avec les 30 options vocales suivantes dans le champ voice_name :

Zephyr : Lumineux Puck : Upbeat Charon : Contenu informatif
Kore : Ferme Fenrir : excitabilité Leda : Jeune
Orus : cabinet d'avocats Aoede : Breezy Callirrhoe : tranquille
Autonoe : Lumineux Enceladus : Souffle Iapetus : Effacer
Umbriel : décontracté Algieba : Smooth Despina : Lisse
Erinome : Dégagé Algenib : Graveleux Rasalgethi : informatif
Laomedeia : Upbeat Achernar : Soft Alnilam : Ferme
Schedar : Even Gacrux : Contenu réservé aux adultes Pulcherrima : Transférer
Achird : amical Zubenelgenubi : Décontracté Vindemiatrix : Doux
Sadachbia : Lively Sadaltager : connaissances Sulafat : chaude

Vous pouvez écouter toutes les options vocales dans AI Studio.

Langues disponibles

Les modèles TTS détectent automatiquement la langue d'entrée. Voici les langues disponibles :

Langue Code BCP-47 Langue Code BCP-47
Arabe ar Tagalog fil
Bengali bn Finnois fi
Néerlandais nl Galicien gl
Anglais en Géorgien ka
Français fr Grec el
Allemand de Gujarati gu
Hindi hi Créole haïtien ht
Indonésien id Hébreu il
Italien it Hongrois hu
Japonais ja Islandais est
Coréen ko Javanais jv
Marathi mr Kannada kn
Polonais pl Konkani kok
Portugais pt Laotien lo
Roumain ro Latino la
Russe ru Letton lv
Espagnol es Lituanien lt
Tamoul ta Luxembourgeois lb
Télougou te Macédonien mk
Thaï th Maithili mai
Turc tr Malgache mg
Ukrainien uk Malaisien ms
Vietnamien vi Malayalam ml
Afrikaans af Mongol mn
Albanais sq Népalais ne
Amharique am Norvégien (bokmål) nb
Arménien hy Norvégien, Nynorsk nn
Azéri az Odia ou
Basque eu Pachtô ps
Biélorusse be Persan fa
Bulgare bg Panjabi pa
Birman my Serbe sr
Catalan ca Sindhî sd
Cebuano ceb Cingalais si
Chinois (mandarin) cmn Slovaque sk
Croate h Slovène sl
Tchèque cs Swahili sw
Danois da Suédois sv
Estonien et Urdu ur

Modèles compatibles

Modèle Locuteur unique Multihaut-parleur
Aperçu de la synthèse vocale Gemini 3.1 Flash ✔️ ✔️
TTS Gemini 2.5 Flash (preview) ✔️ ✔️
TTS Gemini 2.5 Pro (preview) ✔️ ✔️

Guide sur les requêtes

Le modèle Gemini Native Audio Generation Text-to-Speech (TTS) se distingue des modèles TTS traditionnels en utilisant un grand modèle de langage qui sait non seulement quoi dire, mais aussi comment le dire.

Pour débloquer cette fonctionnalité, les utilisateurs peuvent se considérer comme des réalisateurs qui mettent en scène un talent vocal virtuel. Pour créer une requête, nous vous recommandons de tenir compte des éléments suivants : un profil audio qui définit l'identité et l'archétype du personnage, une description de la scène qui établit l'environnement physique et l'ambiance émotionnelle, et des notes du réalisateur qui offrent des conseils plus précis sur le style, l'accent et le rythme.

En fournissant des instructions nuancées, comme un accent régional précis, des caractéristiques paralinguistiques spécifiques (par exemple, un souffle) ou un rythme, les utilisateurs peuvent tirer parti de la conscience du contexte du modèle pour générer des performances audio très dynamiques, naturelles et expressives. Pour des performances optimales, nous vous recommandons d'aligner les transcriptions et les consignes de mise en scène, afin que "qui le dit" corresponde à "ce qui est dit" et à "comment c'est dit".

L'objectif de ce guide est de vous fournir des instructions de base et de vous donner des idées pour développer des expériences audio à l'aide de la génération audio Gemini TTS. Nous avons hâte de découvrir vos créations !

Structure des requêtes

Une requête robuste inclut idéalement les éléments suivants qui, ensemble, permettent d'obtenir d'excellentes performances :

  • Profil audio : établit une personnalité pour la voix, en définissant une identité, un archétype et toute autre caractéristique comme l'âge, l'origine, etc.
  • Scène : plante le décor. Décrit à la fois l'environnement physique et l'ambiance.
  • Notes du réalisateur : conseils sur les performances qui vous permettent de déterminer les instructions importantes que votre talent virtuel doit prendre en compte. Par exemple, le style, la respiration, le rythme, l'articulation et l'accent.
  • Exemple de contexte : fournit au modèle un point de départ contextuel, de sorte que votre acteur virtuel entre naturellement dans la scène que vous avez configurée.
  • Transcription : texte que le modèle va lire à voix haute. Pour des performances optimales, n'oubliez pas que le thème et le style d'écriture de la transcription doivent correspondre aux instructions que vous donnez.
  • Balises audio : modificateurs que vous pouvez insérer dans une transcription pour modifier la façon dont une partie du texte est prononcée, comme [whispers] ou [shouting].

Exemple de requête complète :

# AUDIO PROFILE: Jaz R.
## "The Morning Hype"

## THE SCENE: The London Studio
It is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline,
but inside, it is blindingly bright. The red "ON AIR" tally light is blazing.
Jaz is standing up, not sitting, bouncing on the balls of their heels to the
rhythm of a thumping backing track. Their hands fly across the faders on a
massive mixing desk. It is a chaotic, caffeine-fueled cockpit designed to wake
up an entire nation.

### DIRECTOR'S NOTES
Style:
* The "Vocal Smile": You must hear the grin in the audio. The soft palate is
always raised to keep the tone bright, sunny, and explicitly inviting.
* Dynamics: High projection without shouting. Punchy consonants and elongated
vowels on excitement words (e.g., "Beauuutiful morning").

Pace: Speaks at an energetic pace, keeping up with the fast music.  Speaks
with A "bouncing" cadence. High-speed delivery with fluid transitions — no dead
air, no gaps.

Accent: Jaz is from Brixton, London

### SAMPLE CONTEXT
Jaz is the industry standard for Top 40 radio, high-octane event promos, or any
script that requires a charismatic Estuary accent and 11/10 infectious energy.

#### TRANSCRIPT
[excitedly] Yes, massive vibes in the studio! You are locked in and it is
absolutely popping off in London right now. If you're stuck on the tube, or
just sat there pretending to work... stop it. Seriously, I see you.
[shouting] Turn this up! We've got the project roadmap landing in three,
two... let's go!

Stratégies de requête détaillées

Décomposons chaque élément de la requête.

Profil audio

Décrivez brièvement le personnage.

  • Nom. Donner un nom à votre personnage permet d'ancrer le modèle et de renforcer les performances. Faites référence au personnage par son nom lorsque vous définissez la scène et le contexte.
  • Rôle. Identité et archétype principaux du personnage dans la scène (par exemple, DJ radio, podcasteur, journaliste, etc.).

Exemples :

# AUDIO PROFILE: Jaz R.
## "The Morning Hype"


# AUDIO PROFILE: Monica A.
## "The Beauty Influencer"

Scene

Définissez le contexte de la scène, y compris le lieu, l'ambiance et les détails environnementaux qui établissent le ton et l'atmosphère. Décris ce qui se passe autour du personnage et comment cela l'affecte. La scène fournit le contexte environnemental pour l'ensemble de l'interaction et guide le jeu d'acteur de manière subtile et naturelle.

Exemples :

## THE SCENE: The London Studio
It is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline,
but inside, it is blindingly bright. The red "ON AIR" tally light is blazing.
Jaz is standing up, not sitting, bouncing on the balls of their heels to the
rhythm of a thumping backing track. Their hands fly across the faders on a
massive mixing desk. It is a chaotic, caffeine-fueled cockpit designed to
wake up an entire nation.


## THE SCENE: Homegrown Studio
A meticulously sound-treated bedroom in a suburban home. The space is
deadened by plush velvet curtains and a heavy rug, but there is a
distinct "proximity effect."

Notes du réalisateur

Cette section essentielle inclut des conseils spécifiques sur les performances. Vous pouvez ignorer tous les autres éléments, mais nous vous recommandons d'inclure celui-ci.

Définissez uniquement ce qui est important pour les performances, en veillant à ne pas trop spécifier. Si vous définissez trop de règles strictes, vous limiterez la créativité des modèles et risquez d'obtenir des performances moins bonnes. Équilibrez la description du rôle et de la scène avec les règles de performance spécifiques.

Les consignes les plus courantes sont Style, Rythme et Accent, mais le modèle n'est pas limité à celles-ci et ne les exige pas. N'hésitez pas à inclure des instructions personnalisées pour couvrir tous les détails supplémentaires importants pour vos performances, et à fournir autant ou aussi peu de détails que nécessaire.

Exemple :

### DIRECTOR'S NOTES

Style: Enthusiastic and Sassy GenZ beauty YouTuber

Pacing: Speaks at an energetic pace, keeping up with the extremely fast, rapid
delivery influencers use in short form videos.

Accent: Southern california valley girl from Laguna Beach |

Style :

Définit le ton et le style de la parole générée. Indiquez des adjectifs comme "joyeux", "énergique", "détendu" ou "ennuyé" pour guider la performance. Soyez descriptif et fournissez autant de détails que nécessaire : "Enthousiasme contagieux. L'auditeur doit avoir l'impression de faire partie d'un événement communautaire passionnant et de grande envergure." est plus efficace que énergique et enthousiaste.

Vous pouvez même essayer des termes populaires dans le secteur de la voix off, comme "sourire vocal". Vous pouvez superposer autant de caractéristiques de style que vous le souhaitez.

Exemples :

Simple Emotion

DIRECTORS NOTES
...
Style: Frustrated and angry developer who can't get the build to run.
...

Plus de profondeur

DIRECTORS NOTES
...
Style: Sassy GenZ beauty YouTuber, who mostly creates content for YouTube Shorts.
...

Complexe

DIRECTORS NOTES
Style:
* The "Vocal Smile": You must hear the grin in the audio. The soft palate is
always raised to keep the tone bright, sunny, and explicitly inviting.
*Dynamics: High projection without shouting. Punchy consonants and
elongated vowels on excitement words (e.g., "Beauuutiful morning").

Accent :

Décrivez l'accent souhaité. Plus vous serez précis, meilleurs seront les résultats. Par exemple, utilisez accent anglais britannique tel qu'il est parlé à Croydon, en Angleterre au lieu de accent britannique.

Exemples :

### DIRECTORS NOTES
...
Accent: Southern california valley girl from Laguna Beach
...


### DIRECTORS NOTES
...
Accent: Jaz is a DJ from Brixton, London
...

Rythme

Rythme global et variations de rythme tout au long de la pièce.

Exemples :

Simple

### DIRECTORS NOTES
...
Pacing: Speak as fast as possible
...

Plus de profondeur

### DIRECTORS NOTES
...
Pacing: Speaks at a faster, energetic pace, keeping up with fast paced music.
...

Complexe

### DIRECTORS NOTES
...
Pacing: The "Drift": The tempo is incredibly slow and liquid. Words bleed into each other. There is zero urgency.
...

Transcription et tags audio

La transcription correspond aux mots exacts que le modèle prononcera. Vous pouvez modifier la façon dont les mots, les phrases ou les sections de votre transcription sont présentés à l'aide de tags audio.

Une balise audio est un mot entre crochets qui indique comment quelque chose doit être dit, un changement de ton ou une interjection.

### TRANSCRIPT
…
I know right, I couldn't believe it. [whispers] She should have totally left
at that point.
…
[cough] Well, [sighs] I guess it doesn't matter now.

Il n'existe pas de liste exhaustive des balises qui fonctionnent ou non. Nous vous recommandons de tester différentes émotions et expressions pour voir comment le résultat change.

Si votre transcription n'est pas en anglais, nous vous recommandons d'utiliser quand même des balises audio en anglais pour obtenir de meilleurs résultats.

Voici quelques tags couramment utilisés pour vous aider à vous lancer :

[amazed] [crying] [curious] [excited]
[sighs] [gasp] [giggles] [laughs]
[mischievously] [panicked] [sarcastic] [serious]
[shouting] [tired] [trembling] [whispers]

Voici une liste non exhaustive de tags audio intégrés qui peuvent être utilisés pour guider le style audio :

[admiration], [agitation], [anger], [annoyance], [anticipation], [anxiety], [appreciation], [approval], [astonishment], [awe], [boredom], [caution], [compassion], [confidence], [confusion], [contempt], [curiosity], [determination], [disappointment], [disapproval], [disgust], [doubt], [eagerness], [embarrassment], [empathy], [encouraging], [enjoyment], [enthusiasm], [excitement], [fear], [frustration], [gratitude], [happy], [hope], [horror], [interest], [joy], [laughs], [love], [negative], [nervousness], [neutral], [optimism], [pain], [positive], [sadness], [sarcasm], [satisfaction], [surprise], [sympathy]

Essayer

Essayez vous-même certains de ces exemples dans AI Studio, testez notre application TTS et laissez Gemini vous mettre dans le fauteuil du réalisateur. Voici quelques conseils pour obtenir des performances vocales de qualité :

  • N'oubliez pas de veiller à la cohérence de l'ensemble du prompt : le script et la mise en scène vont de pair pour créer une performance de qualité.
  • Ne vous sentez pas obligé de tout décrire. Parfois, laisser au modèle la possibilité de combler les lacunes contribue à la fluidité du texte. (comme un acteur talentueux)
  • Si vous êtes bloqué, demandez à Gemini de vous aider à rédiger votre script ou à préparer votre prestation.

Limites

  • Les modèles TTS ne peuvent recevoir que des entrées de texte et générer des sorties audio.
  • Une session TTS a une limite de fenêtre de contexte de 32 000 jetons.
  • Consultez la section Langues pour connaître les langues disponibles.
  • La synthèse vocale n'est pas compatible avec le streaming.

Les contraintes suivantes s'appliquent spécifiquement lorsque vous utilisez le modèle Gemini 3.1 Flash TTS Preview pour la génération de voix :

  • Incohérence de la voix avec les instructions du prompt : il est possible que la sortie du modèle ne corresponde pas toujours exactement à la voix sélectionnée, ce qui peut entraîner un son différent de celui attendu. Pour éviter les tons discordants (par exemple, une voix masculine grave qui tente de parler comme une jeune fille), assurez-vous que le ton et le contexte de votre requête écrite correspondent naturellement au profil du locuteur sélectionné.
  • Retour occasionnel de jetons de texte : le modèle renvoie parfois des jetons de texte au lieu de jetons audio, ce qui entraîne l'échec de la requête par le serveur avec une erreur 500. Comme cela se produit de manière aléatoire dans un très petit pourcentage de requêtes, vous devez implémenter une logique de nouvelle tentative automatisée dans votre application pour les gérer.
  • Rejets incorrects du classificateur de requêtes : les requêtes vagues peuvent ne pas déclencher le classificateur de synthèse vocale, ce qui entraîne un rejet de la requête (PROHIBITED_CONTENT) ou amène le modèle à lire à voix haute vos instructions de style et vos notes de mise en scène. Validez vos invites en ajoutant un préambule clair indiquant au modèle de synthétiser la parole, et en indiquant explicitement où commence la transcription réelle.

Étape suivante