Migrer vers Gemini 3.8 TTS

Cette page explique comment passer des anciens modèles Gemini TTS, tels que gemini-3.1-flash-tts-preview, gemini-2.5-flash-tts, gemini-2.5-pro-tts et gemini-2.5-flash-lite-preview-tts, à Gemini 3.8 Flash TTS (gemini-3.8-flash-tts) et Gemini 3.8 Flash-Lite TTS (gemini-3.8-flash-lite-tts). Les anciens modèles sont documentés dans Gemini-TTS dans la documentation Google CloudText-to-Speech.

Choisir un modèle de remplacement

  • Gemini 3.8 Flash-Lite TTS est le remplacement recommandé pour gemini-3.1-flash-tts-preview. Choisissez-la pour la production à grand volume, les agents vocaux, les fonctionnalités de lecture à voix haute et la parole quotidienne sur une seule enceinte.
  • Gemini 3.8 Flash TTS est le modèle phare. Choisissez-la lorsque la fidélité de la voix, la nuance du jeu d'acteur, les dialogues à plusieurs voix ou la couverture des dialectes sont les plus importants, par exemple pour les livres audio et la narration en studio.

Les deux modèles utilisent le même schéma de requête. Vous pouvez donc passer de l'un à l'autre en modifiant l'ID du modèle. Pour une comparaison, consultez Quand utiliser quel modèle.

Résumé des modifications

Zone Anciens modèles Gemini TTS Modèles Gemini 3.8 TTS
API API Cloud Text-to-Speech ou API Gemini Enterprise API Gemini Enterprise uniquement (generateContent et streamGenerateContent)
Emplacement global et points de terminaison régionaux global uniquement
Orientation du style Saisie dans le texte ("Say the following in a curious way: ...") ou dans le champ prompt de Cloud Text-to-Speech speech_metadata.style sur chaque partie
Dialogue entre plusieurs locuteurs Préfixes de locuteur dans un bloc de texte ou Cloud Text-to-Speech multiSpeakerMarkup Une partie par tour avec speech_metadata.speaker
Tags vocaux intégrés Crochets, tels que [sigh] Chevrons, tels que <sigh>
Sélection de la voix prebuiltVoiceConfig.voiceName voiceConfig.voice, qui accepte également les ID de voix conçues et les clés de réplication vocale. prebuiltVoiceConfig.voiceName fonctionne toujours pour les voix prédéfinies.
Voix personnalisées Audio de référence intégré dans replicatedVoiceConfig Conception de voix et réplication vocale via l'API Voices
Sortie par défaut (API Gemini Enterprise) PCM 16 bits brut, 24 kHz, mono Requêtes unaires : fichier WAV complet (PCM 16 bits, 24 kHz, mono). Demandes de streaming : PCM 16 bits brut, inchangé. Vous pouvez demander d'autres encodages avec responseFormat.
temperature, topP, topK Ignoré Refusé avec une erreur INVALID_ARGUMENT

Modifier vos demandes

  1. Déplacez les instructions de style dans speech_metadata.style : les modèles Gemini 3.8 TTS lisent text comme une transcription mot à mot. Les instructions écrites dans le texte peuvent donc être lues à voix haute. Placez les indications de jeu, de ton, de prosodie et de rythme soutenus dans speech_metadata.style.
  2. Utilisez une partie par tour de dialogue : pour les dialogues à plusieurs locuteurs, transmettez chaque tour en tant que part distinct et définissez speech_metadata.speaker sur chaque tour sur l'un des locuteurs de multiSpeakerVoiceConfig.
  3. Remplacez les balises entre crochets par des balises entre chevrons : n'utilisez les chevrons, tels que <sigh>, <laugh> ou <short pause>, que pour les événements vocaux ponctuels. Écrivez les hésitations, comme "euh", directement dans la transcription.
  4. Concevez des personas à l'avance : remplacez les longues requêtes"Profil audio " ou "Notes du réalisateur" par une voix créée dans Conception de voix et gardez style court ou vide.
  5. Supprimez les paramètres non compatibles : supprimez temperature, topP, topK, candidateCount et systemInstruction de vos requêtes.
  6. Gérer la sortie WAV des requêtes unaires : les requêtes unaires renvoient désormais un fichier WAV complet au lieu d'un PCM brut. Si votre code ajoute un en-tête WAV ou concatène des extraits, supprimez l'étape d'en-tête ou définissez generationConfig.responseFormat sur AUDIO_L16 pour conserver la sortie PCM brute.
  7. Recréez des voix répliquées avec l'API Voices : l'audio de référence intégré dans replicatedVoiceConfig n'est pas accepté. Créez une voix stockée ou une clé de réplication vocale avec l'API Voices, puis transmettez-la dans voiceConfig.voice. Pour en savoir plus, consultez Réplication de la voix.

Pour obtenir plus de conseils sur la rédaction de requêtes, consultez le guide des requêtes.

Exemple

L'exemple suivant montre une requête gemini-3.1-flash-tts-preview et la requête Gemini 3.8 TTS équivalente.

Avant Gemini 3.8

from google import genai
from google.genai import types

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
    model="gemini-3.1-flash-tts-preview",
    contents="Say the following in a curious way: OK, so... tell me about this [uhm] AI thing.",
    config=types.GenerateContentConfig(
        response_modalities=["AUDIO"],
        speech_config=types.SpeechConfig(
            language_code="en-US",
            voice_config=types.VoiceConfig(
                prebuilt_voice_config=types.PrebuiltVoiceConfig(voice_name="Kore")
            ),
        ),
    ),
)

Gemini 3.8 ou version ultérieure

from google import genai

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
    model="gemini-3.8-flash-lite-tts",
    contents=[{
        "role": "user",
        "parts": [{
            "text": "OK, so... uhm, tell me about this AI thing.",
            "speech_metadata": {"style": "curious"},
        }],
    }],
    config={
        "response_modalities": ["AUDIO"],
        "speech_config": {
            "language_code": "en-US",
            "voice_config": {"voice": "Kore"},
        },
    },
)

Les deux réponses renvoient l'audio au format response.candidates[0].content.parts[0].inline_data.data. L'ancien modèle renvoie un fichier audio PCM 16 bits brut (24 kHz, mono), tandis que le modèle Gemini 3.8 TTS renvoie un fichier WAV complet.

Migrer depuis l'API Cloud Text-to-Speech

Si vous appelez Gemini TTS via l'API Cloud Text-to-Speech (texttospeech.googleapis.com), envoyez vos requêtes à la méthode generateContent sur aiplatform.googleapis.com. Le tableau suivant mappe les champs de requête Cloud Text-to-Speech avec les champs de requête de l'API Gemini Enterprise :

API Cloud Text-to-Speech (text:synthesize) API Gemini Enterprise (generateContent)
input.text contents[].parts[].text
input.prompt contents[].parts[].speechMetadata.style
input.multiSpeakerMarkup.turns[] (speaker, text) Une partie par tour, avec text et speechMetadata.speaker
voice.modelName ID du modèle dans l'URL de la requête
voice.name generationConfig.speechConfig.voiceConfig.voice
voice.languageCode generationConfig.speechConfig.languageCode
voice.multiSpeakerVoiceConfig.speakerVoiceConfigs[] (speakerAlias, speakerId) generationConfig.speechConfig.multiSpeakerVoiceConfig.speakerVoiceConfigs[] (speaker, voiceConfig.voice)
audioConfig.audioEncoding : LINEAR16 generationConfig.responseFormat[].audio.mimeType : AUDIO_WAV (par défaut pour les requêtes unaires)
audioConfig.audioEncoding : PCM AUDIO_L16 (valeur par défaut pour les requêtes de streaming)
audioConfig.audioEncoding : MULAW ou ALAW AUDIO_MULAW ou AUDIO_ALAW
audioConfig.audioEncoding : MP3 ou OGG_OPUS Non compatible Encodez l'audio sur le client.
audioConfig.sampleRateHertz Non compatible Pour connaître les fréquences d'échantillonnage de sortie, consultez Formats de sortie audio.

L'API Cloud Text-to-Speech renvoie l'audio encodé en base64 dans audioContent. L'API Gemini Enterprise le renvoie dans candidates[0].content.parts[0].inlineData.data.

Étapes suivantes