בדף הזה מפורטות שיטות מומלצות לכתיבת הנחיות לשימוש ב-Gemini 3.8 Flash TTS וב-Gemini 3.8 Flash-Lite TTS.
לדוגמאות קוד ולתחביר של הבקשות, אפשר לעיין בסקירה הכללית של Gemini TTS.
מודלי ה-TTS של Gemini 3.8 מתייחסים לשדה text כתמליל מילולי.
הוראות מפורטות ברמת הפנייה מתועדות ב-speech_metadata, ואירועים קוליים נקודתיים מוטבעים בתמליל. הבקשה הבאה משלבת style ברמת הפנייה עם תגי קול והפסקות בשורה:
{
"contents": [{
"role": "user",
"parts": [{
"text": "Wait... <short pause> did you hear that? <gasp> Someone's at the door.",
"speechMetadata": {"style": "whispered, nervous"}
}]
}],
"generationConfig": {
"responseModalities": ["AUDIO"],
"speechConfig": {"voiceConfig": {"voice": "Kore"}}
}
}
שדה סגנון לעומת תגים מוטבעים
כדאי לפצל את הוראות הביצוע לפי היקף:
- העברה ברמת הפנייה (
speech_metadata.style): אפשר להזין מאפייני העברה מתמשכת, כמו רגש, פרוזודיה, קצב כללי או סגנון העברה (למשל"whispering","out of breath","muttering"או"sarcastic"), בשדהstyleשלspeech_metadata. כדי ליצור דמות יציבה וביצועים עקביים לאורך התורות, צריך לעצב את האישיות מראש בעיצוב הקול ולהשתמש ב-styleרק לשינויים אופציונליים ברמת התור. - אירועים בנקודת זמן מסוימת (תגים מוטבעים): כדי להוסיף לטקסט תמלול קטעים קצרים של קולות לא דיבוריים, נשימות או הפסקות, משתמשים בסוגריים זוויתיים (
<cough>,<breath>,<sigh>,<short pause>). כדי לקבל את איכות האודיו הכי גבוהה, משתמשים בסוגריים זוויתיים (<...>) ומתמקדים בהפקת קולות אנושיים ולא באפקטים קוליים לא דיבוריים.
| היקף | איפה למקם | דוגמאות |
|---|---|---|
| ברמת הפנייה (נמשך לאורך הפנייה) | speech_metadata.style |
"angry tone", "speaking rapidly", "out of breath", "whispers", "sarcastic" |
| נקודת זמן (מתרחש במילה ספציפית) | בתוך הטקסט ב-text (<...>) |
"<cough> Thank you all for coming tonight! <throat-clearing> As I was saying..." |
קצב ופסק זמן
אפשר לשלוט בקצב ובשקט בשלוש רמות:
- סימני פיסוק וסימני השמטה: השתמשו בפסיקים, במקפים (
--) ובסימני השמטה (...) כדי ליצור הפסקות טבעיות. - תגי השהיה בתוך השורה: מוסיפים את התגים
<short pause>או<long pause>במקום שבו הדובר צריך להשהות את הדיבור. לדוגמה:"Hold on, let me think... <short pause> Alright, I've got it." - קצב ברמת התור: מגדירים את הערך
"style": "speaking rapidly"או"style": "speaking slowly"ב-speech_metadataכדי לשלוט בקצב הדיבור של כל התור.
פרוזודיה וגובה הצליל
אפשר להשתמש ב-speech_metadata.style כדי לשלוט בפרוזודיה, בגובה הצליל ובאינטונציה במהלך תור. לדוגמה, "style": "high pitch, cheerful and excited inflection" או "style": "monotone and flat". אם יש שינוי ברגש באמצע הדיאלוג, צריך לפצל את התסריט לתורות נפרדות, ולכל אחת מהן להוסיף style משלה.
הדגשה
כדי להדגיש מילים בתמליל, אפשר להשתמש באותיות רישיות, בסימני פיסוק ובתגי שורה. לדוגמה:
"This is a VERY important point!" או
"It was a VERY long day <sigh> ... nobody listens anymore."
פרצי קול וצלילים שאינם דיבור
מציבים את הקולות האנושיים שאינם דיבור בתוך סוגריים זוויתיים (<...>) בנקודה שבה אמור להישמע הצליל. להשתמש בקולות אנושיים ולא באפקטים קוליים לא ווקאליים, כמו מחיאות כפיים. תגי קול מומלצים:
| תג | תג | תג | תג |
|---|---|---|---|
<argh> |
<breath> |
<heavy breath> |
<exhales> |
<cackle> |
<cheer> |
<chuckle> / <chuckles> |
<cough> |
<cry> |
<gasp> |
<giggle> |
<groan> |
<growl> |
<grunt> |
<grr> |
<hiss> |
<laugh> / <laughter> |
<moan> |
<pant> |
<pff> / <phew> |
<scream> |
<shout> |
<shriek> |
<sigh> / <sighs> |
<sneeze> |
<snicker> |
<snort> |
<sob> |
<throat-clearing> |
<tsk> |
<whimper> |
<whispers> / <whispering> |
<yawn> |
<short pause> |
<long pause> |
ערוצים אחוריים ודיבור חופף
בדיאלוג עם כמה דוברים, מקיפים את התגובות של ה-listener בתווי צינור (|reaction|) בתוך התור של הדובר הפעיל. כך נוצרים ערוצים אחוריים טבעיים או דיבור חופף בלי שכל תגובה תהיה תור נפרד.
- ערוצים קצרים לתקשורת לא מילולית: הוספת תגובות קצרות של המאזינים במהלך התור של הדובר הפעיל:
- תור 1 (דובר א'):
"So the launch is Thursday |oh hmm| Are we actually ready?" - תור 2 (דובר ב'):
"Ready enough |oh really?| The last blocker cleared this morning." - תור 3 (דובר א'):
"Then let's ship it |absolutely| and watch the dashboards."
- תור 1 (דובר א'):
- דיבור חופף ומשולב: כדי לדמות דיבור בו-זמני, משתמשים בכמה מקטעים עם קו אנכי. התכונה הזו פועלת בצורה הכי טובה עם
gemini-3.8-flash-tts:- ספירה לאחור או פזמון:
"Let's surprise him on three |ok| ready?"ואז"one. two. three. |happy| happy |birthday| birthday!" - חפיפה מלאה:
"Hello |oh| there |my| it |goodness| must |gracious| be |would| almost |you| time |look| for |at that| dinner"
- ספירה לאחור או פזמון:
עקביות בין יצירות ומה כדאי להימנע ממנו
כדי לשמור על יציבות הזהות הקולית לאורך השיחה, חשוב להקפיד על ההנחיות הבאות:
- עיצוב פרסונות מראש בעיצוב קולי במקום בלוקים ארוכים של סגנון:
פיסקאות ארוכות
"Audio Profile"ורשימות עם כמה תבליטים"Director's Notes"שעברו ממודלים קודמים הן הסיבה הנפוצה ביותר לסחף קולי. אתם יכולים להשתמש באותה אינטואיציה יצירתית מראש בעיצוב קול כדי ליצור פרסונה מותאמת אישית קבועהvoice_..., ואז להשתמש במזהה הקול הזה בשיחות TTS. - להסתמך על הפניה לקול ליציבות (להשמיט הוראות מטא):
מודלים של Gemini 3.8 TTS מאומנים להסתמך קודם על הפניה לאודיו.
אל תכללו הוראות שאומרות למודל לשמור על יציבות הקול (כמו
"do not switch speaker identity"או"maintain identical timbre"). טקסט נוסף בהנחיה מגדיל את הסחף. כדאי להשמיט הוראות סגנון מיותרות ולאפשר למודל להשתנות באופן טבעי סביב נקודת היציבות שסופקה על ידי רפרנס הקול. - אל תנסו לשנות תכונות קבועות של הדובר ב-
style: אל תנסו לשנות את הגיל, המגדר, השם או המבטא הקבוע ב-speech_metadata.style. במקום זאת, אפשר לבחור קול אזורי מתוך ספריית הקולות המורחבת או ליצור קול באמצעות עיצוב קול.
תהליך עבודה מומלץ
- יוצרים את הדמות פעם אחת: יוצרים את הדמות בעיצוב קול או בוחרים קול אזורי מספריית הקולות המורחבת שמתאים לשפת היעד ולדמות.
- כתיבת תמלילים של דיבור טבעי עם שיבושי דיבור: כדי להשיג טבעיות מקסימלית, כדאי לכתוב את
textכתמליל של דיבור אמיתי, כולל שיבושי דיבור והיסוסים טבעיים (לדוגמה,"Oh uh yeah I think... hm, so that's interesting"). - קודם בודקים TTS רגיל: מסנתזים את התמליל עם שדה
styleריק. ברוב הבקשות לא צריך לתתstyleהנחיות בכלל. - הוספת הנחיות קצרות
styleרק לשינויים קלים: מוסיפים מחרוזתstyleתמציתית (למשל"casual, friendly"או"muttering, then reassuring") רק לתפניות שבהן נדרש שינוי ספציפי באופן הצגת התוצאות, ומשתמשים שוב באותה מחרוזת קצרה בדיוק בתפניות שונות כשרוצים לקבל בסיס עקבי.
סוכנים קוליים ודיאלוגים רב-שלביים
כשיוצרים סוכן קולי בממשק שיחה או אפליקציה אחרת רב-שלבית:
- מבצעים בקשת TTS אחת לכל תור, כשהטקסט של ה-LLM מגיע.
- מאפשרים להגדרה
voiceלהעביר את זהות הדובר בין תורות הדיבור. אל תשלחו מחדש תיאור ארוך של דמות בכל תור. - משאירים את
styleריק, או שולחים מחרוזת קצרה וקבועה לכל השיחה. - לפצל תשובות ארוכות של נציגים לתשובות קצרות יותר במקום לשפר את ההנחיה.
style
המאמרים הבאים
- ליצור דמות עקבית באמצעות עיצוב קול.
- אפשר לעדכן פרומפטים שנכתבו למודלים קודמים באמצעות מדריך ההעברה.