Gemini API dapat mengubah input teks menjadi audio satu penutur atau multi-penutur menggunakan kemampuan pembuatan text-to-speech (TTS) bawaan. 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 gaya dan suara yang terperinci, 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) bawaan, 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 perlu menguji model TTS Gemini 2.5 di AI Studio sebelum mulai membangun.
Text-to-speech satu pembicara
Untuk mengonversi teks menjadi audio satu penutur, tetapkan modalitas respons ke "audio",
dan teruskan objek SpeechConfig dengan VoiceConfig yang ditetapkan.
Anda harus memilih nama suara dari suara output bawaan.
Contoh ini menyimpan audio output dari model dalam file wave:
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
Text-to-speech multi-penutur
Untuk audio multi-pembicara, Anda memerlukan objek MultiSpeakerVoiceConfig dengan
setiap pembicara (hingga 2) yang dikonfigurasi sebagai SpeakerVoiceConfig.
Anda harus menentukan setiap speaker dengan nama yang sama yang digunakan dalam
prompt:
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
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
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();
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 -- Clear |
| Umbriel -- Santai | 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 AI Studio.
Bahasa yang didukung
Model TTS mendeteksi bahasa input secara otomatis. Fitur ini mendukung 24 bahasa berikut:
| Language | Kode BCP-47 | Language | Kode BCP-47 |
|---|---|---|---|
| Arab (Mesir) | ar-EG |
Jerman (Jerman) | de-DE |
| Inggris (AS) | en-US |
Spanyol (Amerika Serikat) | es-US |
| Prancis (Prancis) | fr-FR |
Hindi (India) | hi-IN |
| Indonesia (Indonesia) | id-ID |
Italia (Italia) | it-IT |
| Jepang (Jepang) | ja-JP |
Korea (Korea) | ko-KR |
| Portugis (Brasil) | pt-BR |
Rusia (Rusia) | ru-RU |
| Belanda (Belanda) | nl-NL |
Polandia (Polandia) | pl-PL |
| Thai (Thailand) | th-TH |
Turki (Turki) | tr-TR |
| Vietnam (Vietnam) | vi-VN |
Rumania (Rumania) | ro-RO |
| Ukraina (Ukraina) | uk-UA |
Bengali (Bangladesh) | bn-BD |
| Inggris (India) | Paket en-IN & hi-IN |
Marathi (India) | mr-IN |
| Tamil (India) | ta-IN |
Telugu (India) | te-IN |
Model yang didukung
| Model | Satu penutur | Multi-penutur |
|---|---|---|
| Gemini 2.5 Flash Preview TTS | ✔️ | ✔️ |
| Gemini 2.5 Pro Preview TTS | ✔️ | ✔️ |
Batasan
- Model TTS hanya dapat menerima input teks dan menghasilkan output audio.
- Sesi TTS memiliki batas jendela konteks 32 ribu token.
- Tinjau bagian Bahasa untuk mengetahui dukungan bahasa.
Panduan penulisan perintah
Model Gemini Native Audio Generation Text-to-Speech (TTS) berbeda dengan model TTS tradisional karena menggunakan model bahasa besar yang mengetahui tidak hanya apa yang harus diucapkan, tetapi juga cara mengucapkannya.
Untuk mengaktifkan kemampuan ini, pengguna dapat menganggap diri mereka sebagai sutradara yang menyiapkan 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 kemampuan model dalam memahami konteks 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 mendasar dan memicu ide saat mengembangkan pengalaman audio menggunakan pembuatan audio Gemini TTS. Kami tidak sabar ingin melihat hasil kreasi Anda.
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, pernapasan, 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 sesuai dengan petunjuk yang Anda berikan.
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
Mari kita uraikan setiap elemen perintah.
Profil Audio
Jelaskan secara singkat persona karakter.
- Nama. Memberi nama karakter akan membantu membumikan model dan menyatukan performa yang ketat. Sebutkan karakter dengan namanya saat mengatur adegan dan konteks
- Peran. Identitas inti dan arketipe 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 hati, dan detail lingkungan yang menentukan nuansa dan suasana. Jelaskan apa yang terjadi di sekitar karakter dan bagaimana hal itu memengaruhi mereka. Adegan ini memberikan konteks lingkungan untuk seluruh interaksi dan memandu performa akting dengan cara yang 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, dan berhati-hatilah agar tidak terlalu banyak menentukan. 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, atau mewajibkannya. Anda dapat menyertakan petunjuk kustom untuk mencakup detail tambahan yang penting bagi performa Anda, dan memberikan 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 nada dan Gaya ucapan yang dihasilkan. Sertakan hal-hal seperti bersemangat, penuh energi, santai, bosan, dll. untuk memandu performa. Berikan deskripsi dan detail sebanyak yang diperlukan: "Antusiasme yang menular. Pendengar harus merasa seperti mereka adalah bagian dari acara komunitas yang besar dan menarik." lebih efektif daripada hanya 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 diinginkan. Makin spesifik perintah Anda, makin baik hasilnya. Misalnya, gunakan "Aksen Inggris British seperti yang terdengar di Croydon, Inggris" vs. "Aksen British".
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 AI Studio, mainkan Aplikasi TTS kami, 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 kealamiannya. (Sama seperti aktor berbakat)
- Jika Anda merasa buntu, minta bantuan Gemini untuk menyusun naskah atau penampilan Anda.
Langkah berikutnya
- Coba cookbook pembuatan audio.
- Live API Gemini menawarkan opsi pembuatan audio interaktif yang dapat Anda selingi dengan modalitas lain.
- Untuk mempelajari cara menggunakan input audio, buka panduan Pemahaman audio.