Pembuatan text-to-speech (TTS)
Gemini API dapat mengubah input teks menjadi audio satu penutur atau multi-penutur menggunakan kemampuan pembuatan text-to-speech (TTS) Gemini. Pembuatan text-to-speech (TTS) dapat dikontrol, artinya Anda dapat menggunakan bahasa alami untuk menyusun interaksi dan memandu gaya, aksen, kecepatan, dan nada audio.
Kemampuan TTS berbeda dengan pembuatan ucapan yang disediakan melalui Live API, yang dirancang untuk audio interaktif dan tidak terstruktur, serta input dan output multimodal. Meskipun Live API unggul dalam konteks percakapan dinamis, TTS melalui Gemini API disesuaikan untuk skenario yang memerlukan pembacaan teks yang tepat dengan kontrol yang cermat atas gaya dan suara, seperti pembuatan podcast atau buku audio.
Panduan ini menunjukkan cara membuat audio satu pembicara dan multi-pembicara dari teks.
Sebelum memulai
Pastikan Anda menggunakan varian model Gemini 2.5 dengan kemampuan text-to-speech (TTS) Gemini, seperti yang tercantum di bagian Model yang didukung. Untuk hasil yang optimal, pertimbangkan model mana yang paling sesuai dengan kasus penggunaan spesifik Anda.
Anda mungkin merasa berguna untuk [menguji model TTS Gemini 2.5 di AI Studio]
TTS satu penutur
Untuk mengonversi teks menjadi audio satu penutur, tetapkan modalitas respons ke "audio",
dan teruskan objek speech_config dengan nama suara.
Anda harus memilih nama suara dari suara output bawaan.
Contoh ini menyimpan audio output dari model dalam file 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-penutur
Untuk audio multi-pembicara, Anda memerlukan objek multi_speaker_voice_config dengan
setiap pembicara (hingga 2) yang dikonfigurasi sebagai speaker_voice_config.
Anda harus menentukan setiap speaker dengan nama yang sama yang digunakan dalam
prompt:
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" }
]
}'
Mengontrol gaya ucapan dengan perintah
Anda dapat mengontrol gaya, intonasi, aksen, dan kecepatan menggunakan perintah bahasa alami untuk TTS satu penutur dan multi-penutur. Misalnya, dalam perintah satu penutur, Anda dapat mengucapkan:
Say in an spooky whisper:
"By the pricking of my thumbs...
Something wicked this way comes"
Dalam perintah multi-pembicara, berikan nama setiap pembicara dan transkrip yang sesuai kepada model. Anda juga dapat memberikan panduan untuk setiap penutur secara terpisah:
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!
Coba gunakan opsi suara yang sesuai dengan gaya atau emosi yang ingin Anda sampaikan, untuk lebih menekankannya. Misalnya, dalam perintah sebelumnya, keberingasan Enceladus dapat menekankan "lelah" dan "bosan", sementara nada riang Puck dapat melengkapi "bersemangat" dan "bahagia".
Membuat perintah untuk mengonversi ke audio
Model TTS hanya menghasilkan output audio, tetapi Anda dapat menggunakan model lain untuk membuat transkrip terlebih dahulu, lalu meneruskan transkrip tersebut ke model TTS untuk dibacakan.
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();
Pilihan suara
Model TTS mendukung 30 opsi suara berikut di kolom voice_name:
| Zephyr -- Bright | Puck -- Upbeat | Charon -- Informatif |
| Kore -- Firm | Fenrir -- Mudah Terangsang (Excitable) | Leda -- Muda |
| Orus -- Firm | Aoede -- Breezy | Callirrhoe -- Santai |
| Autonoe -- Bright | Enceladus -- Breathy | Iapetus -- Hapus |
| Umbriel -- Mudah bergaul | Algieba -- Smooth | Despina -- Halus (Smooth) |
| Erinome -- Clear | Algenib -- Berbatu | Rasalgethi -- Informatif |
| Laomedeia -- Upbeat | Achernar -- Soft | Alnilam -- Firm |
| Schedar -- Even | Gacrux -- Dewasa | Pulcherrima -- Spontan (Forward) |
| Achird -- Ramah | Zubenelgenubi -- Kasual | Vindemiatrix -- Lembut (Gentle) |
| Sadachbia -- Lively | Sadaltager -- Berpengetahuan | Sulafat -- Hangat |
Anda dapat mendengar semua opsi suara di
Bahasa yang didukung
Model TTS mendeteksi bahasa input secara otomatis. Bahasa berikut didukung:
| Language | Kode BCP-47 | Language | Kode BCP-47 |
|---|---|---|---|
| Arab | ar | Filipino | fil |
| Bangla | bn | Finlandia | fi |
| Belanda | nl | Galisia | gl |
| Inggris | en | Georgia | ka |
| Prancis | fr | Yunani | el |
| Jerman | de | Gujarat | gu |
| Hindi | hi | Kreol Haiti | ht |
| Indonesia | id | Ibrani | dia |
| Italia | it | Hungaria | hu |
| Jepang | ja | Islandia | is |
| Korea | ko | Jawa | jv |
| Marathi | mr | Kannada | kn |
| Polandia | pl | Konkani | kok |
| Portugis | pt | Laos | lo |
| Rumania | ro | Latin | la |
| Rusia | ru | Latvia | lv |
| Spanyol | es | Lituania | lt |
| Tamil | ta | Luksemburg | lb |
| Telugu | te | Makedonia | mk |
| Thai | th | Maithili | mai |
| Turki | tr | Malagasi | mg |
| Ukraina | uk | Melayu | md |
| Vietnam | vi | Malayalam | ml |
| Afrika | af | Mongolia | mn |
| Albania | sq | Nepal | ne |
| Amharik | am | Norwegia, Bokmål | nb |
| Armenia | hy | Norwegia, Nynorsk | nn |
| Azerbaijan | az | Odia | atau |
| Basque | eu | Pashto | ps |
| Belarusia | be | Persia | fa |
| Bulgaria | bg | Punjabi | pa |
| Burma | my | Serbia | sr |
| Katalan | ca | Sindhi | sd |
| Cebuano | ceb | Sinhala | si |
| China, Mandarin | cmn | Slovakia | sk |
| Kroasia | jam | Slovenia | sl |
| Ceko | cs | Swahili | sw |
| Denmark | da | Swedia | sv |
| Estonia | et | Urdu | ur |
Model yang didukung
| Model | Satu penutur | Multi-penutur |
|---|---|---|
| Pratinjau Gemini 3.1 Flash TTS | ✔️ | ✔️ |
| Gemini 2.5 Flash Preview TTS | ✔️ | ✔️ |
| TTS Pratinjau Gemini 2.5 Pro | ✔️ | ✔️ |
Panduan penulisan perintah
Model Text-to-Speech (TTS) Generasi Audio Native Gemini berbeda dengan model TTS konvensional karena menggunakan model bahasa besar yang mengetahui tidak hanya apa yang harus diucapkan, tetapi juga cara mengucapkannya.
Anda dapat menganggap perintah lanjutan sebagai petunjuk sistem yang harus diikuti model. Ini adalah cara untuk memberikan lebih banyak konteks dan kontrol atas performa model.
Untuk mengaktifkan kemampuan ini, pengguna dapat menganggap diri mereka sebagai sutradara yang mengatur adegan untuk pengisi suara virtual. Untuk membuat perintah, sebaiknya pertimbangkan komponen berikut: Profil Audio yang menentukan identitas dan arketipe inti karakter; Deskripsi adegan yang menetapkan lingkungan fisik dan "nuansa" emosional; dan Catatan Sutradara yang menawarkan panduan performa yang lebih presisi terkait gaya, aksen, dan kontrol kecepatan.
Dengan memberikan petunjuk yang bernuansa seperti aksen regional yang tepat, fitur paralinguistik tertentu (misalnya, suara yang berhembus), atau kecepatan, pengguna dapat memanfaatkan kesadaran konteks model untuk menghasilkan performa audio yang sangat dinamis, alami, dan ekspresif. Untuk performa yang optimal, sebaiknya Transkrip dan perintah sutradara selaras, sehingga "siapa yang mengatakannya" cocok dengan "apa yang dikatakan" dan "bagaimana cara mengatakannya".
Tujuan panduan ini adalah untuk memberikan arahan dasar dan memicu ide saat mengembangkan pengalaman audio menggunakan pembuatan audio Gemini TTS. Kami tidak sabar untuk melihat hasil kreasi Anda.
Tag audio
Tag adalah pengubah inline seperti [whispers] atau [laughs] yang memberi Anda kontrol terperinci atas penayangan. Anda dapat menggunakannya untuk mengubah nada, kecepatan, dan
nuansa emosional baris atau bagian transkrip. Anda juga dapat menggunakannya untuk
menambahkan interjeksi dan beberapa suara non-verbal lainnya ke dalam performa, seperti
[cough], [sighs], atau [gasp].
Tidak ada daftar lengkap tentang tag yang berfungsi dan tidak berfungsi. Sebaiknya lakukan eksperimen dengan berbagai emosi dan ekspresi untuk melihat perubahan outputnya.
Jika transkrip Anda tidak dalam bahasa Inggris, untuk hasil terbaik, sebaiknya Anda tetap menggunakan tag audio dalam bahasa Inggris.
Berkreasilah dengan tag audio
Untuk menunjukkan jenis variabilitas yang bisa Anda dapatkan dengan tag audio, berikut adalah serangkaian contoh yang masing-masing mengatakan hal yang sama, tetapi penyampaiannya berubah berdasarkan tag yang digunakan.
Anda dapat mengubah penekanan penyampaian dengan menambahkan tag di awal baris untuk membuat pembicara bersemangat, bosan, atau enggan:
[excitedly]Halo, saya adalah model text-to-speech baru, dan saya dapat mengucapkan kata-kata dengan berbagai cara. Ada yang bisa saya bantu?[bored]Halo, saya adalah model text-to-speech baru…[reluctantly]Halo, saya adalah model text-to-speech baru…
Tag juga dapat digunakan untuk mengubah kecepatan penyampaian, atau untuk menggabungkan kecepatan dengan penekanan:
[very fast]Halo, saya adalah model text-to-speech baru…[very slow]Halo, saya adalah model text-to-speech baru…[sarcastically, one painfully slow word at a time]Halo, saya adalah model text-to-speech baru…
Anda juga memiliki kontrol yang akurat atas bagian tertentu, yang berarti Anda dapat membisikkan satu bagian dan meneriakkan bagian lainnya.
[whispers]Halo, saya adalah model text-to-speech baru,[shouting]dan saya dapat mengucapkan sesuatu dengan berbagai cara.[whispers]Ada yang bisa saya bantu?
Anda juga dapat bereksperimen dengan ide kreatif apa pun yang Anda inginkan:
[like a cartoon dog]Halo, saya adalah model text-to-speech baru…[like dracula]Halo, saya adalah model text-to-speech baru…
Tag yang umum digunakan meliputi:
[amazed] |
[crying] |
[curious] |
[excited] |
[sighs] |
[gasp] |
[giggles] |
[laughs] |
[mischievously] |
[panicked] |
[sarcastic] |
[serious] |
[shouting] |
[tired] |
[trembling] |
[whispers] |
Tag memberikan kontrol cepat atas pengiriman transkrip Anda. Untuk kontrol yang lebih besar, Anda dapat menggabungkannya dengan perintah konteks untuk menetapkan nada dan nuansa keseluruhan performa.
Struktur perintah
Perintah yang efektif idealnya mencakup elemen berikut yang digabungkan untuk menghasilkan performa yang luar biasa:
- Profil Audio - Menetapkan persona untuk suara, menentukan identitas karakter, arketipe, dan karakteristik lainnya seperti usia, latar belakang, dll.
- Adegan - Menyiapkan latar. Mendeskripsikan lingkungan fisik dan "suasana".
- Catatan Sutradara - Panduan performa tempat Anda dapat menguraikan petunjuk mana yang penting untuk diperhatikan oleh talenta virtual Anda. Contohnya adalah gaya, jeda, kecepatan, artikulasi, dan aksen.
- Contoh konteks - Memberi model titik awal kontekstual, sehingga aktor virtual Anda memasuki adegan yang Anda siapkan secara alami.
- Transkrip - Teks yang akan diucapkan oleh model. Untuk performa terbaik, ingatlah bahwa topik transkrip dan gaya penulisan harus berkorelasi dengan petunjuk yang Anda berikan.
- Tag audio - Pengubah yang dapat Anda masukkan ke dalam transkrip untuk mengubah cara penyampaian bagian teks tersebut, seperti
[whispers]atau[shouting].
Contoh perintah lengkap:
# 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!
Strategi Penulisan Prompt yang Mendetail
Uraikan setiap elemen perintah sebagai berikut:
Profil Audio
Jelaskan secara singkat persona karakter.
- Nama. Memberi nama karakter akan membantu menyatukan model dan performa yang ketat. Sebutkan karakter dengan namanya saat mengatur latar dan konteks
- Peran. Identitas dan arketipe inti karakter yang ditampilkan dalam adegan. Misalnya, DJ Radio, Podcaster, Reporter berita, dll.
Contoh:
# AUDIO PROFILE: Jaz R.
## "The Morning Hype"
# AUDIO PROFILE: Monica A.
## "The Beauty Influencer"
Scene
Tetapkan konteks untuk adegan, termasuk lokasi, suasana, dan detail lingkungan yang menentukan nuansa dan suasana. Jelaskan apa yang terjadi di sekitar karakter dan dampaknya. Adegan memberikan konteks lingkungan untuk seluruh interaksi dan memandu performa akting secara halus dan alami.
Contoh:
## 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."
Catatan sutradara
Bagian penting ini mencakup panduan performa tertentu. Anda dapat melewati semua elemen lainnya, tetapi sebaiknya sertakan elemen ini.
Tentukan hanya hal yang penting untuk performa, dengan berhati-hati agar tidak menspesifikasi secara berlebihan. Terlalu banyak aturan ketat akan membatasi kreativitas model dan dapat menghasilkan performa yang lebih buruk. Seimbangkan deskripsi peran dan adegan dengan aturan performa tertentu.
Arah yang paling umum adalah Gaya, Tempo, dan Aksen, tetapi model tidak terbatas pada arah ini, dan tidak memerlukannya. Jangan ragu untuk menyertakan petunjuk kustom untuk mencakup detail tambahan yang penting bagi performa Anda, dan berikan detail sebanyak atau sesedikit yang diperlukan.
Contoh:
### 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 |
Gaya:
Menetapkan intonasi dan Gaya ucapan yang dihasilkan. Sertakan hal-hal seperti bersemangat, penuh energi, santai, bosan, dll. untuk memandu performa. Berikan deskripsi dan berikan detail sebanyak yang diperlukan: "Antusiasme yang menular. Pendengar harus merasa seperti mereka adalah bagian dari acara komunitas yang besar dan menarik." lebih baik daripada mengatakan "bersemangat dan antusias".
Anda bahkan dapat mencoba istilah yang populer di industri voiceover, seperti "senyum vokal". Anda dapat menyusun karakteristik gaya sebanyak yang Anda inginkan.
Contoh:
Emosi Sederhana
DIRECTORS NOTES
...
Style: Frustrated and angry developer who can't get the build to run.
...
Lebih dalam
DIRECTORS NOTES
...
Style: Sassy GenZ beauty YouTuber, who mostly creates content for YouTube Shorts.
...
Kompleks
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").
Aksen:
Jelaskan aksen yang dipilih. Makin spesifik perintah Anda, makin baik hasilnya. Misalnya, gunakan "Aksen Inggris Britania seperti yang terdengar di Croydon, Inggris" versus "Aksen Inggris Britania".
Contoh:
### DIRECTORS NOTES
...
Accent: Southern california valley girl from Laguna Beach
...
### DIRECTORS NOTES
...
Accent: Jaz is a from Brixton, London
...
Kecepatan:
Kecepatan keseluruhan dan variasi kecepatan di seluruh bagian.
Contoh:
Sederhana
### DIRECTORS NOTES
...
Pacing: Speak as fast as possible
...
Lebih Dalam
### DIRECTORS NOTES
...
Pacing: Speaks at a faster, energetic pace, keeping up with fast paced music.
...
Kompleks
### DIRECTORS NOTES
...
Pacing: The "Drift": The tempo is incredibly slow and liquid. Words bleed into each other. There is zero urgency.
...
Coba deh
Coba sendiri beberapa contoh ini di Aplikasi TTS dan biarkan Gemini menempatkan Anda di kursi sutradara. Ingatlah tips berikut untuk menghasilkan performa vokal yang luar biasa:
- Ingatlah untuk menjaga seluruh perintah tetap koheren – skrip dan arahan saling terkait dalam menciptakan performa yang hebat.
- Anda tidak perlu menjelaskan semuanya, terkadang memberikan ruang bagi model untuk mengisi kekosongan akan membantu kealamian. (Sama seperti aktor berbakat)
- Jika Anda merasa buntu, minta bantuan Gemini untuk menyusun naskah atau penampilan Anda.
Batasan
- Model TTS hanya dapat menerima input teks dan menghasilkan output audio.
- Sesi TTS memiliki batas jendela konteks sebesar 32 ribu token.
- Tinjau bagian Bahasa untuk mengetahui dukungan bahasa.
- TTS tidak mendukung streaming.
Batasan berikut berlaku khusus saat menggunakan model Gemini 3.1 Flash TTS Preview untuk pembuatan ucapan:
- Suara tidak konsisten dengan petunjuk perintah: Output model mungkin tidak selalu cocok dengan speaker yang dipilih, sehingga audio terdengar berbeda dari yang diharapkan. Untuk menghindari nada suara yang tidak cocok (seperti suara laki-laki berat yang mencoba berbicara seperti gadis muda), pastikan nada dan konteks tertulis perintah Anda selaras secara alami dengan profil penutur yang dipilih.
- Kualitas output yang lebih panjang: Kualitas dan konsistensi ucapan dapat mulai berubah dengan output yang dihasilkan yang lebih panjang dari beberapa menit. Sebaiknya bagi transkrip Anda menjadi beberapa bagian yang lebih kecil.
- Token teks sesekali ditampilkan: Model terkadang menampilkan token teks, bukan token audio, sehingga menyebabkan server gagal memproses permintaan dengan error
500. Karena hal ini terjadi secara acak dalam persentase permintaan yang sangat kecil, Anda harus menerapkan logika coba lagi otomatis di aplikasi Anda untuk menanganinya. - Penolakan palsu pengklasifikasi perintah: Perintah yang tidak jelas dapat gagal memicu pengklasifikasi sintesis ucapan, sehingga permintaan ditolak (
PROHIBITED_CONTENT) atau menyebabkan model membacakan petunjuk gaya dan catatan sutradara Anda. Validasi perintah Anda dengan menambahkan pembuka yang jelas yang menginstruksikan model untuk menyintesis ucapan, dan secara eksplisit memberi label di mana transkrip ucapan yang sebenarnya dimulai.
Langkah berikutnya
- Live API Gemini menawarkan opsi pembuatan audio interaktif yang dapat Anda selingi dengan modalitas lain.
- Untuk bekerja dengan input audio, buka panduan Pemahaman audio.