تولید متن به گفتار (TTS)

رابط برنامه‌نویسی نرم‌افزار Gemini می‌تواند با استفاده از قابلیت‌های تولید متن به گفتار (TTS) در Gemini، ورودی متن را به صدای تک‌گوینده یا چندگوینده تبدیل کند. تولید متن به گفتار (TTS) قابل کنترل است، به این معنی که می‌توانید از زبان طبیعی برای ساختاردهی تعاملات و هدایت سبک ، لهجه ، سرعت و لحن صدا استفاده کنید.

قابلیت TTS با تولید گفتار ارائه شده از طریق Live API که برای ورودی‌ها و خروجی‌های تعاملی، بدون ساختار و چندوجهی طراحی شده است، متفاوت است. در حالی که Live API در زمینه‌های مکالمه پویا برتری دارد، TTS از طریق Gemini API برای سناریوهایی که نیاز به قرائت دقیق متن با کنترل دقیق بر سبک و صدا دارند، مانند تولید پادکست یا کتاب صوتی، مناسب است.

این راهنما به شما نشان می‌دهد که چگونه از متن، صدای تک‌گوینده و چندگوینده تولید کنید.

قبل از اینکه شروع کنی

مطمئن شوید که از مدل Gemini 2.5 با قابلیت تبدیل متن به گفتار (TTS) Gemini، همانطور که در بخش مدل‌های پشتیبانی‌شده ذکر شده است، استفاده می‌کنید. برای نتایج بهینه، در نظر بگیرید که کدام مدل به بهترین وجه با مورد استفاده خاص شما مطابقت دارد.

ممکن است قبل از شروع ساخت، آزمایش مدل‌های Gemini TTS در AI Studio مفید باشد.

TTS تک بلندگو

برای تبدیل متن به صدای تک‌گوینده، حالت پاسخ را روی "audio" تنظیم کنید و یک شیء speech_config با نام صدا به آن ارسال کنید. باید نام صدا را از میان صداهای خروجی از پیش ساخته شده انتخاب کنید.

این مثال صدای خروجی از مدل را در یک فایل wave ذخیره می‌کند:

پایتون

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

جاوا اسکریپت

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

   const audioBuffer = Buffer.from(interaction.output_audio.data, 'base64');

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

استراحت

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

شما می‌توانید داده‌های صوتی تولید شده را با استفاده از ویژگی interaction.output_audio بازیابی کنید، که آخرین بلوک صوتی تولید شده را برمی‌گرداند. برای جزئیات بیشتر در مورد ویژگی‌های مفید، به نمای کلی Interactions مراجعه کنید.

TTS چند بلندگو

برای صدای چند بلندگو، به یک شیء multi_speaker_voice_config نیاز دارید که هر بلندگو (حداکثر ۲) به صورت speaker_voice_config پیکربندی شده باشد. باید هر speaker با همان نام‌های استفاده شده در اعلان تعریف کنید:

پایتون

from google import genai
import wave
import