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 input dan output multimodal, serta audio interaktif dan tidak terstruktur. 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 cermat, seperti pembuatan podcast atau buku audio.

Panduan ini menunjukkan cara membuat audio satu pembicara dan beberapa 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 perlu menguji model TTS Gemini di AI Studio sebelum mulai membangun.

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
import base64

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_format={"type": "audio"},
    generation_config={
        "speech_config": [
            {"voice": "Kore"}
        ]
    }
)

wave_file('out.wav', base64.b64decode(interaction.output_audio.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