টেক্সট-টু-স্পিচ জেনারেশন (TTS)

জেমিনি এপিআই, জেমিনির টেক্সট-টু-স্পিচ (টিটিএস) তৈরির ক্ষমতা ব্যবহার করে টেক্সট ইনপুটকে একক বক্তা বা একাধিক বক্তার অডিওতে রূপান্তর করতে পারে। টেক্সট-টু-স্পিচ (টিটিএস) তৈরি প্রক্রিয়াটি নিয়ন্ত্রণযোগ্য , যার অর্থ হলো আপনি স্বাভাবিক ভাষা ব্যবহার করে কথোপকথনের কাঠামো তৈরি করতে এবং অডিওর ধরন , উচ্চারণ , গতিসুর নিয়ন্ত্রণ করতে পারেন।

টিটিএস (TTS) সক্ষমতাটি লাইভ এপিআই (Live API) -এর মাধ্যমে প্রদত্ত স্পিচ জেনারেশন থেকে ভিন্ন, যা ইন্টারেক্টিভ, কাঠামোবিহীন অডিও এবং মাল্টিমোডাল ইনপুট ও আউটপুটের জন্য ডিজাইন করা হয়েছে। যেখানে লাইভ এপিআই গতিশীল কথোপকথনের প্রেক্ষাপটে বিশেষভাবে পারদর্শী, সেখানে জেমিনি এপিআই (Gemini API)-এর মাধ্যমে টিটিএস এমন সব পরিস্থিতির জন্য বিশেষভাবে তৈরি করা হয়েছে যেখানে স্টাইল ও সাউন্ডের উপর সূক্ষ্ম নিয়ন্ত্রণের সাথে হুবহু টেক্সট আবৃত্তির প্রয়োজন হয়, যেমন পডকাস্ট বা অডিওবুক তৈরি।

এই নির্দেশিকাটি আপনাকে দেখাবে কীভাবে টেক্সট থেকে একক-বক্তা এবং একাধিক-বক্তার অডিও তৈরি করতে হয়।

শুরু করার আগে

নিশ্চিত করুন যে আপনি ‘সমর্থিত মডেল’ বিভাগে তালিকাভুক্ত জেমিনি টেক্সট-টু-স্পিচ (টিটিএস) সক্ষমতা সম্পন্ন একটি জেমিনি মডেল ভ্যারিয়েন্ট ব্যবহার করছেন। সর্বোত্তম ফলাফলের জন্য, বিবেচনা করুন কোন মডেলটি আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে সবচেয়ে উপযুক্ত।

বিল্ড করা শুরু করার আগে এআই স্টুডিওতে জেমিনি টিটিএস মডেলগুলো পরীক্ষা করে নিলে তা আপনার জন্য সহায়ক হতে পারে।

একক-স্পিকার টিটিএস

টেক্সটকে একক-বক্তার অডিওতে রূপান্তর করতে, রেসপন্স মোডালিটি "অডিও"-তে সেট করুন এবং VoiceConfig সেট করা একটি SpeechConfig অবজেক্ট পাস করুন। আপনাকে আগে থেকে তৈরি আউটপুট ভয়েসগুলো থেকে একটি ভয়েসের নাম বেছে নিতে হবে।

এই উদাহরণটি মডেল থেকে প্রাপ্ত আউটপুট অডিও একটি ওয়েভ ফাইলে সংরক্ষণ করে:

পাইথন

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-3.1-flash-tts-preview",
   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

জাভাস্ক্রিপ্ট

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-3.1-flash-tts-preview",
      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();

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-tts-preview: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-3.1-flash-tts-preview",
    }' | 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

মাল্টি-স্পিকার টিটিএস

একাধিক স্পিকারের অডিওর জন্য, আপনার একটি MultiSpeakerVoiceConfig অবজেক্টের প্রয়োজন হবে, যেখানে প্রতিটি স্পিকারকে (সর্বোচ্চ ২টি) একটি SpeakerVoiceConfig হিসেবে কনফিগার করা থাকবে। আপনাকে প্রতিটি speaker প্রম্পটে ব্যবহৃত একই নাম দিয়ে সংজ্ঞায়িত করতে হবে:

পাইথন

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-3.1-flash-tts-preview",
   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

জাভাস্ক্রিপ্ট

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-3.1-flash-tts-preview",
      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();

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-tts-preview: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-3.1-flash-tts-preview",
}' | 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

প্রম্পটের মাধ্যমে কথা বলার ধরণ নিয়ন্ত্রণ করা

আপনি একক- এবং একাধিক-বক্তা উভয়ের টিটিএস (TTS)-এর জন্য স্বাভাবিক ভাষার প্রম্পট বা অডিও ট্যাগ ব্যবহার করে বলার ধরণ, সুর, উচ্চারণভঙ্গি এবং গতি নিয়ন্ত্রণ করতে পারেন। উদাহরণস্বরূপ, একক-বক্তার প্রম্পটে, আপনি বলতে পারেন:

Say in an spooky voice:
"By the pricking of my thumbs... [short pause]
[whisper] Something wicked this way comes"

একাধিক বক্তা থাকলে, মডেলকে প্রত্যেক বক্তার নাম এবং সংশ্লিষ্ট ট্রান্সক্রিপ্ট প্রদান করুন। আপনি প্রত্যেক বক্তাকে আলাদাভাবেও নির্দেশনা দিতে পারেন:

Make Speaker1 sound tired and bored, and Speaker2 sound excited and happy:

Speaker1: So... [yawn] what's on the agenda today?
Speaker2: You're never going to guess!

আপনি যে ভাব বা আবেগ প্রকাশ করতে চান, সেটিকে আরও জোরালোভাবে তুলে ধরার জন্য তার সাথে মানানসই কণ্ঠস্বর ব্যবহার করে দেখুন। উদাহরণস্বরূপ, আগের প্রশ্নটিতে এনসেলাডাসের শ্বাসপ্রশ্বাসের মতো স্বর "ক্লান্ত" এবং "বিরক্ত" ভাবকে ফুটিয়ে তুলতে পারে, অন্যদিকে পাকের উচ্ছল কণ্ঠস্বর "উত্তেজিত" এবং "খুশি" ভাবের পরিপূরক হতে পারে।

অডিওতে রূপান্তর করার জন্য একটি প্রম্পট তৈরি করা হচ্ছে

টিটিএস মডেলগুলো শুধু অডিও আউটপুট দেয়, কিন্তু আপনি অন্য মডেল ব্যবহার করে প্রথমে একটি ট্রান্সক্রিপ্ট তৈরি করতে পারেন, তারপর সেই ট্রান্সক্রিপ্টটি টিটিএস মডেলে পাঠিয়ে উচ্চস্বরে পড়াতে পারেন।

পাইথন

from google import genai
from google.genai import types

client = genai.Client()

transcript = client.models.generate_content(
   model="gemini-3-flash-preview",
   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-3.1-flash-tts-preview",
   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 handle audio output

জাভাস্ক্রিপ্ট

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {

const transcript = await ai.models.generateContent({
   model: "gemini-3-flash-preview",
   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-3.1-flash-tts-preview",
   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();

ভয়েস বিকল্পগুলি

TTS মডেলগুলো voice_name ফিল্ডে নিম্নলিখিত ৩০টি ভয়েস অপশন সমর্থন করে:

জেফির -- ব্রাইট পাক -- উচ্ছ্বসিত চারন -- তথ্যমূলক
কোর -- ফার্ম ফেনরির -- উত্তেজিত লেডা -- যুবতী
ওরুস -- ফার্ম Aoede -- Breezy ক্যালিরো -- সহজ-সরল
Autonoe -- Bright এনসেলাডাস -- শ্বাসপ্রশ্বাসযুক্ত আইপেটাস -- পরিষ্কার
উমব্রিয়েল -- সহজ-সরল আলজিবা -- মসৃণ ডেসপিনা -- মসৃণ
এরিনোম -- পরিষ্কার অ্যালজেনিব -- গ্র্যাভেলি রসলগেথি -- তথ্যমূলক
লাওমেডিয়া -- উচ্ছ্বসিত আখেরনার -- নরম আলনিলাম -- ফার্ম
শেডার -- এমনকি গ্যাক্রাক্স -- পরিপক্ক পুলচেরিমা -- ফরোয়ার্ড
আচির্ড -- বন্ধুত্বপূর্ণ Zubenelgenubi -- Casual ভিন্ডেমিয়াট্রিক্স -- কোমল
সাদাচবিয়া -- প্রাণবন্ত সাদালটেগার -- জ্ঞানী সুলাফাত -- উষ্ণ

আপনি এআই স্টুডিও -তে সমস্ত ভয়েস অপশন শুনতে পারবেন।

সমর্থিত ভাষা

টিটিএস মডেলগুলো ইনপুট ভাষা স্বয়ংক্রিয়ভাবে শনাক্ত করে। নিম্নলিখিত ভাষাগুলো সমর্থিত:

ভাষা বিসিপি-৪৭ কোড ভাষা বিসিপি-৪৭ কোড
আরবি আর ফিলিপিনো ফিল
বাংলা বিএন ফিনিশ ফি
ডাচ এনএল গ্যালিসিয়ান জিএল
ইংরেজি ইংরেজি জর্জিয়ান কা
ফরাসি ফ্র গ্রীক এল
জার্মান ডি গুজরাটি গু
হিন্দি হাই হাইতিয়ান ক্রেওল এইচটি
ইন্দোনেশিয়ান আইডি হিব্রু সে
ইতালীয় এটা হাঙ্গেরীয় হু
জাপানি জা আইসল্যান্ডীয় হয়
কোরিয়ান কো জাভানিজ jv
মারাঠি মিঃ কন্নড় কেএন
পোলিশ পিএল কোঙ্কনি কোক
পর্তুগিজ পিটি লাও লো
রোমানিয়ান রো ল্যাটিন লা
রাশিয়ান রু লাতভিয়ান এলভি
স্প্যানিশ ইএস লিথুয়ানিয়ান এলটি
তামিল তা লুক্সেমবার্গীয় পাউন্ড
তেলুগু তে ম্যাসিডোনিয়ান এমকে
থাই তম মৈথিলী মাই
তুর্কি ট্র মালাগাসি মিলিগ্রাম
ইউক্রেনীয় যুক্তরাজ্য মালয় এমএস
ভিয়েতনামী vi মালয়ালম এমএল
আফ্রিকান আফ মঙ্গোলীয় এমএন
আলবেনিয়ান বর্গ নেপালি নে
আমহারিক সকাল নরওয়েজিয়ান, বোকমাল nb
আর্মেনীয় হাই নরওয়েজিয়ান, নিনরস্ক এনএন
আজারবাইজানীয় আজ ওড়িয়া অথবা
বাস্ক ইউরোপীয় ইউনিয়ন পশতু পিএস
বেলারুশীয় হতে ফার্সি ফা
বুলগেরীয় বিজি পাঞ্জাবি পা
বর্মী আমার সার্বিয়ান এসআর
কাতালান ca সিন্ধি এসডি
সেবুয়ানো সেব সিংহলী সি
চীনা, ম্যান্ডারিন সিএমএন স্লোভাক এসকে
ক্রোয়েশীয় এইচআর স্লোভেনীয় এসএল
চেক সিএস সোয়াহিলি এসডব্লিউ
ড্যানিশ দা সুইডিশ এসভি
এস্তোনিয়ান এবং উর্দু উর

সমর্থিত মডেল

মডেল একক বক্তা মাল্টিস্পিকার
জেমিনি ৩.১ ফ্ল্যাশ টিটিএস প্রিভিউ ✔️ ✔️
জেমিনি ২.৫ ফ্ল্যাশ প্রিভিউ টিটিএস ✔️ ✔️
জেমিনি ২.৫ প্রো প্রিভিউ টিটিএস ✔️ ✔️

প্রম্পটিং গাইড

জেমিনি নেটিভ অডিও জেনারেশন টেক্সট-টু-স্পিচ (টিটিএস) মডেলটি একটি বৃহৎ ল্যাঙ্গুয়েজ মডেল ব্যবহারের মাধ্যমে প্রচলিত টিটিএস মডেলগুলো থেকে নিজেকে আলাদা করে, যেটি শুধু কী বলতে হবে তাই নয়, বরং কীভাবে বলতে হবে তাও জানে।

ইনস্টল করার সাথে সাথেই, মডেলটি স্বাভাবিকভাবেই একটি ট্রান্সক্রিপ্ট ব্যাখ্যা করবে এবং আপনার কথাগুলো কীভাবে বলা উচিত তা নির্ধারণ করবে। কোনো অতিরিক্ত নির্দেশনা ছাড়া সাধারণ ট্রান্সক্রিপ্টগুলো স্বাভাবিক শোনায়। তবে জেমিনি টিটিএস-এর সাথে এমন কিছু টুলও রয়েছে যা ব্যবহার করে আপনি এটিকে নিয়ন্ত্রণ করতে পারবেন।

এই নির্দেশিকার উদ্দেশ্য হলো অডিও অভিজ্ঞতা তৈরির ক্ষেত্রে মৌলিক দিকনির্দেশনা দেওয়া এবং নতুন ধারণার জন্ম দেওয়া। আমরা দ্রুত ইনলাইন নিয়ন্ত্রণের জন্য ট্যাগ দিয়ে শুরু করব, এবং তারপর পূর্ণাঙ্গ পারফরম্যান্স নির্দেশনার জন্য উন্নত প্রম্পটিং কাঠামো নিয়ে আলোচনা করব।

অডিও ট্যাগ

ট্যাগ হলো [whispers] বা [laughs] -এর মতো ইনলাইন মডিফায়ার, যা আপনাকে উপস্থাপনার ওপর সূক্ষ্ম নিয়ন্ত্রণ দেয়। ট্রান্সক্রিপ্টের কোনো লাইন বা অংশের সুর, গতি এবং আবেগীয় আবহ পরিবর্তন করতে আপনি এগুলো ব্যবহার করতে পারেন। এছাড়াও, পারফরম্যান্সে বিস্ময়সূচক শব্দ এবং আরও কিছু অবাচনিক ধ্বনি, যেমন [cough] , [sighs] বা [gasp] যোগ করতেও আপনি এগুলো ব্যবহার করতে পারেন।

কোন ট্যাগগুলো কাজ করে আর কোনগুলো করে না, তার কোনো সম্পূর্ণ তালিকা নেই; আউটপুটে কী পরিবর্তন আসে তা দেখতে আমরা বিভিন্ন আবেগ ও অভিব্যক্তি নিয়ে পরীক্ষা করার পরামর্শ দিই।

আপনার ট্রান্সক্রিপ্টটি ইংরেজিতে না থাকলেও, সর্বোত্তম ফলাফলের জন্য আমরা আপনাকে ইংরেজি অডিও ট্যাগ ব্যবহার করার পরামর্শ দিই।

অডিও ট্যাগ নিয়ে সৃজনশীল হোন

অডিও ট্যাগের মাধ্যমে কী ধরনের বৈচিত্র্য আনা যায় তা দেখানোর জন্য, এখানে কয়েকটি উদাহরণ দেওয়া হলো, যেগুলোর প্রতিটিতেই একই কথা বলা হয়েছে, কিন্তু ব্যবহৃত ট্যাগের ওপর ভিত্তি করে বলার ধরণ বদলে গেছে।

বক্তাকে উত্তেজিত, বিরক্ত বা অনিচ্ছুক করে তোলার জন্য, লাইনের শুরুতে ট্যাগ যোগ করে আপনি তার বলার ভঙ্গির জোর পরিবর্তন করতে পারেন:

  • [excitedly] হ্যালো, আমি একটি নতুন টেক্সট-টু-স্পিচ মডেল, এবং আমি নানাভাবে কথা বলতে পারি। আজ আমি আপনাকে কীভাবে সাহায্য করতে পারি?
  • [bored] হ্যালো, আমি একজন নতুন টেক্সট-টু-স্পিচ মডেল…
  • [reluctantly] হ্যালো, আমি একজন নতুন টেক্সট-টু-স্পিচ মডেল…

উপস্থাপনার গতি পরিবর্তন করতে, অথবা গতির সাথে জোর দেওয়ার সমন্বয় ঘটাতেও ট্যাগ ব্যবহার করা যেতে পারে:

  • [very fast] হ্যালো, আমি একজন নতুন টেক্সট-টু-স্পিচ মডেল…
  • [very slow] হ্যালো, আমি একজন নতুন টেক্সট-টু-স্পিচ মডেল…
  • [sarcastically, one painfully slow word at a time] হ্যালো, আমি একজন নতুন টেক্সট-টু-স্পিচ মডেল…

এছাড়াও নির্দিষ্ট অংশের ওপর আপনার নিখুঁত নিয়ন্ত্রণ রয়েছে, অর্থাৎ আপনি এক অংশ ফিসফিস করে বলতে পারেন এবং অন্য অংশ চিৎকার করে বলতে পারেন।

  • [whispers] হ্যালো, আমি একজন নতুন টেক্সট-টু-স্পিচ মডেল, [shouting] এবং আমি অনেক ভিন্ন উপায়ে কথা বলতে পারি। [whispers] আজ আমি আপনাকে কীভাবে সাহায্য করতে পারি?

আপনি আপনার ইচ্ছামতো যেকোনো সৃজনশীল ধারণা নিয়েও পরীক্ষা-নিরীক্ষা করতে পারেন:

  • [like a cartoon dog] হ্যালো, আমি একটি নতুন টেক্সট-টু-স্পিচ মডেল…
  • [like dracula] হ্যালো, আমি একজন নতুন টেক্সট-টু-স্পিচ মডেল…

সাধারণত ব্যবহৃত ট্যাগগুলির মধ্যে রয়েছে:

[amazed] [crying] [curious] [excited]
[sighs] [gasp] [giggles] [laughs]
[mischievously] [panicked] [sarcastic] [serious]
[shouting] [tired] [trembling] [whispers]

ট্যাগ আপনার ট্রান্সক্রিপ্টের উপস্থাপনার উপর দ্রুত ও সহজ নিয়ন্ত্রণ দেয়। আরও বেশি নিয়ন্ত্রণের জন্য, আপনি পারফরম্যান্সের সামগ্রিক সুর ও আবহ নির্ধারণ করতে এগুলিকে একটি কনটেক্সট প্রম্পটের সাথে একত্রিত করতে পারেন।

উন্নত প্রম্পটিং

আপনি একটি অ্যাডভান্সড প্রম্পটকে মডেলের অনুসরণ করার জন্য একটি সিস্টেম নির্দেশনা হিসেবে ভাবতে পারেন। এটি মডেলকে তার পারফরম্যান্সের উপর আরও বেশি প্রেক্ষাপট এবং নিয়ন্ত্রণ দেওয়ার একটি উপায়।

একটি শক্তিশালী নির্দেশনায় আদর্শগতভাবে নিম্নলিখিত উপাদানগুলো অন্তর্ভুক্ত থাকে, যা একত্রিত হয়ে একটি দুর্দান্ত পরিবেশনা তৈরি করে:

  • অডিও প্রোফাইল - কণ্ঠশিল্পীর জন্য একটি ব্যক্তিত্ব প্রতিষ্ঠা করে, যা চরিত্রের পরিচয়, আদিরূপ এবং বয়স, পটভূমি ইত্যাদির মতো অন্যান্য বৈশিষ্ট্য নির্ধারণ করে।
  • দৃশ্যপট - প্রেক্ষাপট তৈরি করে। এটি ভৌত ​​পরিবেশ এবং তার 'আবহ' উভয়ই বর্ণনা করে।
  • পরিচালকের নোট - পারফরম্যান্স নির্দেশিকা যেখানে আপনি উল্লেখ করতে পারেন কোন নির্দেশনাগুলো আপনার ভার্চুয়াল শিল্পীর জন্য গুরুত্বপূর্ণ। উদাহরণস্বরূপ, ভঙ্গি, শ্বাস-প্রশ্বাস, গতি, স্পষ্ট উচ্চারণ এবং বাচনভঙ্গি।
  • নমুনা প্রেক্ষাপট - মডেলটিকে একটি প্রাসঙ্গিক সূচনা বিন্দু প্রদান করে, ফলে আপনার ভার্চুয়াল অভিনেতা আপনার তৈরি করা দৃশ্যে স্বাভাবিকভাবে প্রবেশ করে।
  • ট্রান্সক্রিপ্ট - যে লেখাটি মডেল বলবে। সর্বোত্তম পারফরম্যান্সের জন্য মনে রাখবেন যে, ট্রান্সক্রিপ্টের বিষয়বস্তু এবং লেখার ধরন আপনার দেওয়া নির্দেশনার সাথে সামঞ্জস্যপূর্ণ হওয়া উচিত।
  • অডিও ট্যাগ - এমন কিছু সংশোধক যা কোনো ট্রান্সক্রিপ্টে যোগ করে পাঠ্যের কোনো অংশের উপস্থাপনা পরিবর্তন করা যায়, যেমন [whispers] বা [shouting]

সম্পূর্ণ প্রম্পটের উদাহরণ:

# 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
[excitedly] 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.
[shouting] Turn this up! We've got the project roadmap landing in three,
two... let's go!

বিস্তারিত প্ররোচনা কৌশল

চলুন, প্রশ্নটির প্রতিটি উপাদান বিশ্লেষণ করা যাক।

অডিও প্রোফাইল

চরিত্রটির ব্যক্তিত্ব সংক্ষেপে বর্ণনা করুন।

  • নাম। আপনার চরিত্রকে একটি নাম দিলে তা মডেল এবং অভিনয়কে একসাথে ফুটিয়ে তুলতে সাহায্য করে। দৃশ্য ও প্রেক্ষাপট তৈরির সময় চরিত্রটিকে তার নামে উল্লেখ করুন।
  • ভূমিকা। দৃশ্যে অভিনীত চরিত্রটির মূল পরিচয় ও প্রতিরূপ। যেমন, রেডিও ডিজে, পডকাস্টার, সংবাদ প্রতিবেদক ইত্যাদি।

উদাহরণ:

# AUDIO PROFILE: Jaz R.
## "The Morning Hype"


# AUDIO PROFILE: Monica A.
## "The Beauty Influencer"

দৃশ্য

দৃশ্যটির প্রেক্ষাপট তৈরি করুন, যার মধ্যে থাকবে স্থান, মেজাজ এবং পারিপার্শ্বিক বিবরণ যা দৃশ্যের সুর ও আবহ প্রতিষ্ঠা করে। চরিত্রটির চারপাশে কী ঘটছে এবং তা তাকে কীভাবে প্রভাবিত করছে, তা বর্ণনা করুন। দৃশ্যটি সমগ্র কথোপকথনের জন্য পারিপার্শ্বিক প্রেক্ষাপট প্রদান করে এবং এক সূক্ষ্ম ও স্বাভাবিক ভঙ্গিতে অভিনয়কে পরিচালিত করে।

উদাহরণ:

## 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."

পরিচালকের নোট

এই গুরুত্বপূর্ণ অংশে সুনির্দিষ্ট কর্মসম্পাদন নির্দেশিকা অন্তর্ভুক্ত রয়েছে। আপনি অন্য সব অংশ বাদ দিতে পারেন, কিন্তু আমরা এই অংশটি অন্তর্ভুক্ত করার পরামর্শ দিই।

পারফরম্যান্সের জন্য শুধু গুরুত্বপূর্ণ বিষয়গুলোই সংজ্ঞায়িত করুন, তবে অতিরিক্ত নির্দিষ্ট করে না দেওয়ার ব্যাপারে সতর্ক থাকুন। খুব বেশি কঠোর নিয়ম মডেলদের সৃজনশীলতাকে সীমিত করবে এবং এর ফলে পারফরম্যান্স খারাপ হতে পারে। ভূমিকা ও দৃশ্যের বর্ণনার সাথে পারফরম্যান্সের নির্দিষ্ট নিয়মগুলোর ভারসাম্য বজায় রাখুন।

সবচেয়ে প্রচলিত নির্দেশনাগুলো হলো শৈলী, গতি এবং উচ্চারণভঙ্গি , কিন্তু মডেলটি এগুলোর মধ্যেই সীমাবদ্ধ নয়, এবং এগুলো আবশ্যকও নয়। আপনার পরিবেশনার জন্য গুরুত্বপূর্ণ যেকোনো অতিরিক্ত বিবরণ অন্তর্ভুক্ত করতে নির্দ্বিধায় নিজস্ব নির্দেশনা যোগ করুন এবং প্রয়োজন অনুযায়ী কম বা বেশি বিশদভাবে আলোচনা করুন।

উদাহরণস্বরূপ:

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

শৈলী:

এটি আপনার বক্তব্যের সুর ও শৈলী নির্ধারণ করে। পরিবেশনাকে সঠিক পথে চালিত করতে উৎফুল্ল, উদ্যমী, স্বচ্ছন্দ, বিরক্ত ইত্যাদি শব্দ ব্যবহার করুন। বর্ণনামূলক হোন এবং যতটা সম্ভব বিস্তারিত তথ্য দিন: শুধু "উদ্যমী ও উৎসাহী" বলার চেয়ে "সংক্রামক উৎসাহ। শ্রোতার মনে হওয়া উচিত যে তিনি একটি বিশাল, উত্তেজনাপূর্ণ সামাজিক অনুষ্ঠানের অংশ।"—এই বাক্যটি বেশি কার্যকর।

আপনি ভয়েসওভার ইন্ডাস্ট্রিতে জনপ্রিয় কিছু পরিভাষা, যেমন ‘ভোকাল স্মাইল’, ব্যবহার করে দেখতে পারেন। আপনি নিজের ইচ্ছামতো যত খুশি স্টাইলের বৈশিষ্ট্য যোগ করতে পারেন।

উদাহরণ:

সাধারণ আবেগ

DIRECTORS NOTES
...
Style: Frustrated and angry developer who can't get the build to run.
...

আরও গভীরতা

DIRECTORS NOTES
...
Style: Sassy GenZ beauty YouTuber, who mostly creates content for YouTube Shorts.
...

জটিল

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

উচ্চারণ:

কাঙ্ক্ষিত উচ্চারণভঙ্গিটির বর্ণনা দিন। আপনি যত সুনির্দিষ্ট হবেন, ফলাফল তত ভালো হবে। উদাহরণস্বরূপ, " ব্রিটিশ উচ্চারণ " এর পরিবর্তে " ইংল্যান্ডের ক্রয়েডনে শোনা ব্রিটিশ ইংরেজি উচ্চারণ " ব্যবহার করুন।

উদাহরণ:

### DIRECTORS NOTES
...
Accent: Southern california valley girl from Laguna Beach
...


### DIRECTORS NOTES
...
Accent: Jaz is a DJ from Brixton, London
...

গতি:

পুরো রচনা জুড়ে সামগ্রিক গতি এবং গতির বৈচিত্র্য।

উদাহরণ:

সহজ

### DIRECTORS NOTES
...
Pacing: Speak as fast as possible
...

আরও গভীরতা

### DIRECTORS NOTES
...
Pacing: Speaks at a faster, energetic pace, keeping up with fast paced music.
...

জটিল

### DIRECTORS NOTES
...
Pacing: The "Drift": The tempo is incredibly slow and liquid. Words bleed into each other. There is zero urgency.
...

প্রতিলিপি এবং অডিও ট্যাগ

ট্রান্সক্রিপ্ট হলো মডেলের বলা হুবহু কথাগুলো। অডিও ট্যাগ হলো বর্গাকার বন্ধনীর মধ্যে থাকা একটি শব্দ, যা নির্দেশ করে কোনো কিছু কীভাবে বলতে হবে, কণ্ঠস্বরের পরিবর্তন, অথবা কোনো বিস্ময়সূচক শব্দ।

### TRANSCRIPT

I know right, [sarcastically] I couldn't believe it. [whispers] She should have totally left
at that point.

[cough] Well, [sighs] I guess it doesn't matter now.

চেষ্টা করে দেখুন

AI Studio- তে এই উদাহরণগুলো নিজে চেষ্টা করে দেখুন, আমাদের TTS অ্যাপটি নিয়ে ঘাঁটাঘাঁটি করুন এবং জেমিনিকে আপনাকে পরিচালকের আসনে বসাতে দিন। চমৎকার কণ্ঠ পরিবেশনার জন্য এই পরামর্শগুলো মনে রাখুন:

  • মনে রাখবেন, পুরো নির্দেশনাটি যেন সামঞ্জস্যপূর্ণ থাকে – একটি দুর্দান্ত পরিবেশনা তৈরিতে চিত্রনাট্য ও নির্দেশনা একে অপরের পরিপূরক।
  • সবকিছু বর্ণনা করতে হবে এমনটা ভাববেন না, কখনও কখনও মডেলকে শূন্যস্থান পূরণের সুযোগ দিলে তা স্বাভাবিকতা আনতে সাহায্য করে। (ঠিক একজন প্রতিভাবান অভিনেতার মতো)
  • যদি কখনো নিজেকে আটকে পড়া মনে হয়, তবে আপনার স্ক্রিপ্ট বা পারফরম্যান্স তৈরি করতে জেমিনির সাহায্য নিন।

সীমাবদ্ধতা

  • টিটিএস মডেলগুলো কেবল টেক্সট ইনপুট গ্রহণ করতে এবং অডিও আউটপুট তৈরি করতে পারে।
  • একটি TTS সেশনের কনটেক্সট উইন্ডোর সীমা ৩২ হাজার টোকেন।
  • ভাষা সহায়তার জন্য ভাষা বিভাগটি পর্যালোচনা করুন।
  • টিটিএস স্ট্রিমিং সমর্থন করে না।

স্পিচ জেনারেশনের জন্য জেমিনি ৩.১ ফ্ল্যাশ টিটিএস প্রিভিউ মডেল ব্যবহার করার ক্ষেত্রে বিশেষভাবে নিম্নলিখিত সীমাবদ্ধতাগুলো প্রযোজ্য:

  • প্রম্পট নির্দেশাবলীর সাথে কণ্ঠস্বরের অসামঞ্জস্য: মডেলের আউটপুট সবসময় নির্বাচিত স্পিকারের সাথে হুবহু নাও মিলতে পারে, যার ফলে অডিওটি প্রত্যাশার চেয়ে ভিন্ন শোনাতে পারে। কণ্ঠস্বরের অমিল এড়াতে (যেমন, একজন গম্ভীর পুরুষ কণ্ঠশিল্পী একটি অল্পবয়সী মেয়ের মতো কথা বলার চেষ্টা করছেন), নিশ্চিত করুন যে আপনার প্রম্পটের লিখিত সুর এবং প্রেক্ষাপট নির্বাচিত স্পিকারের প্রোফাইলের সাথে স্বাভাবিকভাবে সামঞ্জস্যপূর্ণ।
  • দীর্ঘ আউটপুটের গুণমান: কয়েক মিনিটের বেশি দীর্ঘ আউটপুটের ক্ষেত্রে বক্তৃতার গুণমান এবং সামঞ্জস্যে তারতম্য দেখা দিতে পারে। আমরা আপনার ট্রান্সক্রিপ্টগুলিকে ছোট ছোট অংশে ভাগ করার পরামর্শ দিই।
  • মাঝে মাঝে টেক্সট টোকেন ফেরত আসা: মডেলটি মাঝে মাঝে অডিও টোকেনের পরিবর্তে টেক্সট টোকেন ফেরত দেয়, যার ফলে সার্ভার 500 এরর দিয়ে অনুরোধটি ব্যর্থ করে দেয়। যেহেতু এটি খুব অল্প সংখ্যক অনুরোধে এলোমেলোভাবে ঘটে, তাই এগুলো সামলানোর জন্য আপনার অ্যাপ্লিকেশনে স্বয়ংক্রিয় রিট্রাই লজিক প্রয়োগ করা উচিত।
  • প্রম্পট ক্লাসিফায়ারের ভুল প্রত্যাখ্যান: অস্পষ্ট প্রম্পট স্পিচ সিন্থেসিস ক্লাসিফায়ারকে সক্রিয় করতে ব্যর্থ হতে পারে, যার ফলে অনুরোধটি প্রত্যাখ্যাত ( PROHIBITED_CONTENT ) হতে পারে অথবা মডেলটি আপনার স্টাইল নির্দেশাবলী এবং পরিচালকের নোট উচ্চস্বরে পড়ে শোনাতে পারে। মডেলকে স্পিচ সিন্থেসিস করার নির্দেশ দিয়ে একটি স্পষ্ট ভূমিকা যোগ করে আপনার প্রম্পটগুলো যাচাই করুন এবং প্রকৃত কথ্য প্রতিলিপি কোথা থেকে শুরু হচ্ছে তা স্পষ্টভাবে চিহ্নিত করুন।

এরপর কী?