יצירת המרת טקסט לדיבור (TTS)

‫Gemini API יכול להפוך קלט טקסט לאודיו עם דובר אחד או כמה דוברים באמצעות יכולות ההמרה של Gemini מטקסט לדיבור (TTS). הפקת המרת טקסט לדיבור (TTS) היא ניתנת לשליטה, כלומר אפשר להשתמש בשפה טבעית כדי לבנות אינטראקציות ולהנחות את הסגנון, המבטא, הקצב והטון של האודיו.

יכולת ה-TTS שונה מיצירת דיבור שמתבצעת באמצעות Live API, שנועד לאודיו אינטראקטיבי ולא מובנה, ולקלט ולפלט מולטי-מודאליים. ‫Live API מצטיין בהקשרים דינמיים של שיחות, אבל TTS דרך Gemini API מותאם לתרחישים שבהם נדרשת הקראה מדויקת של טקסט עם שליטה מדויקת בסגנון ובצליל, כמו יצירת פודקאסטים או ספרי אודיו.

במדריך הזה מוסבר איך ליצור אודיו עם דובר אחד או עם כמה דוברים מטקסט.

לפני שמתחילים

חשוב לוודא שמשתמשים בגרסה של מודל Gemini 2.5 עם יכולות של Gemini להמרת טקסט לדיבור (TTS), כמו שמופיע בקטע מודלים נתמכים. כדי לקבל תוצאות אופטימליות, כדאי לבחור את המודל שהכי מתאים לתרחיש השימוש הספציפי שלכם.

יכול להיות שיהיה לכם שימושי [לבחון את מודלי ה-TTS של Gemini 2.5 ב-AI Studio]

המרת טקסט לדיבור (TTS) עם דובר יחיד

כדי להמיר טקסט לאודיו עם דובר אחד, צריך להגדיר את אופן התגובה ל'אודיו' ולהעביר אובייקט speech_config עם שם של קול. תצטרכו לבחור שם קול מתוך הקולות המובנים של הפלט.

בדוגמה הזו, האודיו שנוצר על ידי המודל נשמר בקובץ wave:

Python

from google import genai
import wave

def wave_file(filename, pcm, channels=1, rate=24000, sample_width=2):
    with wave.open(filename, "wb") as wf:
        wf.setnchannels(channels)
        wf.setsampwidth(sample_width)
        wf.setframerate(rate)
        wf.writeframes(pcm)

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.1-flash-tts-preview",
    input="Say cheerfully: Have a wonderful day!",
    response_modalities=["audio"],
    speech_config=[
        {"voice": "Kore"}
    ]
)

data = None
for step in interaction.steps:
    for content_block in step.content:
        if content_block.type == "audio":
            data = content_block.data
            break
    if data:
        break
wave_file('out.wav', data)

JavaScript

import {GoogleGenAI} from '@google/genai';
import wav from 'wav';

async function saveWaveFile(
   filename,
   pcmData,
   channels = 1,
   rate = 24000,
   sampleWidth = 2,
) {
   return new Promise((resolve, reject) => {
      const writer = new wav.FileWriter(filename, {
            channels,
            sampleRate: rate,
            bitDepth: sampleWidth * 8,
      });

      writer.on('finish', resolve);
      writer.on('error', reject);

      writer.write(pcmData);
      writer.end();
   });
}

async function main() {
   const client = new GoogleGenAI({});

   const interaction = await client.interactions.create({
      model: "gemini-3.1-flash-tts-preview",
      input: "Say cheerfully: Have a wonderful day!",
      response_modalities: ['audio'],
      speech_config: [
         { voice: 'Kore' }
      ],
   });

   let data = null;
   for (const step of interaction.steps) {
      for (const contentBlock of step.content) {
         if (contentBlock.type === 'audio') {
            data = contentBlock.data;
            break;
         }
      }
      if (data) break;
   }
   const audioBuffer = Buffer.from(data, 'base64');
   await saveWaveFile('out.wav', audioBuffer);
}
await main();

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-tts-preview",
    "input": "Say cheerfully: Have a wonderful day!",
    "response_modalities": ["audio"],
    "speech_config": [
      { "voice": "Kore" }
    ]
  }'

המרת טקסט לדיבור (TTS) עם כמה דוברים

כדי להשתמש באודיו עם כמה רמקולים, צריך אובייקט multi_speaker_voice_config עם כל רמקול (עד 2) שמוגדר כ-speaker_voice_config. צריך להגדיר כל speaker עם אותם שמות שמשמשים בהנחיה:

Python

from google import genai
import wave

def wave_file(filename, pcm, channels=1, rate=24000, sample_width=2):
   with wave.open(filename, "wb") as wf:
      wf.setnchannels(channels)
      wf.setsampwidth(sample_width)
      wf.setframerate(rate)
      wf.writeframes(pcm)

client = genai.Client()

prompt = """TTS the following conversation between Joe and Jane:
         Joe: How's it going today Jane?
         Jane: Not too bad, how about you?"""

 interaction = client.interactions.create(
     model="gemini-3.1-flash-tts-preview",
     input=prompt,
     response_modalities=["audio"],
     speech_config=[
         {"speaker": "Joe", "voice": "Kore"},
         {"speaker": "Jane", "voice": "Puck"}
     ]
 )

data = None
for step in interaction.steps:
   for content_block in step.content:
      if content_block.type == "audio":
         data = content_block.data
         break
   if data:
      break
wave_file('out.wav', data)

JavaScript

import {GoogleGenAI} from '@google/genai';
import wav from 'wav';

async function saveWaveFile(
   filename,
   pcmData,
   channels = 1,
   rate = 24000,
   sampleWidth = 2,
) {
   return new Promise((resolve, reject) => {
      const writer = new wav.FileWriter(filename, {
            channels,
            sampleRate: rate,
            bitDepth: sampleWidth * 8,
      });

      writer.on('finish', resolve);
      writer.on('error', reject);

      writer.write(pcmData);
      writer.end();
   });
}

async function main() {
   const client = new GoogleGenAI({});

   const prompt = `TTS the following conversation between Joe and Jane:
         Joe: How's it going today Jane?
         Jane: Not too bad, how about you?`;

   const interaction = await client.interactions.create({
      model: "gemini-3.1-flash-tts-preview",
      input: prompt,
      response_modalities: ['audio'],
      speech_config: [
         { speaker: 'Joe', voice: 'Kore' },
         { speaker: 'Jane', voice: 'Puck' }
      ]
   });

   let data = null;
   for (const step of interaction.steps) {
      for (const contentBlock of step.content) {
         if (contentBlock.type === 'audio') {
            data = contentBlock.data;
            break;
         }
      }
      if (data) break;
   }
   const audioBuffer = Buffer.from(data, 'base64');
   await saveWaveFile('out.wav', audioBuffer);
}

await main();

REST

curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "gemini-3.1-flash-tts-preview",
  "input": "TTS the following conversation between Joe and Jane: Joe: Hows it going today Jane? Jane: Not too bad, how about you?",
  "response_modalities": ["audio"],
  "speech_config": [
    { "speaker": "Joe", "voice": "Kore" },
    { "speaker": "Jane", "voice": "Puck" }
  ]
}'

שליטה בסגנון הדיבור באמצעות הנחיות

אתם יכולים לשלוט בסגנון, בטון, במבטא ובקצב באמצעות הנחיות בשפה טבעית, גם בהמרת טקסט לדיבור עם דובר אחד וגם עם כמה דוברים. לדוגמה, בהנחיה עם דובר אחד, אפשר לומר:

Say in an spooky whisper:
"By the pricking of my thumbs...
Something wicked this way comes"

בהנחיה עם כמה דוברים, צריך לספק למודל את השם של כל דובר ואת התמליל המתאים. אפשר גם לספק הנחיות לכל דובר בנפרד:

Make Speaker1 sound tired and bored, and Speaker2 sound excited and happy:

Speaker1: So... what's on the agenda today?
Speaker2: You're never going to guess!

כדי להדגיש את הסגנון או הרגש שרוצים להעביר, אפשר להשתמש באפשרות קולית שמתאימה להם. בהנחיה הקודמת, לדוגמה, יכול להיות שההגייה של אנסלדוס תדגיש את המילים 'עייף' ו'משועמם', בעוד שהטון העליז של יכול להשלים את המילים 'נרגש' ו'שמח'.

יצירת הנחיה להמרה לאודיו

מודלים של TTS מוציאים רק אודיו, אבל אפשר להשתמש במודלים אחרים כדי ליצור תמליל, ואז להעביר את התמליל הזה למודל ה-TTS כדי שיקרא אותו בקול.

Python

from google import genai

client = genai.Client()

transcript_interaction = client.interactions.create(
   model="gemini-3-flash-preview",
   input="""Generate a short transcript around 100 words that reads
            like it was clipped from a podcast by excited herpetologists.
            The hosts names are Dr. Anya and Liam."""
)
transcript = transcript_interaction.steps[-1].content[0].text

tts_interaction = client.interactions.create(
   model="gemini-3.1-flash-tts-preview",
   input=transcript,
   response_modalities=["audio"],
   speech_config=[
      {"speaker": "Dr. Anya", "voice": "Kore"},
      {"speaker": "Liam", "voice": "Puck"}
   ]
)

# ...Code to stream or save the output

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

async function main() {

const transcriptInteraction = await client.interactions.create({
   model: "gemini-3-flash-preview",
   input: "Generate a short transcript around 100 words that reads like it was clipped from a podcast by excited herpetologists. The hosts names are Dr. Anya and Liam.",
   })

const ttsInteraction = await client.interactions.create({
   model: "gemini-3.1-flash-tts-preview",
   input: transcriptInteraction.steps.at(-1).content[0].text,
   response_modalities: ['audio'],
   speech_config: [
      { speaker: "Dr. Anya", voice: "Kore" },
      { speaker: "Liam", voice: "Puck" }
   ]
  });
}
// ..JavaScript code for exporting .wav file for output audio

await main();

אפשרויות קול

מודלים של TTS תומכים ב-30 אפשרויות הקול הבאות בשדה voice_name:

Zephyr -- Bright Puck -- Upbeat CharonInformative
Kore -- Firm Fenrir -- Excitable Ledaצעיר
Orus -- Firm AoedeBreezy Callirrhoeנינוח
Autonoe -- Bright Enceladus -- Breathy IapetusClear
Umbriel -- Easy-going Algieba -- Smooth DespinaSmooth
Erinome -- Clear Algenib -- Gravelly Rasalgethi -- Informative
Laomedeia -- Upbeat Achernar -- Soft Alnilam -- Firm
Schedar -- Even Gacrux -- Mature Pulcherrima -- Forward
Achirdידידותי Zubenelgenubiשגרתי Vindemiatrix -- Gentle
Sadachbia -- Lively Sadaltager -- Knowledgeable Sulafat -- חמה

אפשר לשמוע את כל האפשרויות של הקולות ב

שפות נתמכות

מודלים של TTS מזהים את שפת הקלט באופן אוטומטי. השפות הנתמכות הן:

שפה קוד BCP-47 שפה קוד BCP-47
ערבית ar פיליפינית fil
בנגלית bn פינית fi
הולנדית nl גליציאנית gl
אנגלית en גאורגית ka
צרפתית fr יוונית el
גרמנית de גוג'ראטי gu
הינדי hi קריאולית האיטית ht
אינדונזית id [מזהה] עברית הוא
איטלקית it הונגרית hu
יפנית ja איסלנדית is
קוריאנית ko ג'אווה jv
מראטהית mr קאנדה kn
פולנית pl קונקאני kok
פורטוגזית pt לאו lo
רומנית ro מוזיקה לטינית לה
רוסית ru לטבית lv
ספרדית es ליטאית lt
טמילית ta לוקסמבורגית lb
טלוגו te מקדונית mk
תאית th מאיטילית mai
טורקית tr מלגשית מ"ג
אוקראינית uk מלאית ms
וייטנאמית vi מליאלאם ml
אפריקאנס af מונגולית mn
אלבנית sq נפאלית ne
אמהרית am נורווגית, ספרותית nb
ארמנית hy נורווגית, נינורסק nn
אזרית az אודיה או
בסקית eu פשטו ps
בלארוסית be פרסית fa
בולגרית bg פנג'אבי pa
בורמזית my סרבית sr
קטלאנית ca סינדהית SD
סבואנו ceb סינהלית si
סינית, מנדרינית cmn סלובקית sk
קרואטית שעה סלובנית sl
צ'כית cs סווהילי sw
דנית da שוודית sv
אסטונית et אורדו ur

מודלים נתמכים

דגם דובר יחיד מערכת רמקולים
תצוגה מקדימה של Gemini 3.1 Flash TTS ✔️ ✔️
Gemini 2.5 Flash Preview TTS ✔️ ✔️
תצוגה מקדימה של Gemini ‎2.5 Pro TTS ✔️ ✔️

מדריך לכתיבת הנחיות

מודל Gemini Native Audio Generation Text-to-Speech (TTS) שונה ממודלים רגילים של TTS בכך שהוא מבוסס על מודל שפה גדול שיודע לא רק מה לומר, אלא גם איך לומר את זה.

אפשר לחשוב על הנחיה מתקדמת כהוראת מערכת שהמודל צריך לפעול לפיה. זו דרך לספק למודל יותר הקשר ולשלוט בביצועים שלו.

כדי להשתמש ביכולת הזו, המשתמשים יכולים לדמיין שהם במאים שמגדירים סצנה לקריין וירטואלי. כדי ליצור הנחיה, מומלץ להשתמש ברכיבים הבאים: פרופיל אודיו שמגדיר את הזהות והארכיטיפ העיקריים של הדמות, תיאור סצנה שמגדיר את הסביבה הפיזית ואת האווירה הרגשית, והערות הבמאי שמציעות הנחיות מדויקות יותר לגבי סגנון, מבטא ושליטה בקצב.

הוראות מפורטות כמו מבטא אזורי מדויק, מאפיינים פרא-לשוניים ספציפיים (למשל, נשימה) או קצב, מאפשרות למשתמשים להשתמש במודעות להקשר של המודל כדי ליצור ביצועים דינמיים, טבעיים ומלאי הבעה של אודיו. כדי להשיג ביצועים אופטימליים, מומלץ שההנחיות לתסריט ולהנחיות הבימוי יהיו תואמות, כך שההנחיה 'מי אומר את זה' תתאים להנחיות 'מה נאמר' ו'איך זה נאמר'.

מטרת המדריך הזה היא לספק הנחיות בסיסיות ולעורר רעיונות לפיתוח חוויות אודיו באמצעות יצירת אודיו ב-Gemini TTS. אנחנו סקרנים לראות מה תיצרו!

תגי אודיו

תגים הם משנים מוטבעים כמו [whispers] או [laughs] שמאפשרים לכם שליטה פרטנית בהצגת המודעות. אתם יכולים להשתמש בהם כדי לשנות את הטון, הקצב והאווירה הרגשית של שורה או קטע בתמליל. אפשר גם להשתמש בהם כדי להוסיף קריאות ביניים וכמה צלילים לא מילוליים אחרים לביצוע, כמו [cough], [sighs] או [gasp].

אין רשימה מקיפה של תגים שעובדים ושלא עובדים, לכן מומלץ להתנסות עם רגשות והבעות שונים כדי לראות איך הפלט משתנה.

אם התמליל לא באנגלית, כדי לקבל את התוצאות הכי טובות מומלץ להשתמש בתגי אודיו באנגלית.

יצירתיות עם תגי אודיו

כדי להראות את סוגי הווריאציות שאפשר לקבל באמצעות תגי אודיו, הנה כמה דוגמאות שבהן נאמר אותו הדבר, אבל אופן ההצגה משתנה בהתאם לתגים שבהם נעשה שימוש.

אתם יכולים לשנות את ההדגשה של הדיבור על ידי הוספת תגים בתחילת השורה כדי שהדובר יביע התרגשות, שעמום או היסוס:

  • [excitedly] שלום, אני מודל חדש של המרת טקסט לדיבור, ואני יכול להגיד דברים בהרבה דרכים שונות. איך אוכל לעזור לך?
  • [bored] היי, אני מודל חדש של המרת טקסט לדיבור…
  • [reluctantly] היי, אני מודל חדש של המרת טקסט לדיבור…

אפשר גם להשתמש בתגים כדי לשנות את קצב ההצגה, או כדי לשלב בין התג pace לבין התג emphasis:

  • [very fast] היי, אני מודל חדש של המרת טקסט לדיבור…
  • [very slow] היי, אני מודל חדש של המרת טקסט לדיבור…
  • [sarcastically, one painfully slow word at a time] היי, אני מודל חדש של המרת טקסט לדיבור…

יש לכם גם שליטה מדויקת על חלקים ספציפיים, כך שאתם יכולים ללחוש חלק אחד ולצעוק חלק אחר.

  • [whispers] שלום, אני מודל חדש של המרת טקסט לדיבור, [shouting] ואני יכול להגיד דברים בדרכים שונות. [whispers] איך אוכל לעזור לך?

אתם יכולים גם להתנסות בכל רעיון יצירתי שתרצו:

  • [like a cartoon dog] היי, אני מודל חדש של המרת טקסט לדיבור…
  • [like dracula] היי, אני מודל חדש של המרת טקסט לדיבור…

תגים נפוצים:

[amazed] [crying] [curious] [excited]
[sighs] [gasp] [giggles] [laughs]
[mischievously] [panicked] [sarcastic] [serious]
[shouting] [tired] [trembling] [whispers]

תגיות מאפשרות שליטה מהירה בהצגת התמליל. כדי לקבל שליטה רבה עוד יותר, אפשר לשלב אותם עם הנחיה להגדרת הקשר כדי להגדיר את הטון והאווירה הכלליים של הביצוע.

מבנה ההנחיה

הנחיה טובה כוללת את הרכיבים הבאים, שמשולבים יחד כדי ליצור ביצועים מצוינים:

  • פרופיל אודיו – הגדרה של דמות לקול, כולל זהות, ארכיטיפ ומאפיינים אחרים כמו גיל, רקע וכו'.
  • סצנה – מגדירה את הבמה. מתאר את הסביבה הפיזית ואת האווירה.
  • הערות הבמאי – הנחיות לשיפור הביצועים שבהן אפשר לפרט אילו הוראות חשובות לכישרון הווירטואלי. דוגמאות: סגנון, נשימה, קצב, הבעה ומבטא.
  • הקשר לדוגמה – מספק למודל נקודת התחלה הקשרית, כך שהשחקן הווירטואלי ייכנס לסצנה שהגדרתם באופן טבעי.
  • Transcript (תמליל) – הטקסט שהמודל יקריא. כדי לקבל את הביצועים הטובים ביותר, חשוב לזכור שהנושא של התמליל וסגנון הכתיבה צריכים להיות קשורים להוראות שאתם נותנים.
  • תגי אודיו – משנים שאפשר להוסיף לתמליל כדי לשנות את אופן ההקראה של חלק מסוים בטקסט, כמו [whispers] או [shouting].

דוגמה להנחיה מלאה:

# AUDIO PROFILE: Jaz R.
## "The Morning Hype"

## THE SCENE: The London Studio
It is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline,
but inside, it is blindingly bright. The red "ON AIR" tally light is blazing.
Jaz is standing up, not sitting, bouncing on the balls of their heels to the
rhythm of a thumping backing track. Their hands fly across the faders on a
massive mixing desk. It is a chaotic, caffeine-fueled cockpit designed to wake
up an entire nation.

### DIRECTOR'S NOTES
Style:
* The "Vocal Smile": You must hear the grin in the audio. The soft palate is
always raised to keep the tone bright, sunny, and explicitly inviting.
* Dynamics: High projection without shouting. Punchy consonants and elongated
vowels on excitement words (e.g., "Beauuutiful morning").

Pace: Speaks at an energetic pace, keeping up with the fast music.  Speaks
with A "bouncing" cadence. High-speed delivery with fluid transitions - no dead
air, no gaps.

Accent: Jaz is from Brixton, London

### SAMPLE CONTEXT
Jaz is the industry standard for Top 40 radio, high-octane event promos, or any
script that requires a charismatic Estuary accent and 11/10 infectious energy.

#### TRANSCRIPT
Yes, massive vibes in the studio! You are locked in and it is absolutely
popping off in London right now. If you're stuck on the tube, or just sat
there pretending to work... stop it. Seriously, I see you. Turn this up!
We've got the project roadmap landing in three, two... let's go!

שיטות מפורטות ליצירת הנחיות

כדאי לפרק כל רכיב בהנחיה באופן הבא:

פרופיל אודיו

תאר בקצרה את הפרסונה של הדמות.

  • שם. כשנותנים לדמות שם, המודל מקבל יותר פרטים על הדמות ומשפר את הביצועים. כדאי להתייחס לדמות בשם כשמגדירים את הסצנה וההקשר.
  • תפקיד. הזהות והארכיטיפ העיקריים של הדמות שמופיעה בסצנה. לדוגמה: שדרן רדיו, מגיש פודקאסט, כתב חדשות וכו'.

דוגמאות:

# AUDIO PROFILE: Jaz R.
## "The Morning Hype"


# AUDIO PROFILE: Monica A.
## "The Beauty Influencer"

סצינה

מגדירים את ההקשר של הסצנה, כולל המיקום, האווירה ופרטים סביבתיים שיוצרים את הטון והאווירה. תאר מה קורה מסביב לדמות ואיך זה משפיע עליה. הסצנה מספקת את ההקשר הסביבתי לכל האינטראקציה ומנחה את ביצועי המשחק בצורה עדינה ואורגנית.

דוגמאות:

## THE SCENE: The London Studio
It is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline,
but inside, it is blindingly bright. The red "ON AIR" tally light is blazing.
Jaz is standing up, not sitting, bouncing on the balls of their heels to the
rhythm of a thumping backing track. Their hands fly across the faders on a
massive mixing desk. It is a chaotic, caffeine-fueled cockpit designed to
wake up an entire nation.


## THE SCENE: Homegrown Studio
A meticulously sound-treated bedroom in a suburban home. The space is
deadened by plush velvet curtains and a heavy rug, but there is a
distinct "proximity effect."

הערות הבמאי

הקטע החשוב הזה כולל הנחיות ספציפיות לשיפור הביצועים. אפשר לדלג על כל הרכיבים האחרים, אבל מומלץ לכלול את הרכיב הזה.

חשוב להגדיר רק את מה שחשוב לביצועים, ולהיזהר שלא להגדיר יותר מדי. יותר מדי כללים מחמירים יגבילו את היצירתיות של המודלים, ועלולים להוביל לביצועים גרועים יותר. חשוב לאזן בין תיאור התפקיד והסצנה לבין כללי הביצוע הספציפיים.

ההנחיות הנפוצות ביותר הן סגנון, קצב ומבטא, אבל המודל לא מוגבל להנחיות האלה ולא דורש אותן. אתם יכולים לכלול הוראות מותאמות אישית כדי לציין פרטים נוספים שחשובים לביצועים שלכם, ולפרט כמה שצריך.

לדוגמה:

### DIRECTOR'S NOTES

Style: Enthusiastic and Sassy GenZ beauty YouTuber

Pacing: Speaks at an energetic pace, keeping up with the extremely fast, rapid
delivery influencers use in short form videos.

Accent: Southern california valley girl from Laguna Beach |

סגנון:

הגדרת הטון והסגנון של הדיבור שנוצר. כדאי לכלול הנחיות כמו קצבי, אנרגטי, רגוע, משועמם וכו' כדי להנחות את הביצוע. הקפידו על תיאוריות וספקו כמה שיותר פרטים: "התלהבות מדבקת. ההנחיה "המאזין צריך להרגיש שהוא חלק מאירוע קהילתי גדול ומרגש" עדיפה על "אנרגטי ונלהב".

אפשר גם לנסות מונחים פופולריים בתעשיית הקריינות, כמו "חיוך קולי". אפשר להוסיף כמה מאפייני סגנון שרוצים.

דוגמאות:

Simple Emotion

DIRECTORS NOTES
...
Style: Frustrated and angry developer who can't get the build to run.
...

יותר עומק

DIRECTORS NOTES
...
Style: Sassy GenZ beauty YouTuber, who mostly creates content for YouTube Shorts.
...

רמה למתקדמים מאוד

DIRECTORS NOTES
Style:
* The "Vocal Smile": You must hear the grin in the audio. The soft palate is
always raised to keep the tone bright, sunny, and explicitly inviting.
*Dynamics: High projection without shouting. Punchy consonants and
elongated vowels on excitement words (e.g., "Beauuutiful morning").

מבטא:

תאר את המבטא שנבחר. ככל שהתיאור יהיה מפורט יותר, התוצאות יהיו טובות יותר. לדוגמה, עדיף להשתמש בביטוי מבטא בריטי כמו שמדברים בקרוידון, אנגליה במקום מבטא בריטי.

דוגמאות:

### DIRECTORS NOTES
...
Accent: Southern california valley girl from Laguna Beach
...


### DIRECTORS NOTES
...
Accent: Jaz is a from Brixton, London
...

קצב ניצול:

הקצב הכללי והשינויים בקצב לאורך היצירה.

דוגמאות:

פשוט

### DIRECTORS NOTES
...
Pacing: Speak as fast as possible
...

עומק רב יותר

### DIRECTORS NOTES
...
Pacing: Speaks at a faster, energetic pace, keeping up with fast paced music.
...

רמה למתקדמים מאוד

### DIRECTORS NOTES
...
Pacing: The "Drift": The tempo is incredibly slow and liquid. Words bleed into each other. There is zero urgency.
...

רוצים לנסות?

אתם יכולים לנסות בעצמכם כמה מהדוגמאות האלה באפליקציית TTS ולתת ל-Gemini להושיב אתכם על כיסא הבמאי. כדי ליצור ביצועים קוליים מעולים, כדאי לזכור את הטיפים הבאים:

  • חשוב לזכור שההנחיה כולה צריכה להיות עקבית – התסריט והבימוי משלימים זה את זה כדי ליצור ביצוע מוצלח.
  • לא צריך לתאר כל דבר, לפעמים כדאי לתת למודל מקום למלא את הפערים כדי שהתוצאה תהיה טבעית. (Just like a talented actor)
  • אם אתם מרגישים תקועים, אתם יכולים לבקש מ-Gemini עזרה בכתיבת התסריט או בביצוע.

מגבלות

  • מודלים של TTS יכולים לקבל רק קלט טקסט ולהפיק פלט אודיו.
  • לסשן TTS יש מגבלת חלון הקשר של 32 אלף טוקנים.
  • בקטע שפות מפורטות השפות הנתמכות.
  • ה-TTS לא תומך בסטרימינג.

ההגבלות הבאות חלות באופן ספציפי כשמשתמשים במודל Gemini 3.1 Flash TTS Preview ליצירת דיבור:

  • חוסר עקביות בקול בהשוואה להוראות בהנחיה: יכול להיות שהפלט של המודל לא תמיד יתאים בדיוק לרמקול שנבחר, ולכן האודיו יישמע שונה מהצפוי. כדי למנוע חוסר התאמה בטונים (למשל, קול גברי עוצמתי שמנסה לדבר כמו ילדה צעירה), חשוב לוודא שהטון וההקשר של ההנחיה תואמים באופן טבעי לפרופיל של הדובר שנבחר.
  • איכות של פלטים ארוכים יותר: איכות הדיבור והעקביות עשויות להתחיל לדעוך בפלטים שנוצרו ואורכם יותר מכמה דקות. מומלץ לפצל את התמלילים לחלקים קטנים יותר.
  • החזרת טוקנים של טקסט מדי פעם: המודל מחזיר מדי פעם טוקנים של טקסט במקום טוקנים של אודיו, ולכן השרת לא מצליח לבצע את הבקשה ומחזיר שגיאת 500. השגיאה הזו מתרחשת באופן אקראי באחוז קטן מאוד של הבקשות, ולכן כדאי להטמיע באפליקציה לוגיקה אוטומטית לניסיון חוזר כדי לטפל בה.
  • דחיות שגויות של מסווג ההנחיות: יכול להיות שהנחיות לא ברורות לא יפעילו את מסווג סינתזת הדיבור, וכתוצאה מכך הבקשה תידחה (PROHIBITED_CONTENT) או שהמודל יקרא בקול רם את הוראות הסגנון ואת הערות הבמאי. כדי לוודא שההנחיות תקינות, מוסיפים פתיח ברור שמורה למודל לסנתז דיבור, ומציינים במפורש איפה מתחיל התמליל הממשי של הדיבור.

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

  • Live API של Gemini מציע אפשרויות אינטראקטיביות ליצירת אודיו שאפשר לשלב עם מצבים אחרים.
  • כדי לקבל מידע על עבודה עם קלט של אודיו, אפשר לעיין במדריך הבנת אודיו.