מעבר ל-Gemini 3.8 TTS

בדף הזה מוסבר איך לעבור ממודלים קודמים של 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

עדכון הבקשות

  1. העברת הוראות לגבי סגנון ל-speech_metadata.style: מודלי Gemini 3.8 TTS קוראים את text כתיעתוק מילולי, ולכן יכול להיות שהוראות שכתובות בטקסט יושמעו בקול. תכתוב את ההנחיות לגבי משחק, טון, פרוזודיה וקצב ב-speech_metadata.style.
  2. שימוש בחלק אחד לכל תור בדיאלוג: בדיאלוג עם כמה דוברים, מעבירים כל תור כ-part נפרד, ומגדירים את speech_metadata.speaker בכל תור לאחד מהדוברים ב-multiSpeakerVoiceConfig.
  3. החלפת תגים עם סוגריים מרובעים בתגים עם סוגריים זוויתיים: משתמשים בסוגריים זוויתיים, כמו <sigh>, <laugh> או <short pause>, רק לאירועים של שירה בנקודת זמן מסוימת. כותבים ישירות בתמליל את ההיסוסים, כמו "אהה".
  4. יוצרים דמויות מראש: במקום פרומפטים ארוכים של "פרופיל אודיו" או "הערות הבמאי", משתמשים בקול שנוצר בעיצוב קול, ומשאירים את style קצר או ריק.
  5. הסרת פרמטרים שלא נתמכים: צריך להסיר את הפרמטרים temperature,‏ topP,‏ topK,‏ candidateCount ו-systemInstruction מהבקשות.
  6. טיפול בפלט WAV מבקשות unary: בקשות unary מחזירות עכשיו קובץ WAV מלא במקום PCM גולמי. אם הקוד מוסיף כותרת WAV או משרשר קליפים, צריך להסיר את שלב הכותרת או להגדיר את generationConfig.responseFormat ל-AUDIO_L16 כדי לשמור על פלט PCM גולמי.
  7. יצירה מחדש של קולות משוכפלים באמצעות 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.

המאמרים הבאים