Gemini API, टेक्स्ट इनपुट को एक या एक से ज़्यादा स्पीकर वाले ऑडियो में बदल सकता है. इसके लिए, Gemini की टेक्स्ट को बोली में बदलने (टीटीएस) की सुविधा का इस्तेमाल किया जाता है. लिखे गए शब्दों को सुनने की सुविधा (टीटीएस) को कंट्रोल किया जा सकता है. इसका मतलब है कि बातचीत को स्ट्रक्चर करने और ऑडियो की स्टाइल, उच्चारण, रफ़्तार, और टोन को गाइड करने के लिए, नैचुरल लैंग्वेज का इस्तेमाल किया जा सकता है.
टीटीएस की सुविधा, Live API के ज़रिए उपलब्ध कराई गई स्पीच जनरेशन की सुविधा से अलग है. इसे इंटरैक्टिव, अनस्ट्रक्चर्ड ऑडियो, और मल्टीमॉडल इनपुट और आउटपुट के लिए डिज़ाइन किया गया है. लाइव एपीआई, बातचीत के कॉन्टेक्स्ट को डाइनैमिक तरीके से समझने में बेहतर है. वहीं, Gemini API के ज़रिए टीटीएस की सुविधा, उन स्थितियों के लिए तैयार की गई है जिनमें स्टाइल और आवाज़ पर बारीकी से कंट्रोल करने के साथ-साथ, सटीक टेक्स्ट सुनाने की ज़रूरत होती है. जैसे, पॉडकास्ट या ऑडियो बुक जनरेट करना.
इस गाइड में, टेक्स्ट से एक स्पीकर और एक से ज़्यादा स्पीकर वाला ऑडियो जनरेट करने का तरीका बताया गया है.
शुरू करने से पहले
पक्का करें कि आपने Gemini 2.5 मॉडल के ऐसे वैरिएंट का इस्तेमाल किया हो जिसमें Gemini की टेक्स्ट-टू-स्पीच (टीटीएस) की सुविधा उपलब्ध हो. इसके बारे में साथ काम करने वाले मॉडल सेक्शन में बताया गया है. सबसे अच्छे नतीजों के लिए, यह तय करें कि आपके इस्तेमाल के हिसाब से कौनसा मॉडल सबसे सही है.
ऐप्लिकेशन बनाना शुरू करने से पहले, AI Studio में Gemini के टीटीएस मॉडल को टेस्ट करना आपके लिए फ़ायदेमंद हो सकता है.
एक व्यक्ति की आवाज़ में टीटीएस
टेक्स्ट को एक स्पीकर वाले ऑडियो में बदलने के लिए, रिस्पॉन्स मोड को "ऑडियो" पर सेट करें. इसके बाद, आवाज़ के नाम के साथ speech_config ऑब्जेक्ट पास करें.
आपको पहले से मौजूद आउटपुट की आवाज़ों में से किसी एक को चुनना होगा.
इस उदाहरण में, मॉडल से मिले आउटपुट ऑडियो को वेव फ़ाइल में सेव किया गया है:
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('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();
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_format": {
"type": "audio"
},
"generation_config": {
"speech_config": [
{ "voice": "Kore" }
]
}
}'
जनरेट किए गए ऑडियो डेटा को वापस पाने के लिए, interaction.output_audio
प्रॉपर्टी का इस्तेमाल किया जा सकता है. यह प्रॉपर्टी, जनरेट किए गए आखिरी ऑडियो ब्लॉक को वापस लाती है. सुविधा से जुड़ी प्रॉपर्टी के बारे में ज़्यादा जानने के लिए, इंटरैक्शन की खास जानकारी देखें.
एक से ज़्यादा लोगों की आवाज़ में टीटीएस
एक से ज़्यादा स्पीकर से ऑडियो चलाने के लिए, आपको multi_speaker_voice_config ऑब्जेक्ट की ज़रूरत होगी. इसमें हर स्पीकर (दो तक) को speaker_voice_config के तौर पर कॉन्फ़िगर किया गया हो.
आपको हर speaker को उन नामों से तय करना होगा जिनका इस्तेमाल प्रॉम्प्ट में किया गया है:
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()
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_format={"type": "audio"},
generation_config={
"speech_config": [
{"speaker": "Joe", "voice": "Kore"},
{"speaker": "Jane", "voice":