בדף הזה מוסבר איך לעבור ממודלים קודמים של Gemini TTS, כמו gemini-3.1-flash-tts-preview, gemini-2.5-flash-tts, gemini-2.5-pro-tts ו-gemini-2.5-flash-lite-preview-tts, אל Gemini 3.8 Flash TTS (gemini-3.8-flash-tts) ו-Gemini 3.8 Flash-Lite TTS (gemini-3.8-flash-lite-tts). המודלים הקודמים מתועדים ב-Gemini-TTS במסמכי התיעוד של Google CloudText-to-Speech.
בחירת מודל חלופי
- Gemini 3.8 Flash-Lite TTS הוא המודל המומלץ להחלפה של
gemini-3.1-flash-tts-preview. הוא מתאים במיוחד ליצירת תוכן בכמויות גדולות, לסוכני קולי, לתכונות של קריאת טקסט בקול רם ולדיבור ברמקול יחיד בשימוש יומיומי. - Gemini 3.8 Flash TTS הוא המודל המוביל. כדאי לבחור בו כשחשובים לכם נאמנות הקול, ניואנסים במשחק, דיאלוג עם כמה דוברים או כיסוי של ניבים, למשל בספרי אודיו ובקריינות באולפן.
שני המודלים משתמשים באותה סכימת בקשות, כך שאפשר לעבור ביניהם על ידי שינוי מזהה המודל. במאמר מתי כדאי להשתמש באיזה מודל מופיעה השוואה בין המודלים.
סיכום השינויים
| אזור | מודלים קודמים של Gemini TTS | מודלים של Gemini 3.8 TTS |
|---|---|---|
| API | Cloud Text-to-Speech API או Gemini Enterprise API | Gemini Enterprise API בלבד (generateContent ו-streamGenerateContent) |
| מיקום | global ונקודות קצה אזוריות |
global בלבד |
| סגנון | הטקסט ("Say the following in a curious way: ...") או השדה Cloud Text-to-Speech prompt |
speech_metadata.style בכל חלק |
| דיאלוג עם כמה דוברים | קידומות של דוברים בבלוק טקסט אחד, או Cloud Text-to-Speech multiSpeakerMarkup |
חלק אחד בכל תור עם speech_metadata.speaker |
| תגי שירה בתוך השורה | סוגריים מרובעים, כמו [sigh] |
סוגריים זוויתיים, כמו <sigh> |
| בחירת קול | prebuiltVoiceConfig.voiceName |
voiceConfig.voice, שמקבל גם מזהי קול מעוצבים ומפתחות לשכפול קול. האפשרות prebuiltVoiceConfig.voiceName עדיין פועלת עבור קולות מוכנים מראש. |
| קולות מותאמים אישית | אודיו להשוואה בתוך השורה ב-replicatedVoiceConfig |
עיצוב קול ורפליקציה של קולות באמצעות Voices API |
| פלט ברירת המחדל (Gemini Enterprise API) | PCM גולמי של 16 ביט, 24kHz, מונו | בקשות יחידות: קובץ WAV מלא (16-bit PCM, 24 kHz, מונו). בקשות סטרימינג: PCM גולמי של 16 ביט, ללא שינוי. אפשר לבקש קידודים אחרים באמצעות responseFormat. |
temperature, topP, topK |
המערכת מתעלמת מהפריט | נדחתה עם שגיאה INVALID_ARGUMENT |
עדכון הבקשות
- העברת הוראות לגבי סגנון ל-
speech_metadata.style: מודלי Gemini 3.8 TTS קוראים אתtextכתיעתוק מילולי, ולכן יכול להיות שהוראות שכתובות בטקסט יושמעו בקול. תכתוב את ההנחיות לגבי משחק, טון, פרוזודיה וקצב ב-speech_metadata.style. - שימוש בחלק אחד לכל תור בדיאלוג: בדיאלוג עם כמה דוברים, מעבירים כל תור כ-
partנפרד, ומגדירים אתspeech_metadata.speakerבכל תור לאחד מהדוברים ב-multiSpeakerVoiceConfig. - החלפת תגים עם סוגריים מרובעים בתגים עם סוגריים זוויתיים: משתמשים בסוגריים זוויתיים, כמו
<sigh>,<laugh>או<short pause>, רק לאירועים של שירה בנקודת זמן מסוימת. כותבים ישירות בתמליל את ההיסוסים, כמו "אהה". - יוצרים דמויות מראש: במקום פרומפטים ארוכים של "פרופיל אודיו" או "הערות הבמאי", משתמשים בקול שנוצר בעיצוב קול, ומשאירים את
styleקצר או ריק. - הסרת פרמטרים שלא נתמכים: צריך להסיר את הפרמטרים
temperature,topP,topK,candidateCountו-systemInstructionמהבקשות. - טיפול בפלט WAV מבקשות unary: בקשות unary מחזירות עכשיו קובץ WAV מלא במקום PCM גולמי. אם הקוד מוסיף כותרת WAV או משרשר קליפים, צריך להסיר את שלב הכותרת או להגדיר את
generationConfig.responseFormatל-AUDIO_L16כדי לשמור על פלט PCM גולמי. - יצירה מחדש של קולות משוכפלים באמצעות Voices API: אין תמיכה באודיו של הפניה מוטבעת ב-
replicatedVoiceConfig. יוצרים קובץ קול שמור או מפתח לשכפול קול באמצעות Voices API, ומעבירים אותו בפרמטרvoiceConfig.voice. פרטים נוספים זמינים במאמר בנושא רפליקציה של קולות.
במדריך לכתיבת הנחיות יש הנחיות נוספות.
דוגמה
בדוגמה הבאה מוצגת בקשת gemini-3.1-flash-tts-preview ובקשת Gemini 3.8 TTS מקבילה.
לפני 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 ואילך
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"},
},
},
)
שתי התשובות מחזירות את האודיו בפורמט response.candidates[0].content.parts[0].inline_data.data. המודל הקודם מחזיר אודיו PCM גולמי של 16 ביט (24 kHz, מונו), ומודל Gemini 3.8 TTS מחזיר קובץ WAV מלא.
מעבר מ-Cloud Text-to-Speech API
אם אתם שולחים קריאה ל-Gemini TTS דרך Cloud Text-to-Speech API (texttospeech.googleapis.com), אתם צריכים לשלוח את הבקשות שלכם לשיטה generateContent ב-aiplatform.googleapis.com במקום זאת. בטבלה הבאה מפורטים שדות בקשת ה-API של Cloud Text-to-Speech בהשוואה לשדות בקשת ה-API של Gemini Enterprise:
Cloud Text-to-Speech API (text:synthesize) |
Gemini Enterprise API (generateContent) |
|---|---|
input.text |
contents[].parts[].text |
input.prompt |
contents[].parts[].speechMetadata.style |
input.multiSpeakerMarkup.turns[] (speaker, text) |
חלק אחד בכל תור, עם text ועם speechMetadata.speaker |
voice.modelName |
מזהה המודל בכתובת ה-URL של הבקשה |
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 (ברירת מחדל לבקשות unary) |
audioConfig.audioEncoding: PCM |
AUDIO_L16 (ברירת מחדל לבקשות סטרימינג) |
audioConfig.audioEncoding: MULAW או ALAW |
AUDIO_MULAW או AUDIO_ALAW |
audioConfig.audioEncoding: MP3 או OGG_OPUS |
לא נתמך. קידוד האודיו בלקוח. |
audioConfig.sampleRateHertz |
לא נתמך. לצפייה בתדירויות הדגימה של הפלט, אפשר לעיין בפורמטים של פלט אודיו. |
Cloud Text-to-Speech API מחזיר אודיו בקידוד base64 בפורמט audioContent.
Gemini Enterprise API מחזיר אותו ב-candidates[0].content.parts[0].inlineData.data.
המאמרים הבאים
- אפשר לנסות את הדוגמאות בסקירה הכללית של Gemini TTS.
- במדריך לכתיבת הנחיות מוסבר איך להנחות את הסגנון ואת הצלילים הקוליים.