Sprache mit Gemini TTS generieren

Die Gemini-Modelle für Text-zu-Sprache (TTS) wandeln Text in Audioinhalte mit einem oder mehreren Sprechern um. Mit strukturierten Metadaten für Turns (speech_metadata) und Inline-Vokal-Tags können Sie den Stil, den Akzent, das Tempo und den Ton des Audios steuern.

Auf dieser Seite erfahren Sie, wie Sie mit den folgenden Modellen Sprache generieren. Dazu verwenden Sie die Methoden generateContent und streamGenerateContent der Gemini Enterprise API:

Die TTS-Modelle sind auf die genaue Textrezitation mit detaillierter Steuerung von Stil und Klang zugeschnitten, z. B. für Erzählungen, Hörbücher und Antworten von Sprachassistenten. Für interaktive Echtzeitunterhaltungen mit Audioeingabe und -ausgabe verwenden Sie stattdessen die Live API.

Wenn Sie ein älteres Gemini TTS-Modell wie gemini-3.1-flash-tts-preview verwenden, lesen Sie den Migrationsleitfaden.

Unterstützte Modelle

Modell Einzelner Sprecher Mehrere Sprecher Streaming Voice-Design Stimmreplikation
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)

Die Beispiele und Funktionen auf dieser Seite gelten für die Gemini 3.8-TTS-Modelle. Informationen zu den früheren Modellen finden Sie in derGoogle Cloud Text-to-Speech-Dokumentation unter Gemini-TTS.

Wann welches Modell verwendet werden sollte

Beide Gemini 3.8-TTS-Modelle haben dasselbe Anfrageschema und Prompting-Format. Sie können also zwischen ihnen wechseln, indem Sie die Modell-ID ändern:

  • Gemini 3.8 Flash TTS (gemini-3.8-flash-tts) verwenden, wenn akustische Wiedergabetreue, nuancierte Darstellung und ausdrucksstarke Steuerung oberste Priorität haben. Es eignet sich für kreative Arbeiten in Studioqualität, komplexe Dialoge mit mehreren Sprechern, häufige Tags für Gesangseinlagen, schwierige Aussprachen, regionale oder Minderheitendialekte und lange Erzählungen, die eine stabile Stimme und einen stabilen Raumton erfordern.
  • Gemini 3.8 Flash-Lite TTS (gemini-3.8-flash-lite-tts) für schnelle, kostengünstige Produktions-Workloads verwenden. Es ist der empfohlene Ersatz für gemini-3.1-flash-tts-preview und eignet sich für die Batchproduktion in großen Mengen, Konversations-Voice-Agent-Kaskaden, Vorlesefunktionen, Sprachreplikation und die alltägliche Sprachausgabe über einen einzelnen Lautsprecher in den wichtigsten Sprachen.

Hinweis

  1. Projekt einrichten und Gemini Enterprise API aktivieren
  2. Konfigurieren Sie Standardanmeldedaten für Anwendungen für Ihre Entwicklungsumgebung.
  3. Wenn Sie die Python-Beispiele verwenden möchten, installieren Sie Version 2.25.0 oder höher des Google Gen AI SDK:

    pip install --upgrade "google-genai>=2.25.0"
    

Die Gemini 3.8-TTS-Modelle sind am Standort global verfügbar. Senden Sie Anfragen an den aiplatform.googleapis.com-Endpunkt.

TTS für einen einzelnen Sprecher

Wenn Sie Text in Audio mit einem einzelnen Sprecher umwandeln möchten, übergeben Sie das wörtliche Transkript in parts[].text, fügen Sie optionales Styling auf Turn-Ebene in parts[].speech_metadata hinzu und legen Sie die Stimme in speechConfig.voiceConfig.voice fest. Im Feld voice kann ein Name für eine vorgefertigte Stimme, eine Sprach-ID aus der Extended Voice Library oder die ID (voice_...) einer entwickelten oder replizierten Stimme (oder ein optionaler statusloser voicekey_...-Schlüssel) angegeben werden.

Standardmäßig wird bei unären Anfragen eine vollständige WAV-Datei (16-Bit-PCM, 24 kHz, Mono) zurückgegeben. Sie können die Audiobytes also direkt in eine .wav-Datei schreiben. Bei Streaminganfragen werden stattdessen rohe PCM-Chunks zurückgegeben. Weitere Informationen und andere Codierungen finden Sie unter Audioausgabeformate.

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

TTS für Streaming mit einem einzelnen Sprecher

Wenn Sie Audioinhalte erhalten möchten, während das Modell sie noch synthetisiert, verwenden Sie die Methode streamGenerateContent. Streamingantworten geben Header ohne 16‑Bit-PCM-Chunks (24 kHz, Mono) zurück. Sie können jeden Chunk an einen Player, einen Socket oder eine andere Audio-Pipeline übergeben, sobald er eintrifft. Im folgenden Python-Beispiel steht die Funktion emit_audio für dieses Ziel.

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

Die Datei streamed.pcm enthält unformatierte 16‑Bit-PCM-Audiodaten mit 24 kHz, Mono.

TTS mit mehreren Sprechern

Für einen Dialog zwischen zwei Sprechern konfigurieren Sie beide Sprecher in speechConfig.multiSpeakerVoiceConfig.speakerVoiceConfigs. Übergeben Sie dann jede Äußerung als separate part, legen Sie speech_metadata.speaker für jede Äußerung auf einen der konfigurierten Sprechernamen fest und fügen Sie optional eine style auf Äußerungsebene hinzu.

Für Anfragen mit mehreren Sprechern sind genau zwei Sprecher erforderlich.

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

TTS für Streaming mit mehreren Sprechern

Anfragen mit mehreren Sprechern unterstützen auch Streaming. Verwenden Sie dieselbe Anfrage wie in TTS mit mehreren Sprechern mit der Methode 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

Die Datei dialogue_streamed.pcm enthält unformatierte 16-Bit-PCM-Audiodaten mit 24 kHz im Monobetrieb.

Sprachstil mit Metadaten und Tags steuern

Die Gemini 3.8 TTS-Modelle behandeln das Feld text als wörtliches Transkript. Anweisungen, die in den Text geschrieben sind, z. B. "Say cheerfully: Hello!" oder "Speaker 1: Hello!", werden möglicherweise vorgelesen. Um die Ausgabe zu steuern, unterteilen Sie Ihre Anweisungen nach Umfang:

  • Kontinuierliche Bereitstellung auf Turn-Ebene (speech_metadata.style): Geben Sie Emotionen, Bereitstellungsstil, Prosodie, Tempo und Lautstärke an, die für einen ganzen Turn in speech_metadata.style gelten. Beispiel: "style": "whispered urgently", "style": "out of breath" oder "style": "warm and enthusiastic".
  • Zeitpunktbezogene Ereignisse (Inline-Tags): Setzen Sie kurze nicht sprachliche Geräusche und Pausen im Transkript in spitze Klammern. Beispiel: "Wait... <short pause> did you hear that? <sigh>" oder "Excuse me <cough> as I was saying...".

Weitere Informationen finden Sie in der Prompt-Anleitung.

Stimmoptionen

Die Gemini 3.8 TTS-Modelle unterstützen vier Möglichkeiten zum Auswählen oder Erstellen von Stimmen:

  1. Vordefinierte Stimmen: 30 ausgewählte Stimmen.
  2. Erweiterte Stimmenbibliothek: Mehr als 2.000 kuratierte voreingestellte Stimmen in verschiedenen Sprachen, regionalen Akzenten und Charakteren.
  3. Sprachdesign: Erstellen Sie mit der Voices API-Methode create (client.voices.create() im Google Gen AI SDK oder POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/voices) eine benutzerdefinierte Stimme aus einer Beschreibung in natürlicher Sprache. Legen Sie type auf VOICE_TYPE_PROMPTED und store auf true fest. Die Antwort enthält eine gespeicherte voice_...-ID und eine Sprachprobe.
  4. Stimmreplikation: Die Stimme einer sprechenden Person wird anhand von Referenz- und Einwilligungs-Audio mit derselben create-Methode repliziert. Setze type auf VOICE_TYPE_REPLICATED. Bei store: true wird in der Antwort eine gespeicherte voice_...-ID zurückgegeben. Mit store: false wird ein zustandsloser voicekey_...-Schlüssel zurückgegeben.

Benutzerdefinierte Sprachlimits und TTL

Stimmtyp Speichermodus Verwaltung Ablauffrist
Gespeicherte Stimmen (voice_..., erstellt oder repliziert) store: true Voices API-Methoden list, get und delete 1 Jahr nach der letzten Nutzung
Schlüssel für die Sprachreplikation (voicekey_...) store: false Wird von Ihrer Anwendung verwaltet. Google speichert den Schlüssel nicht. 7 Tage nach Erstellung

Wenn Sie Sprache mit einer gespeicherten Stimme generieren, wird die einjährige Aufbewahrungsdauer neu gestartet. Eine Stimme, die Sie regelmäßig verwenden, läuft also nicht ab. Für Anfragen zur Stimmerstellung gilt ein Kontingent pro Projekt und Minute. Wenn Sie das Limit überschreiten, gibt die Methode create einen RESOURCE_EXHAUSTED-Fehler zurück. Weitere Informationen finden Sie unter Kontingente und Systemlimits.

Vordefinierte Stimmen

In der folgenden Liste sind die Namen der einzelnen integrierten Stimmen und ihre Merkmale aufgeführt:

  • Achernar: Weich
  • Achird: Freundlich
  • Algenib: Kiesig
  • Algieba: Weich
  • Alnilam: Bestimmt
  • Aoede: Breezy
  • Autonoe: Aufgeweckt
  • Callirrhoe: gelassen
  • Charon: informativ
  • Despina: ruhig
  • Enceladus: gehaucht
  • Erinome: Deutlich
  • Fenrir: Aufgeregt
  • Gacrux: Nicht jugendfrei
  • Iapetus: Deutlich
  • Kore: Firma
  • Laomedeia: optimistisch
  • Leda: jugendlich
  • Orus: Fest
  • Puck: Upbeat
  • Pulcherrima: kess
  • Rasalgethi: informativ
  • Sadachbia: Lebhaft
  • Sadaltager: klug
  • Schedar: Gleichmäßig
  • Sulafat: Warm
  • Umbriel: Gelassen
  • Vindemiatrix: sanft
  • Zephyr: Hell
  • Zubenelgenubi: Lässig

Erweiterte Voice-Bibliothek

Neben den 30 vordefinierten Stimmen bietet die erweiterte Stimmenbibliothek über 2.000 kuratierte voreingestellte Stimmen in verschiedenen Sprachen, regionalen Akzenten, Charakteren und Anwendungsfällen wie Hörbücher, Conversational Agents und Nachrichten. Wenn Sie eine Bibliotheksstimme verwenden möchten, übergeben Sie ihre ID in speechConfig.voiceConfig.voice, so wie Sie einen vordefinierten Stimmnamen übergeben.

Rufen Sie zum Durchsuchen der Bibliothek die list-Methode (ListVoices) der Voices API auf. Sie gibt die in Ihrem Projekt gespeicherten benutzerdefinierten Stimmen zurück, gefolgt von den Stimmen aus der integrierten und der Extended Voice Library. Jede Bibliotheksstimme enthält ihre id und Metadaten wie language_code, accent, gender, pitch, persona und description. Mit den folgenden Filtern können Sie die Ergebnisse eingrenzen:

  • type: Die Sprachquelle: prebuilt für integrierte und Bibliotheksstimmen, prompted für entwickelte Stimmen oder replicated für replizierte Stimmen. Wenn Sie mehr als einen Wert übergeben, gibt die Methode Stimmen zurück, die mit einem der Werte übereinstimmen.
  • search: Text, der ohne Berücksichtigung der Groß-/Kleinschreibung mit dem Anzeigenamen und der Beschreibung jeder Stimme abgeglichen wird.

Im folgenden Beispiel wird in der Bibliothek nach Sprecherstimmen gesucht:

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"

Die Methode list gibt bis zu 50 Stimmen pro Seite zurück. Um die nächste Seite abzurufen, übergeben Sie den next_page_token-Wert aus der Antwort als page_token-Parameter.

Audioausgabeformate

Die Standard-Audio-Codierung hängt von der Methode ab:

  • Unäre Anfragen (generateContent) geben eine vollständige WAV-Datei (audio/wav) mit einem RIFF-Header zurück: 16-Bit-PCM, 24 kHz, Mono.
  • Streaminganfragen (streamGenerateContent) geben headerlose Rohdaten in Form von 16‑Bit-PCM-Chunks mit Vorzeichen im Little-Endian-Format (audio/l16) mit 24 kHz und im Monomodus zurück.

Wenn Sie eine andere Codierung anfordern möchten, legen Sie generationConfig.responseFormat auf ein Audioformat fest. Die Gemini 3.8 TTS-Modelle unterstützen die folgenden mimeType-Werte:

mimeType Wert Format Beschreibung
AUDIO_WAV (Standard für unäre Operationen) WAV (audio/wav) Vollständige WAV-Datei mit einem RIFF-Header (16-Bit-PCM, 24 kHz, Mono).
AUDIO_L16 (Streaming-Standard) Linear PCM (audio/l16) Headerloser roher 16-Bit-PCM-Stream mit vorzeichenbehafteter Ganzzahl und Little Endian. Für Streaming, benutzerdefinierte Audio-Pipelines oder das Verketten von Mehrfachdialog-Clips.
AUDIO_MULAW μ-law (audio/mulaw) G.711 μ-law-komprimiertes Audio (8 kHz, Mono), das häufig in der nordamerikanischen und japanischen Telefonie verwendet wird.
AUDIO_ALAW A-law (audio/alaw) G.711 A-law-kompandiertes Audio (8 kHz, Mono), das häufig in der europäischen und internationalen Telefonie verwendet wird.

Die Modelle ignorieren das Feld sampleRate. Die Ausgabe von linearer PCM und WAV erfolgt mit 24 kHz und die Ausgabe von μ-law und A-law mit 8 kHz, unabhängig von der Rate in der Antwort mimeType. Führen Sie auf dem Client ein Resampling der Ausgabe durch, wenn für Ihre Pipeline eine andere Stichprobenrate erforderlich ist.

Im folgenden Beispiel wird die μ-law-Ausgabe für eine Telefonie-Pipeline angefordert. Das Google Gen AI SDK for Python macht responseFormat in GenerateContentConfig nicht verfügbar. Daher wird es im Python-Beispiel mit http_options.extra_body im Anfragebody übergeben.

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

Unterstützte Sprachen

Die Gemini 3.8-TTS-Modelle erkennen die Eingabesprache automatisch. Gemini 3.8 Flash TTS unterstützt 130 Sprachen und Gemini 3.8 Flash-Lite TTS unterstützt 101 Sprachen:

Beschränkungen

  • Die TTS-Modelle akzeptieren nur Texteingaben und geben nur Audioausgaben zurück.
  • Für Anfragen mit mehreren Sprechern sind genau zwei Sprecher erforderlich. Wenn Sie entworfene (voice_...) oder replizierte (voice_... oder voicekey_...) Stimmen in einem Dialog mit mehreren Figuren kombinieren oder mehr als zwei Sprecher verwenden möchten, müssen Sie die Äußerungen der einzelnen Sprecher separat synthetisieren und die Audioinhalte zusammenfügen. Fordern Sie für jeden Turn eine AUDIO_L16-Ausgabe an oder entfernen Sie den WAV-Header aus jedem Clip, bevor Sie die Clips zusammenfügen.
  • Die Modelle sind nur am Standort global verfügbar.
  • Systemanweisungen werden nicht unterstützt.
  • Die Ausgabestichprobenrate kann nicht festgelegt werden. Die Ausgabe in MP3 und Ogg Opus wird nicht unterstützt.

Nächste Schritte