Die Gemini-Text-zu-Sprache-Modelle (TTS) wandeln Text in Audioinhalte mit einem oder mehreren Sprechern um. Sie können den Stil, den Akzent, das Tempo und den Ton der Audioausgabe mit strukturierten Turn-Metadaten (speech_metadata) und Inline-Stimm-Tags steuern.
Auf dieser Seite wird beschrieben, wie Sie mit den folgenden Modellen und den Methoden generateContent und streamGenerateContent der Gemini Enterprise API Sprache generieren:
- Gemini 3.8 Flash TTS
(
gemini-3.8-flash-tts) - Gemini 3.8 Flash-Lite TTS
(
gemini-3.8-flash-lite-tts)
Die TTS-Modelle sind auf die genaue Textrezitation zugeschnitten und bieten eine detaillierte Steuerung von Stil und Klang, 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 die Migrationsanleitung.
Unterstützte Modelle
| Modell | Einzelner Sprecher | Mehrere Sprecher | Streaming | Sprachdesign | 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 verwenden dasselbe Anfrageschema und Prompt-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 Arbeit in Studioqualität, komplexe Dialoge mit mehreren Sprechern, häufige Tags für Stimmstöße, 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ürgemini-3.1-flash-tts-previewund eignet sich für die Batchproduktion in großem Umfang, Kaskaden von Konversations-Sprach-Agents, Vorlesefunktionen, Stimmenklonen und die alltägliche Sprachausgabe mit einem einzelnen Sprecher in den wichtigsten Sprachen.
Hinweis
- Projekt einrichten und die Gemini Enterprise API aktivieren
- Konfigurieren Sie Standardanmeldedaten für Anwendungen für Ihre Entwicklungsumgebung.
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 Endpunkt aiplatform.googleapis.com.
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. Das Feld voice akzeptiert den Namen einer vordefinierten Stimme, die Sprach-ID einer Stimme aus der Extended Voice Library oder die ID (voice_...) einer entworfenen oder replizierten Stimme (oder einen optionalen zustandslosen voicekey_...-Schlüssel).
Standardmäßig geben unäre Anfragen eine vollständige WAV-Datei (16-Bit-PCM, 24 kHz, Mono) zurück, sodass Sie die Audiobytes direkt in eine .wav-Datei schreiben können. 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
Streaming-TTS für einen einzelnen Sprecher
Wenn Sie Audioinhalte empfangen möchten, während das Modell sie noch synthetisiert, verwenden Sie die Methode streamGenerateContent. Streamingantworten geben headerlose Roh-PCM-Chunks mit 16 Bit (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
Konfigurieren Sie für einen Dialog zwischen zwei Sprechern beide Sprecher in speechConfig.multiSpeakerVoiceConfig.speakerVoiceConfigs. Übergeben Sie dann jeden Zug als separate part, legen Sie speech_metadata.speaker für jeden Zug auf einen der konfigurierten Sprechernamen fest und fügen Sie optional eine style auf Zugebene 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
Streaming-TTS 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.
Sprechstil 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:
- Dauerhafte Wiedergabe auf Turn-Ebene (
speech_metadata.style): Geben Sie Emotionen, Wiedergabestil, Prosodie, Tempo und Lautstärke, die für einen ganzen Turn gelten, inspeech_metadata.stylean. 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, Stimmen auszuwählen oder zu erstellen:
- Vordefinierte Stimmen: 30 ausgewählte Stimmen.
- Erweiterte Stimmenbibliothek: Mehr als 2.000 kuratierte voreingestellte Stimmen in verschiedenen Sprachen, regionalen Akzenten und Charakteren.
- Voice Design:
Erstellen Sie mit der Voices API-Methode
create(client.voices.create()im Google Gen AI SDK oderPOST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/voices) eine benutzerdefinierte Stimme aus einer Beschreibung in natürlicher Sprache. Setzen SietypeaufVOICE_TYPE_PROMPTEDundstoreauftrue. Die Antwort enthält eine gespeichertevoice_...-ID und eine Sprachprobe. - Stimmreplikation:
Die Stimme einer sprechenden Person wird anhand von Referenz- und Einwilligungs-Audio mit derselben
create-Methode repliziert. SetzetypeaufVOICE_TYPE_REPLICATED. Beistore: truewird in der Antwort eine gespeichertevoice_...-ID zurückgegeben. Mitstore: falsewird ein zustandsloservoicekey_...-Schlüssel zurückgegeben.
Limits und TTL für Custom Voice
| Stimmtyp | Speichermodus | Verwaltung | Ablauffrist |
|---|---|---|---|
Gespeicherte Stimmen (voice_..., entworfen oder repliziert) |
store: true |
Voices API-Methoden list, get und delete |
1 Jahr nach der letzten Verwendung |
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 Aufbewahrungsfrist neu gestartet. Eine Stimme, die Sie regelmäßig verwenden, läuft also nicht ab. Anfragen zur Erstellung von Stimmen unterliegen einem Kontingent pro Projekt und Minute. Wenn Sie dieses Limit überschreiten, gibt die Methode create den Fehler RESOURCE_EXHAUSTED zurück. Weitere Informationen finden Sie unter Kontingente und Systemlimits.
Datenspeicherung und ‑aufbewahrung
Google speichert die Eingaben, die Sie beim Erstellen einer gespeicherten Stimme machen, zusammen mit den daraus abgeleiteten Sprachartefakten in Verbindung mit demGoogle Cloud -Projekt, mit dem die Stimme erstellt wurde.
Wenn Sie eine replizierte Stimme aus einer Aufnahme eines Sprechers erstellen, wird Folgendes gespeichert:
- Referenz-Audio: Das Beispiel des Sprechers, dessen Stimme repliziert wird.
- Audioaufnahme der Einwilligung: Der Sprecher, der die erforderliche Einwilligungserklärung vorliest.
Wenn Sie eine designte Stimme mithilfe einer Textbeschreibung einer Stimme in einem Prompt erstellen, wird Folgendes gespeichert:
- Der Text-Prompt, den Sie geschrieben haben, um die Stimme zu beschreiben.
- Die aus diesem Prompt generierten Sprachaudiodaten, die das Modell als Referenz für die Stimme verwendet.
Für eine entworfene Stimme gibt es keine Audioaufnahme mit Einwilligung, da sie aus einer Beschreibung und nicht aus einer Aufnahme einer Person generiert wird.
Spracheingaben werden gespeichert, damit Ihre Stimme auch nach Modellupdates weiterhin erkannt wird. Sprachartefakte werden aus gespeicherten Eingaben neu generiert, wenn das zugrunde liegende Modell aktualisiert wird. Wenn für eine Stimme keine gespeicherten Eingaben gefunden werden, können ihre Artefakte nicht neu generiert werden und die Stimme funktioniert nach einem Modellupdate nicht mehr. Anschließend müssen Sie die Stimme neu erstellen.
Die gespeicherten Eingaben werden nur verwendet, um die Stimme neu zu generieren, wenn Modelle aktualisiert werden. Sie werden im Ruhezustand verschlüsselt und sind auf das Projekt beschränkt, in dem die Stimme erstellt wurde.
Aufbewahrungsdauer
Stimmen und alle zugehörigen gespeicherten Daten werden bis zu ein Jahr (365 Tage) nach der letzten Verwendung der Stimme zur Sprachsynthese aufbewahrt. Der Zeitraum beginnt, wenn Sie die Stimme erstellen, und wird jedes Mal zurückgesetzt, wenn Sie eine Syntheseanfrage senden, die die Stimme verwendet. Wenn eine Stimme 365 Tage lang nicht verwendet wird, werden die Stimme, die gespeicherten Eingaben und die abgeleiteten Artefakte gelöscht.
Löschung durch den Kunden
Sie können eine Stimme jederzeit mit der delete-Methode der Voices API löschen.
Wenn Sie eine Stimme löschen, werden die gespeicherten Eingaben und die abgeleiteten Artefakte gelöscht. Wenn Sie das Google Cloud -Projekt löschen, zu dem eine Stimme gehört, wird auch die Stimme gelöscht. Dabei wird der Standardprozess zum Löschen von Projekten verwendet.
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: Fest
- Aoede: Breezy
- Autonoe: Aufgeweckt
- Callirrhoe: gelassen
- Charon: erklärend
- Despina: ruhig
- Enceladus: gehaucht
- Erinome: Löschen
- Fenrir: Aufgeregt
- Gacrux: Nicht jugendfrei
- Iapetus: Deutlich
- Kore: Fest
- Laomedeia: optimistisch
- Leda: jugendlich
- Orus: Fest
- Puck: optimistisch
- 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 Stimme aus der Bibliothek verwenden möchten, übergeben Sie ihre ID in speechConfig.voiceConfig.voice, so wie Sie auch den Namen einer vordefinierten Stimme übergeben würden.
Rufen Sie die Methode list (ListVoices) der Voices API auf, um die Bibliothek zu durchsuchen. Sie gibt die benutzerdefinierten Stimmen zurück, die in Ihrem Projekt gespeichert sind, gefolgt von den vordefinierten Stimmen und den Stimmen 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:prebuiltfür vordefinierte und Bibliotheksstimmen,promptedfür entworfene Stimmen oderreplicatedfü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 der einzelnen Stimmen abgeglichen werden soll.
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-Audiocodierung 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 für generationConfig.responseFormat ein Audioformat fest. Die Gemini 3.8-TTS-Modelle unterstützen die folgenden mimeType-Werte:
mimeType Wert |
Format | Beschreibung |
|---|---|---|
AUDIO_WAV (unärer Standardwert) |
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. Verwendung für Streaming, benutzerdefinierte Audiopipelines oder das Verketten von Clips mit mehreren Durchgängen. |
AUDIO_MULAW |
μ-law (audio/mulaw) |
G.711 μ-Law-kompandierte Audiodaten (8 kHz, Mono), die häufig in der nordamerikanischen und japanischen Telefonie verwendet werden. |
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 für lineare PCM und WAV beträgt 24 kHz und die Ausgabe für μ-law und A-law 8 kHz, unabhängig von der Rate in der Antwort mimeType. Führen Sie ein Resampling der Ausgabe auf dem Client durch, wenn Ihre Pipeline eine andere Abtastrate erfordert.
Im folgenden Beispiel wird die μ-law-Ausgabe für eine Telefonie-Pipeline angefordert. Das Google Gen AI SDK for Python stellt responseFormat in GenerateContentConfig nicht bereit. Daher wird es im Python-Beispiel mit http_options.extra_body im Anfragetext ü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_...odervoicekey_...) 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 eineAUDIO_L16-Ausgabe an oder entfernen Sie den WAV-Header aus jedem Clip, bevor Sie die Clips zusammenfügen. - Die Modelle sind nur am Standort
globalverfügbar. - Systemanweisungen werden nicht unterstützt.
- Die Ausgabe-Abtastrate kann nicht festgelegt werden. Die Ausgabe im MP3- und Ogg Opus-Format wird nicht unterstützt.
Nächste Schritte
- Informationen zum Steuern von Stil, Tempo und Stimmgeräuschen finden Sie im Leitfaden für Prompts.
- Mit Voice Design benutzerdefinierte Stimmen aus einer Textbeschreibung erstellen.
- Stimme eines Sprechers mit Stimmenklonen replizieren.
- Die Modellspezifikationen finden Sie auf den Modellseiten Gemini 3.8 Flash TTS und Gemini 3.8 Flash-Lite TTS.