Konuşma oluşturma (metin okuma)

Gemini API, yerel metin okuma (TTS) oluşturma özelliklerini kullanarak metin girişini tek veya çok hoparlörlü sese dönüştürebilir. Metin okuma (TTS) üretimi kontrol edilebilir. Bu sayede, etkileşimleri yapılandırmak ve sesin stilini, aksanını, hızını ve tonunu yönlendirmek için doğal dil kullanabilirsiniz.

TTS özelliği, etkileşimli, yapılandırılmamış ses ve çok formatlı girişler ve çıkışlar için tasarlanan Live API aracılığıyla sağlanan konuşma oluşturma özelliğinden farklıdır. Live API, dinamik sohbet bağlamlarında mükemmel performans gösterirken Gemini API aracılığıyla TTS, stil ve ses üzerinde ayrıntılı kontrolle metinlerin tam olarak okunmasını gerektiren senaryolar (ör. podcast veya sesli kitap oluşturma) için özel olarak tasarlanmıştır.

Bu kılavuzda, metinden tek ve çok konuşmacılı seslerin nasıl oluşturulacağı gösterilmektedir.

Başlamadan önce

Desteklenen modeller bölümünde listelendiği gibi, yerel metin okuma (TTS) özelliklerine sahip bir Gemini 2.5 model varyantı kullandığınızdan emin olun. En iyi sonuçları elde etmek için hangi modelin kullanım alanınıza en uygun olduğunu belirleyin.

Geliştirmeye başlamadan önce AI Studio'da Gemini 2.5 TTS modellerini test etmeniz faydalı olabilir.

Tek konuşmacılı metin okuma

Metni tek konuşmacılı sese dönüştürmek için yanıt biçimini "ses" olarak ayarlayın ve VoiceConfig ayarlanmış bir SpeechConfig nesnesi iletin. Önceden oluşturulmuş çıkış sesleri arasından bir ses adı seçmeniz gerekir.

Bu örnek, modelden gelen çıkış sesini bir wave dosyasına kaydeder:

Python

from google import genai
from google.genai import types
import wave

# Set up the wave file to save the output:
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()

response = client.models.generate_content(
   model="gemini-2.5-flash-preview-tts",
   contents="Say cheerfully: Have a wonderful day!",
   config=types.GenerateContentConfig(
      response_modalities=["AUDIO"],
      speech_config=types.SpeechConfig(
         voice_config=types.VoiceConfig(
            prebuilt_voice_config=types.PrebuiltVoiceConfig(
               voice_name='Kore',
            )
         )
      ),
   )
)

data = response.candidates[0].content.parts[0].inline_data.data

file_name='out.wav'
wave_file(file_name, data) # Saves the file to current directory

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 ai = new GoogleGenAI({});

   const response = await ai.models.generateContent({
      model: "gemini-2.5-flash-preview-tts",
      contents: [{ parts: [{ text: 'Say cheerfully: Have a wonderful day!' }] }],
      config: {
            responseModalities: ['AUDIO'],
            speechConfig: {
               voiceConfig: {
                  prebuiltVoiceConfig: { voiceName: 'Kore' },
               },
            },
      },
   });

   const data = response.candidates?.[0]?.content?.parts?.[0]?.inlineData?.data;
   const audioBuffer = Buffer.from(data, 'base64');

   const fileName = 'out.wav';
   await saveWaveFile(fileName, audioBuffer);
}
await main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-tts:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
        "contents": [{
          "parts":[{
            "text": "Say cheerfully: Have a wonderful day!"
          }]
        }],
        "generationConfig": {
          "responseModalities": ["AUDIO"],
          "speechConfig": {
            "voiceConfig": {
              "prebuiltVoiceConfig": {
                "voiceName": "Kore"
              }
            }
          }
        },
        "model": "gemini-2.5-flash-preview-tts",
    }' | jq -r '.candidates[0].content.parts[0].inlineData.data' | \
          base64 --decode >out.pcm
# You may need to install ffmpeg.
ffmpeg -f s16le -ar 24000 -ac 1 -i out.pcm out.wav

Birden fazla konuşmacı için metin okuma

Çok hoparlörlü ses için her hoparlörün (en fazla 2) SpeakerVoiceConfig olarak yapılandırıldığı bir MultiSpeakerVoiceConfig nesnesi gerekir. Her speaker öğesini, istemde kullanılan adlarla tanımlamanız gerekir:

Python

from google import genai
from google.genai import types
import wave

# Set up the wave file to save the output:
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?"""

response = client.models.generate_content(
   model="gemini-2.5-flash-preview-tts",
   contents=prompt,
   config=types.GenerateContentConfig(
      response_modalities=["AUDIO"],
      speech_config=types.SpeechConfig(
         multi_speaker_voice_config=types.MultiSpeakerVoiceConfig(
            speaker_voice_configs=[
               types.SpeakerVoiceConfig(
                  speaker='Joe',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Kore',
                     )
                  )
               ),
               types.SpeakerVoiceConfig(
                  speaker='Jane',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Puck',
                     )
                  )
               ),
            ]
         )
      )
   )
)

data = response.candidates[0].content.parts[0].inline_data.data

file_name='out.wav'
wave_file(file_name, data) # Saves the file to current directory

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 ai = 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 response = await ai.models.generateContent({
      model: "gemini-2.5-flash-preview-tts",
      contents: [{ parts: [{ text: prompt }] }],
      config: {
            responseModalities: ['AUDIO'],
            speechConfig: {
               multiSpeakerVoiceConfig: {
                  speakerVoiceConfigs: [
                        {
                           speaker: 'Joe',
                           voiceConfig: {
                              prebuiltVoiceConfig: { voiceName: 'Kore' }
                           }
                        },
                        {
                           speaker: 'Jane',
                           voiceConfig: {
                              prebuiltVoiceConfig: { voiceName: 'Puck' }
                           }
                        }
                  ]
               }
            }
      }
   });

   const data = response.candidates?.[0]?.content?.parts?.[0]?.inlineData?.data;
   const audioBuffer = Buffer.from(data, 'base64');

   const fileName = 'out.wav';
   await saveWaveFile(fileName, audioBuffer);
}

await main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-tts:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
  "contents": [{
    "parts":[{
      "text": "TTS the following conversation between Joe and Jane:
                Joe: Hows it going today Jane?
                Jane: Not too bad, how about you?"
    }]
  }],
  "generationConfig": {
    "responseModalities": ["AUDIO"],
    "speechConfig": {
      "multiSpeakerVoiceConfig": {
        "speakerVoiceConfigs": [{
            "speaker": "Joe",
            "voiceConfig": {
              "prebuiltVoiceConfig": {
                "voiceName": "Kore"
              }
            }
          }, {
            "speaker": "Jane",
            "voiceConfig": {
              "prebuiltVoiceConfig": {
                "voiceName": "Puck"
              }
            }
          }]
      }
    }
  },
  "model": "gemini-2.5-flash-preview-tts",
}' | jq -r '.candidates[0].content.parts[0].inlineData.data' | \
    base64 --decode > out.pcm
# You may need to install ffmpeg.
ffmpeg -f s16le -ar 24000 -ac 1 -i out.pcm out.wav

İstemlerle konuşma stilini kontrol etme

Hem tek hem de çok hoparlörlü TTS için doğal dil istemlerini kullanarak stil, ton, vurgu ve hızı kontrol edebilirsiniz. Örneğin, tek konuşmacılı bir istemde şunları söyleyebilirsiniz:

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

Birden fazla konuşmacının yer aldığı istemlerde, her konuşmacının adını ve ilgili transkripti modele sağlayın. Ayrıca her hoparlör için ayrı ayrı rehberlik de sağlayabilirsiniz:

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!

Stili veya duyguyu daha da vurgulamak için, iletmek istediğiniz stile ya da duyguya uygun bir ses seçeneği kullanmayı deneyin. Örneğin, önceki istemde Enceladus'un fısıltılı sesi "yorgun" ve "sıkılmış" kelimelerini vurgulayabilirken Puck'ın neşeli tonu "heyecanlı" ve "mutlu" kelimelerini tamamlayabilir.

Sese dönüştürme istemi oluşturma

TTS modelleri yalnızca ses çıkışı verir ancak önce transkript oluşturmak için diğer modelleri kullanabilir, ardından bu transkripti TTS modeline aktararak yüksek sesle okutabilirsiniz.

Python

from google import genai
from google.genai import types

client = genai.Client()

transcript = client.models.generate_content(
   model="gemini-2.0-flash",
   contents="""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.""").text

response = client.models.generate_content(
   model="gemini-2.5-flash-preview-tts",
   contents=transcript,
   config=types.GenerateContentConfig(
      response_modalities=["AUDIO"],
      speech_config=types.SpeechConfig(
         multi_speaker_voice_config=types.MultiSpeakerVoiceConfig(
            speaker_voice_configs=[
               types.SpeakerVoiceConfig(
                  speaker='Dr. Anya',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Kore',
                     )
                  )
               ),
               types.SpeakerVoiceConfig(
                  speaker='Liam',
                  voice_config=types.VoiceConfig(
                     prebuilt_voice_config=types.PrebuiltVoiceConfig(
                        voice_name='Puck',
                     )
                  )
               ),
            ]
         )
      )
   )
)

# ...Code to stream or save the output

JavaScript

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

const ai = new GoogleGenAI({});

async function main() {

const transcript = await ai.models.generateContent({
   model: "gemini-2.0-flash",
   contents: "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 response = await ai.models.generateContent({
   model: "gemini-2.5-flash-preview-tts",
   contents: transcript,
   config: {
      responseModalities: ['AUDIO'],
      speechConfig: {
         multiSpeakerVoiceConfig: {
            speakerVoiceConfigs: [
                   {
                     speaker: "Dr. Anya",
                     voiceConfig: {
                        prebuiltVoiceConfig: {voiceName: "Kore"},
                     }
                  },
                  {
                     speaker: "Liam",
                     voiceConfig: {
                        prebuiltVoiceConfig: {voiceName: "Puck"},
                    }
                  }
                ]
              }
            }
      }
  });
}
// ..JavaScript code for exporting .wav file for output audio

await main();

Ses seçenekleri

TTS modelleri, voice_name alanında aşağıdaki 30 ses seçeneğini destekler:

Zephyr -- Parlak Puck -- Upbeat Charon -- Bilgilendirici
Kore -- Firm Fenrir -- Heyecanlı Leda -- Genç
Orus -- Firma Aoede -- Breezy Callirrhoe -- Sakin
Autonoe -- Parlak Enceladus -- Breathy Iapetus -- Temizle
Umbriel -- Rahat Algieba -- Akış sorunsuz Despina -- Pürüzsüz
Erinome -- Temizle Algenib -- Gravelly Rasalgethi -- Bilgilendirici
Laomedeia -- Upbeat Achernar -- Yumuşak Alnilam -- Firm
Schedar -- Eşit Gacrux -- Yetişkin Pulcherrima -- Hevesli
Achird -- Dostu Zubenelgenubi -- Basit Vindemiatrix -- Nazik
Sadachbia -- Canlı Sadaltager -- Bilgili Sulafat -- Sıcak

Tüm ses seçeneklerini AI Studio'da dinleyebilirsiniz.

Desteklenen diller

TTS modelleri, giriş dilini otomatik olarak algılar. Aşağıdaki 24 dili destekler:

Dil BCP-47 kodu Dil BCP-47 kodu
Arapça (Mısır) ar-EG Almanca (Almanya) de-DE
İngilizce (ABD) en-US İspanyolca (ABD) es-US
Fransızca (Fransa) fr-FR Hintçe (Hindistan) hi-IN
Endonezce (Endonezya) id-ID İtalyanca (İtalya) it-IT
Japonca (Japonya) ja-JP Korece (Güney Kore) ko-KR
Portekizce (Brezilya) pt-BR Rusça (Rusya) ru-RU
Felemenkçe (Hollanda) nl-NL Lehçe (Polonya) pl-PL
Tay Dili (Tayland) th-TH Türkçe (Türkiye) tr-TR
Vietnamca (Vietnam) vi-VN Romence (Romanya) ro-RO
Ukraynaca (Ukrayna) uk-UA Bengalce (Bangladeş) bn-BD
İngilizce (Hindistan) en-IN ve hi-IN paketi Marathice (Hindistan) mr-IN
Tamilce (Hindistan) ta-IN Telugu dili (Hindistan) te-IN

Desteklenen modeller

Model Tek konuşmacı Çok hoparlörlü
Gemini 2.5 Flash Önizleme TTS ✔️ ✔️
Gemini 2.5 Pro Önizleme TTS ✔️ ✔️

Sınırlamalar

  • TTS modelleri yalnızca metin girişlerini alabilir ve ses çıkışları oluşturabilir.
  • TTS oturumlarında 32 bin parçalık bağlam penceresi sınırı vardır.
  • Dil desteği için Diller bölümünü inceleyin.

İstem yazma kılavuzu

Gemini Native Audio Generation Text-to-Speech (TTS) modeli, yalnızca ne söyleyeceğini değil, nasıl söyleyeceğini de bilen bir büyük dil modeli kullanarak geleneksel TTS modellerinden ayrılır.

Bu özelliği kullanmak için kullanıcılar, sanal bir seslendirme sanatçısının performans sergileyeceği bir sahne hazırlayan yönetmenler gibi düşünebilir. İstem oluştururken aşağıdaki bileşenleri göz önünde bulundurmanızı öneririz: Karakterin temel kimliğini ve arketipini tanımlayan bir Ses Profili, fiziksel ortamı ve duygusal "havayı" belirleyen bir Sahne Açıklaması ve stil, aksan ve tempo kontrolüyle ilgili daha hassas performans yönergeleri sunan Yönetmen Notları.

Kullanıcılar, bölgesel aksan, belirli paralinguistik özellikler (ör. nefesli ses) veya tempo gibi ayrıntılı talimatlar vererek modelin bağlam farkındalığından yararlanıp son derece dinamik, doğal ve etkileyici ses performansları oluşturabilir. En iyi performans için Transkript ve yönetmenlik istemlerinin uyumlu olmasını öneririz. Böylece "kimin söylediği", "ne söylendiği" ve "nasıl söylendiği" ile eşleşir.

Bu rehberin amacı, Gemini TTS ses üretimi kullanılarak ses deneyimleri geliştirilirken temel yönlendirme sağlamak ve fikirler üretmektir. Üreteceğiniz içerikleri merakla bekliyoruz.

İstem yapısı

Güçlü bir istem, ideal olarak mükemmel bir performans oluşturmak için bir araya gelen aşağıdaki öğeleri içerir:

  • Ses Profili: Ses için bir karakter oluşturur. Karakter kimliğini, arketipini ve yaş, geçmiş vb. gibi diğer özellikleri tanımlar.
  • Sahne: Ortamı hazırlar. Hem fiziksel ortamı hem de "havayı" açıklar.
  • Yönetmen Notları: Sanal karakterinizin dikkate alması gereken talimatları ayrıntılı olarak açıklayabileceğiniz performans rehberliği. Örnek olarak stil, nefes, tempo, telaffuz ve aksan verilebilir.
  • Örnek bağlam: Modele bağlamsal bir başlangıç noktası sağlar. Böylece sanal aktörünüz, oluşturduğunuz sahneye doğal bir şekilde girer.
  • Transkript: Modelin seslendireceği metin. En iyi performansı elde etmek için transkript konusunun ve yazım stilinin verdiğiniz talimatlarla ilişkili olması gerektiğini unutmayın.

Tam istem örneği:

# 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!

Ayrıntılı istem stratejileri

İstekteki her bir öğeyi inceleyelim.

Ses Profili

Karakterin kişiliğini kısaca açıklayın.

  • Ad. Karakterinize ad vermek, modeli ve performansını bir araya getirmenize yardımcı olur. Sahneyi ve bağlamı ayarlarken karakterden adıyla bahsedin.
  • Rol Sahnedeki karakterin temel kimliği ve arketipi. Örneğin: Radyo DJ'i, podcast yayıncısı, muhabir vb.

Örnekler:

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


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

Sahne

Sahnenin bağlamını ayarlayın. Konum, ruh hali ve ortam ayrıntıları gibi öğelerle tonu ve atmosferi belirleyin. Karakterin etrafında neler olduğunu ve bunların karakteri nasıl etkilediğini açıklayın. Sahne, etkileşimin tamamı için çevresel bağlamı sağlar ve oyunculuk performansını ince ve doğal bir şekilde yönlendirir.

Örnekler:

## 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."

Yönetmen notları

Bu önemli bölümde, performansla ilgili özel yönergeler yer alır. Diğer tüm öğeleri atlayabilirsiniz ancak bu öğeyi eklemenizi öneririz.

Yalnızca performans için önemli olanı tanımlayın ve aşırı belirtim yapmamaya dikkat edin. Çok fazla katı kural, modellerin yaratıcılığını sınırlar ve daha kötü bir performansa yol açabilir. Rol ve sahne açıklamasını belirli performans kurallarıyla dengeleyin.

En yaygın talimatlar Stil, Tempo ve Vurgu'dur ancak model bunlarla sınırlı değildir ve bunları gerektirmez. Performansınız için önemli olan ek ayrıntıları kapsayacak özel talimatlar ekleyebilir ve gerektiği kadar ayrıntılı veya kısa açıklamalar yapabilirsiniz.

Örneğin:

### 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 |

Stil:

Oluşturulan konuşmanın tonunu ve stilini belirler. Performansa yön vermek için neşeli, enerjik, rahat, sıkılmış vb. gibi ifadeler kullanın. Açıklayıcı olun ve gerektiği kadar ayrıntı verin: "Bulaşıcı bir coşku. Dinleyici, büyük ve heyecan verici bir topluluk etkinliğinin parçası olduğunu hissetmeli." ifadesi, "enerjik ve coşkulu" ifadesinden daha iyi sonuç verir.

Hatta seslendirme sektöründe popüler olan "vokal gülümseme" gibi terimleri de deneyebilirsiniz. İstediğiniz kadar stil özelliği ekleyebilirsiniz.

Örnekler:

Simple Emotion

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

Daha fazla derinlik

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

Karmaşık

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").

Aksan:

İstediğiniz aksanı açıklayın. Ne kadar ayrıntılı olursanız sonuçlar o kadar iyi olur. Örneğin, "İngiltere, Croydon'da duyulan İngiliz aksanı" yerine "İngiliz aksanı" kullanın.

Örnekler:

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


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

İlerleme hızı:

Parça boyunca genel tempo ve tempo değişimi.

Örnekler:

Basit

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

Daha fazla derinlik

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

Karmaşık

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

Deneyin

AI Studio'da bu örneklerden bazılarını kendiniz deneyin, TTS uygulamamızla oynayın ve Gemini'ın sizi yönetmen koltuğuna oturtmasına izin verin. Harika vokal performansları için şu ipuçlarını aklınızda bulundurun:

  • Tüm istemin tutarlı olmasına dikkat edin. Senaryo ve yönlendirme, harika bir performans oluşturmak için birlikte çalışır.
  • Her şeyi açıklamanız gerekmez. Bazen modele boşlukları doldurması için alan bırakmak doğallığı artırır. (Tıpkı yetenekli bir oyuncu gibi)
  • Takıldığınız noktalarda Gemini'dan yardım alarak senaryonuzu veya performansınızı şekillendirebilirsiniz.

Sırada ne var?

  • Ses üretimi yemek kitabını deneyin.
  • Gemini'ın Live API'si, diğer yöntemlerle birlikte kullanabileceğiniz etkileşimli ses üretme seçenekleri sunar.
  • Ses girişleriyle çalışma hakkında bilgi edinmek için Ses yorumlama rehberini inceleyin.