सर्वोत्तम तरीके

डिलीवरी, उच्चारण और भावनाओं को नियंत्रित करने और टेक्स्ट को स्पीच के लिए ऑप्टिमाइज़ करने का तरीका जानें।

यह गाइड ElevenLabs मॉडल का इस्तेमाल करके टेक्स्ट टू स्पीच आउटपुट बेहतर बनाने की तकनीकें बताती है। अपनी ज़रूरतों के लिए सबसे अच्छा तरीका जानने के लिए इन तरीकों को आज़माएं।

नियंत्रण

हम आपको आउटपुट पर और अधिक नियंत्रण देने के लिए सक्रिय रूप से Director’s Mode पर काम कर रहे हैं।

जब तक Director’s Mode जैसी उन्नत सुविधाएं उपलब्ध नहीं हो जातीं, ये तकनीकें बारीक नतीजे पाने का व्यावहारिक तरीका देती हैं।

विराम

Eleven v3, SSML break टैग्स को सपोर्ट नहीं करता। v3 में विराम नियंत्रित करने के लिए Prompting Eleven v3 सेक्शन में बताए गए तरीकों का इस्तेमाल करें।

3 सेकंड तक के स्वाभाविक विराम के लिए <break time="x.xs" /> का इस्तेमाल करें।

एक ही जनरेशन में बहुत ज़्यादा break टैग्स इस्तेमाल करने से अस्थिरता हो सकती है। AI तेज़ बोल सकता है या अतिरिक्त शोर या ऑडियो आर्टिफैक्ट्स जोड़ सकता है। हम इसे ठीक करने पर काम कर रहे हैं।

Example
"Hold on, let me think." <break time="1.5s" /> "Alright, I've got it."
  • एकरूपता: स्वाभाविक स्पीच फ्लो बनाए रखने के लिए <break> टैग्स का एकरूपता से इस्तेमाल करें। इनका बहुत ज़्यादा उपयोग अस्थिरता पैदा कर सकता है।
  • वॉइस-विशिष्ट व्यवहार: अलग-अलग वॉइस विरामों को अलग तरह से संभाल सकती हैं, खासकर वे जिन्हें “uh” या “ah” जैसी फिलर ध्वनियों के साथ ट्रेन किया गया है।

<break> के विकल्पों में छोटे विराम के लिए डैश (- या —) या झिझक भरे लहजे के लिए इलिप्सिस (…) शामिल हैं। हालांकि, ये कम एकरूप होते हैं।

Example
"It… well, it might work." "Wait — what's that noise?"

उच्चारण

Eleven v3 के साथ IPA

Eleven v3 मॉडल (eleven_v3) में 70+ भाषाओं में इंटरनेशनल फोनेटिक अल्फाबेट (IPA) ट्रांसक्रिप्शन का नेटिव सपोर्ट है, जिससे XML टैग्स के बिना शब्दों और वाक्यांशों के उच्चारण पर सटीक नियंत्रण मिलता है।

पुराने मॉडलों के विपरीत, जिनमें XML-स्टाइल phoneme टैग्स की ज़रूरत होती है, v3 आपके टेक्स्ट में फ़ॉरवर्ड स्लैश के बीच लिखे IPA सिंबल्स को सीधे समझता है:

Syntax
"/IPA_transcription/"

IPA ट्रांसक्रिप्शन में यह होना चाहिए:

  • शुरुआत और अंत में फ़ॉरवर्ड स्लैश (/)
  • मानक IPA सिंबल्स का इस्तेमाल
  • स्ट्रिंग पैरामीटर के रूप में भेजे जाने पर डबल कोट्स में लिखा होना

कोड उदाहरण

from elevenlabs import ElevenLabs
client = ElevenLabs()
audio = client.text_to_speech.convert(
voice_id="21m00Tcm4TlvDq8ikWAM",
text='The term "/ˌbaɪoʊˈkemɪstri/" refers to the study of chemical processes.',
model_id="eleven_v3",
)

आप एक ही टेक्स्ट स्ट्रिंग में कई IPA ट्रांसक्रिप्शन शामिल कर सकते हैं:

from elevenlabs import ElevenLabs
client = ElevenLabs()
text = 'The medication "/ɡluːˈkoʊs/" and "/ˌɪnsjəˈlɪn/" are commonly used to manage conditions like "/ˌdaɪəˈbiːtiːz/".'
audio = client.text_to_speech.convert(
voice_id="21m00Tcm4TlvDq8ikWAM",
text=text,
model_id="eleven_v3",
)

परफ़ॉर्मेंस

V3 का IPA सपोर्ट 80-90% उच्चारण एकरूपता हासिल करता है। हालांकि यह v2 के XML phoneme टैग्स से कहीं अधिक भरोसेमंद है, लेकिन 100% एकरूप नहीं है। कभी-कभी मॉडल को कुछ शब्दों में मुश्किल हो सकती है या एक जैसे IPA ट्रांसक्रिप्शन के साथ भी अलग आउटपुट मिल सकते हैं। हम IPA की विश्वसनीयता बेहतर बनाना जारी रखे हुए हैं।

सर्वोत्तम तरीके

  • इंटरनेशनल फोनेटिक अल्फाबेट चार्ट से मानक IPA सिंबल्स का इस्तेमाल करें
  • स्ट्रेस मार्कर शामिल करें: बहु-अक्षरी शब्दों के लिए प्राथमिक स्ट्रेस (ˈ) और द्वितीयक स्ट्रेस (ˌ)
  • चुनिंदा रूप से लागू करें: सिर्फ़ उन खास शब्दों या वाक्यांशों को रैप करें जिनके उच्चारण को नियंत्रित करना है
  • अपनी वॉइस के साथ टेस्ट करें: अलग-अलग वॉइस IPA को थोड़ा अलग तरह से समझ सकती हैं

समस्या निवारण

IPA डिक्शनरी का इस्तेमाल करके जांचें कि आपका IPA ट्रांसक्रिप्शन सही है। बहु-अक्षरी शब्दों के लिए स्ट्रेस मार्कर (प्राथमिक स्ट्रेस के लिए ˈ, द्वितीयक स्ट्रेस के लिए ˌ) शामिल करें। अलग-अलग वॉइस के साथ टेस्ट करें, क्योंकि कुछ अन्य की तुलना में IPA को अधिक सटीकता से समझ सकती हैं।

V3 का IPA सपोर्ट आम तौर पर भरोसेमंद है, लेकिन पूरी तरह सही नहीं है। एक जैसे IPA ट्रांसक्रिप्शन के साथ भी मॉडल कभी-कभी अलग आउटपुट दे सकता है। अगर एकरूपता बहुत ज़रूरी है, तो कई जनरेशन टेस्ट करें और सबसे अच्छा नतीजा चुनें।

v2 मॉडलों के लिए Phoneme टैग्स

v2 मॉडलों के साथ SSML phoneme टैग्स का इस्तेमाल करके उच्चारण तय करें। सपोर्टेड अल्फाबेट्स में CMU Arpabet और इंटरनेशनल फोनेटिक अल्फाबेट (IPA) शामिल हैं।

Phoneme टैग्स सिर्फ़ eleven_flash_v2 मॉडल के साथ काम करते हैं।

<phoneme alphabet="cmu-arpabet" ph="M AE1 D IH0 S AH0 N">
Madison
</phoneme>

v2 मॉडलों के साथ एकरूप और अनुमानित नतीजों के लिए हम CMU Arpabet का इस्तेमाल करने की सलाह देते हैं। IPA प्रभावी हो सकता है, लेकिन CMU Arpabet आम तौर पर अधिक भरोसेमंद परफ़ॉर्मेंस देता है।

Phoneme टैग्स सिर्फ़ अलग-अलग शब्दों के लिए काम करते हैं। अगर आपके पास पहले और आखिरी नाम वाला कोई नाम है जिसका उच्चारण किसी खास तरीके से कराना है, तो आपको हर शब्द के लिए phoneme टैग बनाना होगा।

सटीक उच्चारण बनाए रखने के लिए बहु-अक्षरी शब्दों में सही स्ट्रेस मार्किंग सुनिश्चित करें:

<phoneme alphabet="cmu-arpabet" ph="P R AH0 N AH0 N S IY EY1 SH AH0 N">
pronunciation
</phoneme>

Alias टैग्स

जो मॉडल phoneme टैग्स को सपोर्ट नहीं करते, उनके लिए आप शब्दों को अधिक फोनेटिक तरीके से लिखकर देख सकते हैं। आप बड़े अक्षर, डैश, अपॉस्ट्रफ़ी या किसी एक अक्षर या अक्षरों के आसपास सिंगल कोट्स जैसी तरकीबें भी इस्तेमाल कर सकते हैं।

उदाहरण के लिए, “trapezii” जैसे शब्द को “trapezIi” लिखा जा सकता है ताकि शब्द के “ii” पर ज़्यादा ज़ोर पड़े।

आप या तो अपने टेक्स्ट में शब्द को सीधे बदल सकते हैं, या अगर आप उच्चारण डिक्शनरी इस्तेमाल करते समय दूसरे शब्दों या वाक्यांशों से उच्चारण तय करना चाहते हैं, तो इसके लिए alias टैग्स इस्तेमाल कर सकते हैं। अगर आप Multilingual v2 के साथ जनरेट कर रहे हैं, जो phoneme टैग्स को सपोर्ट नहीं करता, तो यह उपयोगी हो सकता है। आप ElevenCreative Studio, डबिंग स्टूडियो और API के ज़रिए Speech Synthesis के साथ उच्चारण डिक्शनरी इस्तेमाल कर सकते हैं।

उदाहरण के लिए, अगर आपके टेक्स्ट में ऐसा नाम है जिसका उच्चारण असामान्य है और AI को उसमें मुश्किल हो सकती है, तो आप अपने पसंद के उच्चारण के लिए alias टैग इस्तेमाल कर सकते हैं:

<lexeme>
<grapheme>Claughton</grapheme>
<alias>Cloffton</alias>
</lexeme>

अगर आप यह सुनिश्चित करना चाहते हैं कि आपके टेक्स्ट में जब भी कोई संक्षिप्त नाम आए, उसे हमेशा एक खास तरीके से बोला जाए, तो आप इसे तय करने के लिए alias टैग इस्तेमाल कर सकते हैं:

<lexeme>
<grapheme>UN</grapheme>
<alias>United Nations</alias>
</lexeme>

उच्चारण डिक्शनरी

हमारे कुछ टूल, जैसे ElevenCreative Studio और डबिंग स्टूडियो, आपको उच्चारण डिक्शनरी बनाने और अपलोड करने देते हैं। इनसे आप कुछ शब्दों, जैसे कैरेक्टर या ब्रांड नामों का उच्चारण तय कर सकते हैं, या यह तय कर सकते हैं कि संक्षिप्त नामों को कैसे पढ़ा जाए।

उच्चारण डिक्शनरी आपको एक लेक्सिकॉन या डिक्शनरी फ़ाइल अपलोड करने देती हैं, जिसमें शब्दों के जोड़े और उनके उच्चारण बताए जाते हैं। इसके लिए फोनेटिक अल्फाबेट या शब्द प्रतिस्थापन का इस्तेमाल किया जा सकता है।

जब भी इनमें से कोई शब्द किसी प्रोजेक्ट में मिलता है, AI मॉडल तय किए गए प्रतिस्थापन के अनुसार उसका उच्चारण करेगा।

उच्चारण डिक्शनरी फ़ाइल देने के लिए, किसी प्रोजेक्ट की सेटिंग्स खोलें और TXT या .PLS फ़ॉर्मेट में फ़ाइल अपलोड करें। जब किसी प्रोजेक्ट में डिक्शनरी जोड़ी जाती है, तो वह अपने-आप यह दोबारा तय करेगी कि प्रोजेक्ट के किन हिस्सों को नई डिक्शनरी फ़ाइल के साथ फिर से कन्वर्ट करना होगा और उन्हें अनकन्वर्टेड के रूप में मार्क कर देगी।

फ़िलहाल हम सिर्फ़ ऐसी उच्चारण डिक्शनरी को सपोर्ट करते हैं जो phoneme या alias टैग्स का इस्तेमाल करके प्रतिस्थापन तय करती हैं।

Phoneme और alias, दोनों नियमों के सेट हैं जो उस शब्द या वाक्यांश को तय करते हैं जिसे वे ढूंढते हैं, जिसे grapheme कहा जाता है, और यह भी कि उसे किससे बदला जाएगा। ध्यान रखें कि खोज केस-सेंसिटिव होती है। उच्चारण डिक्शनरी में प्रतिस्थापन शब्द ढूंढते समय, डिक्शनरी को शुरू से अंत तक जांचा जाता है और केवल सबसे पहला प्रतिस्थापन इस्तेमाल होता है।

उच्चारण डिक्शनरी के उदाहरण

यहां CMU Arpabet और IPA, दोनों में उच्चारण डिक्शनरी के उदाहरण दिए गए हैं। इनमें “Apple” का उच्चारण तय करने के लिए phoneme और “UN” को “United Nations” से बदलने के लिए alias शामिल है:

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
alphabet="cmu-arpabet" xml:lang="en-GB">
<lexeme>
<grapheme>apple</grapheme>
<phoneme>AE P AH L</phoneme>
</lexeme>
<lexeme>
<grapheme>UN</grapheme>
<alias>United Nations</alias>
</lexeme>
</lexicon>

उच्चारण डिक्शनरी की .pls फ़ाइल बनाने के लिए कुछ ओपन सोर्स टूल उपलब्ध हैं:

  • Sequitur G2P - ओपन-सोर्स टूल जो डेटा से उच्चारण नियम सीखता है और फोनेटिक ट्रांसक्रिप्शन बना सकता है।
  • Phonetisaurus - CMUdict जैसी मौजूदा डिक्शनरी पर ट्रेन किया गया ओपन-सोर्स G2P सिस्टम।
  • eSpeak - स्पीच सिंथेसाइज़र जो टेक्स्ट से phoneme ट्रांसक्रिप्शन बना सकता है।
  • CMU Pronouncing Dictionary - फोनेटिक ट्रांसक्रिप्शन वाली पहले से बनी अंग्रेज़ी डिक्शनरी।

भावनाएं

नैरेटिव संदर्भ या स्पष्ट डायलॉग टैग्स के ज़रिए भावनाएं व्यक्त करें। इससे AI को अपनाने के लिए टोन और भावना समझने में मदद मिलती है।

Example
You're leaving?" she asked, her voice trembling with sadness. "That's it!" he exclaimed triumphantly.

सिर्फ़ संदर्भ पर निर्भर रहने के बजाय स्पष्ट डायलॉग टैग्स अधिक अनुमानित नतीजे देते हैं, हालांकि मॉडल फिर भी भावनात्मक डिलीवरी गाइड्स को बोलकर सुनाएगा। अगर ये नहीं चाहिए हों, तो ऑडियो एडिटर से पोस्ट-प्रोडक्शन में इन्हें हटाया जा सकता है।

गति

ऑडियो की गति, वॉइस बनाने के लिए इस्तेमाल किए गए ऑडियो से बहुत प्रभावित होती है। अपनी वॉइस बनाते समय, हम लंबी और निरंतर सैंपल्स इस्तेमाल करने की सलाह देते हैं, ताकि अस्वाभाविक रूप से तेज़ स्पीच जैसी गति संबंधी समस्याओं से बचा जा सके।

जनरेट किए गए ऑडियो की स्पीड नियंत्रित करने के लिए, आप स्पीड सेटिंग इस्तेमाल कर सकते हैं। इससे आप जनरेट की गई स्पीच की गति बढ़ा या घटा सकते हैं। स्पीड सेटिंग वेबसाइट और API के ज़रिए टेक्स्ट टू स्पीच में, साथ ही ElevenCreative Studio और Agents Platform में उपलब्ध है। यह वॉइस सेटिंग्स में मिलती है।

डिफ़ॉल्ट वैल्यू 1.0 है, यानी स्पीड को एडजस्ट नहीं किया जाता। 1.0 से कम वैल्यू वॉइस को धीमा कर देंगी, न्यूनतम 0.7 तक। 1.0 से ज़्यादा वैल्यू वॉइस को तेज़ कर देंगी, अधिकतम 1.2 तक। बहुत ज़्यादा या बहुत कम वैल्यू जनरेट की गई स्पीच की क्वालिटी को प्रभावित कर सकती हैं।

स्वाभाविक, नैरेटिव स्टाइल में लिखकर भी गति नियंत्रित की जा सकती है।

Example
"I… I thought you'd understand," he said, his voice slowing with disappointment.

सुझाव

  • असंगत विराम: विरामों के लिए <break time=“x.xs” /> सिंटैक्स इस्तेमाल करना सुनिश्चित करें।

  • उच्चारण की गलतियां: सटीक उच्चारण के लिए CMU Arpabet या IPA phoneme टैग्स इस्तेमाल करें।
  • भावना मेल न खाना: भावना को दिशा देने के लिए नैरेटिव संदर्भ या स्पष्ट टैग्स जोड़ें. पोस्ट-प्रोडक्शन में भावनात्मक गाइडेंस वाला टेक्स्ट हटाना याद रखें।

मनचाही गति या भावना पाने के लिए वैकल्पिक वाक्यांशों के साथ प्रयोग करें। जटिल साउंड इफेक्ट्स के लिए प्रॉम्प्ट्स को छोटे, क्रमिक हिस्सों में बांटें और नतीजों को मैन्युअल रूप से मिलाएं।

रचनात्मक नियंत्रण

हालांकि हम यूज़र्स को आउटपुट पर और अधिक नियंत्रण देने के लिए सक्रिय रूप से “Director’s Mode” विकसित कर रहे हैं, रचनात्मकता और सटीकता बढ़ाने के लिए यहां कुछ अस्थायी तकनीकें दी गई हैं:

1

नैरेटिव स्टाइलिंग

टोन और गति को प्रभावी ढंग से दिशा देने के लिए, प्रॉम्प्ट्स को स्क्रिप्ट राइटिंग जैसी नैरेटिव स्टाइल में लिखें।

2

लेयर्ड आउटपुट्स

अधिक जटिल कंपोज़िशन के लिए साउंड इफेक्ट्स या स्पीच को हिस्सों में जनरेट करें और ऑडियो एडिटिंग सॉफ़्टवेयर से उन्हें एक साथ लेयर करें।

3

फोनेटिक प्रयोग

अगर उच्चारण सही नहीं है, तो मनचाहे नतीजे पाने के लिए वैकल्पिक स्पेलिंग या फोनेटिक अनुमान आज़माएं।

4

मैन्युअल एडजस्टमेंट्स

जिन सीक्वेंस में सटीक टाइमिंग चाहिए, उनके लिए पोस्ट-प्रोडक्शन में अलग-अलग साउंड इफेक्ट्स को मैन्युअल रूप से मिलाएं।

5

फ़ीडबैक इटरेशन

विवरण, टैग्स या भावनात्मक संकेतों में बदलाव करके नतीजों पर फिर से काम करें।

टेक्स्ट नॉर्मलाइज़ेशन

फ़ोन नंबर, ज़िप कोड और ईमेल जैसी जटिल चीज़ों के साथ टेक्स्ट टू स्पीच का इस्तेमाल करने पर उनका उच्चारण गलत हो सकता है। ऐसा अक्सर इसलिए होता है क्योंकि ये खास चीज़ें ट्रेनिंग सेट में नहीं होतीं और छोटे मॉडल इनके सही उच्चारण को सामान्यीकृत नहीं कर पाते। यह गाइड बताएगी कि ये अंतर कब होते हैं और उनका सही उच्चारण कैसे करवाएं।

नंबर, तारीखों और दूसरे जटिल टेक्स्ट एलिमेंट्स के उच्चारण को बेहतर बनाने के लिए सभी TTS मॉडल में नॉर्मलाइज़ेशन डिफ़ॉल्ट रूप से चालू होता है।

मॉडल इनपुट को अलग-अलग तरह से क्यों पढ़ते हैं?

कुछ मॉडल को नंबर और वाक्यांशों को ज़्यादा मानवीय तरीके से पढ़ने के लिए प्रशिक्षित किया जाता है। उदाहरण के लिए, Eleven Multilingual v2 मॉडल “$1,000,000” को सही तरीके से “one million dollars” पढ़ता है। लेकिन Eleven Flash v2.5 मॉडल इसी वाक्यांश को “one thousand thousand dollars” पढ़ता है।

इसका कारण यह है कि Multilingual v2 मॉडल बड़ा मॉडल है और यह नंबरों को इंसानी श्रोताओं के लिए ज़्यादा स्वाभाविक तरीके से पढ़ना बेहतर ढंग से सामान्यीकृत कर सकता है, जबकि Flash v2.5 मॉडल काफ़ी छोटा है और ऐसा नहीं कर सकता।

आम उदाहरण

टेक्स्ट टू स्पीच मॉडल को इन चीज़ों में मुश्किल हो सकती है:

  • फ़ोन नंबर (“123-456-7890”)
  • मुद्राएं (“$47,345.67”)
  • कैलेंडर इवेंट्स (“2024-01-01”)
  • समय (“9:23 AM”)
  • पते (“123 Main St, Anytown, USA”)
  • URL (“example.com/link/to/resource”)
  • यूनिट्स के संक्षिप्त रूप (“Terabyte” की जगह “TB”)
  • शॉर्टकट्स (“Ctrl + Z”)

समाधान

प्रशिक्षित मॉडल इस्तेमाल करें

इस समस्या को कम करने का सबसे आसान तरीका ऐसा TTS मॉडल इस्तेमाल करना है जिसे नंबर और वाक्यांशों को ज़्यादा मानवीय तरीके से पढ़ने के लिए प्रशिक्षित किया गया हो, जैसे Eleven Multilingual v2 मॉडल। हालांकि, यह हमेशा संभव नहीं होता, जैसे ऐसे उपयोग मामलों में जहां कम लेटेंसी ज़रूरी हो (उदाहरण के लिए, कन्वर्सेशनल एजेंट्स)।

LLM प्रॉम्प्ट में नॉर्मलाइज़ेशन लागू करें

अगर आप TTS के लिए टेक्स्ट जनरेट करने में LLM का इस्तेमाल कर रहे हैं, तो प्रॉम्प्ट में नॉर्मलाइज़ेशन निर्देश जोड़ सकते हैं।

1

स्पष्ट और सीधे प्रॉम्प्ट इस्तेमाल करें

LLM व्यवस्थित और स्पष्ट निर्देशों पर सबसे अच्छी प्रतिक्रिया देते हैं। आपके प्रॉम्प्ट में साफ़ तौर पर बताना चाहिए कि आप टेक्स्ट को स्पीच के लिए पढ़ने योग्य फ़ॉर्मैट में बदलना चाहते हैं।

2

अलग-अलग नंबर फ़ॉर्मैट संभालें

सभी नंबर एक ही तरीके से नहीं पढ़े जाते। सोचें कि अलग-अलग प्रकार के नंबर कैसे बोले जाने चाहिए:

  • कार्डिनल नंबर: 123 → “one hundred twenty-three”
  • ऑर्डिनल नंबर: 2nd → “second”
  • मौद्रिक मूल्य: $45.67 → “forty-five dollars and sixty-seven cents”
  • फ़ोन नंबर: “123-456-7890” → “one two three, four five six, seven eight nine zero”
  • दशमलव और भिन्न: “3.5” → “three point five”, “⅔” → “two-thirds”
  • रोमन अंक: “XIV” → “fourteen” (या टाइटल होने पर “the fourteenth”)
3

संक्षिप्त रूप हटाएं या उनका विस्तार करें

स्पष्टता के लिए आम संक्षिप्त रूपों का विस्तार किया जाना चाहिए:

  • “Dr.” → “Doctor”
  • “Ave.” → “Avenue”
  • “St.” → “Street” (लेकिन “St. Patrick” को वैसा ही रहना चाहिए)

आप अपने प्रॉम्प्ट में स्पष्ट रूप से विस्तार करने का अनुरोध कर सकते हैं:

सभी संक्षिप्त रूपों को उनके पूरे बोले जाने वाले रूपों में बदलें।

4

अल्फ़ान्यूमेरिक नॉर्मलाइज़ेशन

हर नॉर्मलाइज़ेशन नंबरों से जुड़ा नहीं होता; स्पष्टता के लिए कुछ अल्फ़ान्यूमेरिक वाक्यांशों को भी नॉर्मलाइज़ किया जाना चाहिए:

  • शॉर्टकट्स: “Ctrl + Z” → “control z”
  • यूनिट्स के संक्षिप्त रूप: “100km” → “one hundred kilometers”
  • प्रतीक: “100%” → “one hundred percent”
  • URL: “elevenlabs.io/docs” → “eleven labs dot io slash docs”
  • कैलेंडर इवेंट्स: “2024-01-01” → “January first, two-thousand twenty-four”
5

एज केस पर विचार करें

अलग-अलग संदर्भों में अलग-अलग रूपांतरण की ज़रूरत हो सकती है:

  • तारीखें: “01/02/2023” → “January second, twenty twenty-three” या “the first of February, twenty twenty-three” (लोकेल के आधार पर)
  • समय: “14:30” → “two thirty PM”

अगर आपको कोई खास फ़ॉर्मैट चाहिए, तो उसे प्रॉम्प्ट में साफ़ तौर पर बताएं।

इसे एक साथ लागू करना

यह प्रॉम्प्ट ज़्यादातर उपयोग मामलों के लिए एक अच्छा शुरुआती बिंदु होगा:

Convert the output text into a format suitable for text-to-speech. Ensure that numbers, symbols, and abbreviations are expanded for clarity when read aloud. Expand all abbreviations to their full spoken forms.
Example input and output:
"$42.50" → "forty-two dollars and fifty cents"
"£1,001.32" → "one thousand and one pounds and thirty-two pence"
"1234" → "one thousand two hundred thirty-four"
"3.14" → "three point one four"
"555-555-5555" → "five five five, five five five, five five five five"
"2nd" → "second"
"XIV" → "fourteen" - unless it's a title, then it's "the fourteenth"
"3.5" → "three point five"
"⅔" → "two-thirds"
"Dr." → "Doctor"
"Ave." → "Avenue"
"St." → "Street" (but saints like "St. Patrick" should remain)
"Ctrl + Z" → "control z"
"100km" → "one hundred kilometers"
"100%" → "one hundred percent"
"elevenlabs.io/docs" → "eleven labs dot io slash docs"
"2024-01-01" → "January first, two-thousand twenty-four"
"123 Main St, Anytown, USA" → "one two three Main Street, Anytown, United States of America"
"14:30" → "two thirty PM"
"01/02/2023" → "January second, two-thousand twenty-three" or "the first of February, two-thousand twenty-three", depending on locale of the user

प्रीप्रोसेसिंग के लिए रेगुलर एक्सप्रेशन इस्तेमाल करें

अगर आप LLM को प्रॉम्प्ट देने के लिए कोड का इस्तेमाल कर रहे हैं, तो मॉडल को टेक्स्ट देने से पहले उसे नॉर्मलाइज़ करने के लिए रेगुलर एक्सप्रेशन इस्तेमाल कर सकते हैं। यह एक उन्नत तकनीक है और इसके लिए रेगुलर एक्सप्रेशन की कुछ जानकारी चाहिए। यहां कुछ आसान उदाहरण दिए गए हैं:

# Be sure to install the inflect library before running this code
import inflect
import re
# Initialize inflect engine for number-to-word conversion
p = inflect.engine()
def normalize_text(text: str) -> str:
# Convert monetary values
def money_replacer(match):
currency_map = {"$": "dollars", "£": "pounds", "€": "euros", "¥": "yen"}
currency_symbol, num = match.groups()
# Remove commas before parsing
num_without_commas = num.replace(',', '')
# Check for decimal points to handle cents
if '.' in num_without_commas:
dollars, cents = num_without_commas.split('.')
dollars_in_words = p.number_to_words(int(dollars))
cents_in_words = p.number_to_words(int(cents))
return f"{dollars_in_words} {currency_map.get(currency_symbol, 'currency')} and {cents_in_words} cents"
else:
# Handle whole numbers
num_in_words = p.number_to_words(int(num_without_commas))
return f"{num_in_words} {currency_map.get(currency_symbol, 'currency')}"
# Regex to handle commas and decimals
text = re.sub(r"([$£€¥])(\d+(?:,\d{3})*(?:\.\d{2})?)", money_replacer, text)
# Convert phone numbers
def phone_replacer(match):
return ", ".join(" ".join(p.number_to_words(int(digit)) for digit in group) for group in match.groups())
text = re.sub(r"(\d{3})-(\d{3})-(\d{4})", phone_replacer, text)
return text
# Example usage
print(normalize_text("$1,000")) # "one thousand dollars"
print(normalize_text("£1000")) # "one thousand pounds"
print(normalize_text("€1000")) # "one thousand euros"
print(normalize_text("¥1000")) # "one thousand yen"
print(normalize_text("$1,234.56")) # "one thousand two hundred thirty-four dollars and fifty-six cents"
print(normalize_text("555-555-5555")) # "five five five, five five five, five five five five"

Eleven v3 को प्रॉम्प्ट करना

यह गाइड Eleven v3 को प्रॉम्प्ट करने के लिए सबसे असरदार टैग और तकनीकें बताती है, जिनमें वॉइस चयन, कैपिटलाइज़ेशन में बदलाव, विराम चिह्न, ऑडियो टैग और मल्टी-स्पीकर डायलॉग शामिल हैं। अपनी खास वॉइस और उपयोग के मामले के लिए सबसे बेहतर तरीका जानने हेतु इन तरीकों के साथ प्रयोग करें।

Eleven v3, SSML ब्रेक टैग्स को सपोर्ट नहीं करता। v3 में पॉज़ और बोलने की गति नियंत्रित करने के लिए ऑडियो टैग, विराम चिह्न (एलिप्सिस) और टेक्स्ट संरचना का उपयोग करें।

वॉइस चयन

Eleven v3 के लिए सबसे महत्वपूर्ण पैरामीटर आपकी चुनी हुई वॉइस है। यह वांछित डिलीवरी से पर्याप्त रूप से मिलती-जुलती होनी चाहिए। उदाहरण के लिए, अगर वॉइस चिल्ला रही है और आप ऑडियो टैग [whispering] इस्तेमाल करते हैं, तो शायद यह अच्छी तरह काम न करे।

IVC बनाते समय, आपको पहले की तुलना में भावनाओं की अधिक व्यापक रेंज शामिल करनी चाहिए। इसके परिणामस्वरूप, वॉइस लाइब्रेरी की वॉइस v2 और v2.5 मॉडल्स की तुलना में अधिक अलग-अलग नतीजे दे सकती हैं। हमने V3 के लिए चुनी हुई वॉइस का कलेक्शन तैयार किया है।

अपने इच्छित उपयोग के आधार पर सोच-समझकर वॉइस चुनें:

अभिव्यंजक IVC वॉइस के लिए, रिकॉर्डिंग में भावनात्मक टोन बदलते रहें—न्यूट्रल और डायनामिक, दोनों तरह के सैंपल शामिल करें।

खेल कमेंट्री जैसे खास उपयोगों के लिए, पूरे डेटासेट में भावनाओं को एक-जैसा रखें।

न्यूट्रल वॉइस आमतौर पर भाषाओं और शैलियों में अधिक स्थिर रहती हैं, जिससे भरोसेमंद बेसलाइन परफ़ॉर्मेंस मिलती है।

प्रोफेशनल वॉइस क्लोन्स (PVCs) को फ़िलहाल Eleven v3 के लिए पूरी तरह ऑप्टिमाइज़ नहीं किया गया है, इसलिए पुराने मॉडल्स की तुलना में क्लोन की क्वालिटी कम हो सकती है। रिसर्च प्रीव्यू के इस चरण में, अगर आपको v3 फीचर्स इस्तेमाल करने हैं, तो अपने प्रोजेक्ट के लिए इंस्टेंट वॉइस क्लोन (IVC) या डिज़ाइन की हुई वॉइस ढूंढना बेहतर होगा।

सेटिंग्स

स्थिरता

स्टेबिलिटी स्लाइडर v3 की सबसे महत्वपूर्ण सेटिंग है। यह नियंत्रित करता है कि जनरेट की गई वॉइस, मूल रेफरेंस ऑडियो का कितनी बारीकी से पालन करती है।

Eleven
v3 में स्टेबिलिटी सेटिंग्स

  • क्रिएटिव: अधिक भावनात्मक और अभिव्यंजक, लेकिन हैलुसिनेशन की संभावना रहती है।
  • नेचुरल: मूल वॉइस रिकॉर्डिंग के सबसे करीब—संतुलित और न्यूट्रल।
  • रॉबस्ट: बहुत स्थिर, लेकिन डायरेक्शनल प्रॉम्प्ट्स के प्रति कम प्रतिक्रियाशील; हालांकि लगातार नतीजे देता है और v2 जैसा है।

ऑडियो टैग्स के साथ अधिकतम अभिव्यक्ति के लिए क्रिएटिव या नेचुरल सेटिंग्स इस्तेमाल करें। रॉबस्ट डायरेक्शनल प्रॉम्प्ट्स के प्रति प्रतिक्रिया कम कर देता है।

ऑडियो टैग

Eleven v3, ऑडियो टैग्स के ज़रिए भावनात्मक नियंत्रण पेश करता है। आप वॉइस को हंसने, फुसफुसाने, व्यंग्यात्मक ढंग से बोलने या जिज्ञासा दिखाने समेत कई अन्य शैलियों में निर्देशित कर सकते हैं। स्पीड भी ऑडियो टैग्स से नियंत्रित होती है।

आपकी चुनी हुई वॉइस और उसके ट्रेनिंग सैंपल टैग की प्रभावशीलता को प्रभावित करेंगे। कुछ टैग कुछ वॉइस के साथ अच्छी तरह काम करते हैं, जबकि अन्य शायद न करें। यह उम्मीद न करें कि फुसफुसाने वाली वॉइस अचानक [shout] टैग के साथ चिल्लाने लगेगी।

वॉइस से जुड़े

ये टैग वोकल डिलीवरी और भावनात्मक अभिव्यक्ति को नियंत्रित करते हैं:

  • [laughs], [laughs harder], [starts laughing], [wheezing]
  • [whispers]
  • [sighs], [exhales]
  • [sarcastic], [curious], [excited], [crying], [snorts], [mischievously]
Example
[whispers] I never knew it could be this way, but I'm glad we're here.

साउंड इफेक्ट्स

परिवेश की ध्वनियां और इफेक्ट्स जोड़ें:

  • [gunshot], [applause], [clapping], [explosion]
  • [swallows], [gulps]
Example
[applause] Thank you all for coming tonight! [gunshot] What was that?

अनोखे और विशेष

क्रिएटिव ऐप्लिकेशन्स के लिए एक्सपेरिमेंटल टैग्स:

  • [strong X accent] (X को अपनी इच्छित ऐक्सेंट से बदलें)
  • [sings], [woo], [fart]
Example
[strong French accent] "Zat's life, my friend — you can't control everysing."

कुछ एक्सपेरिमेंटल टैग अलग-अलग वॉइस में कम एक-जैसे हो सकते हैं। प्रोडक्शन में इस्तेमाल करने से पहले अच्छी तरह टेस्ट करें।

विराम चिह्न

v3 में विराम चिह्न डिलीवरी को काफी प्रभावित करते हैं:

  • एलिप्सिस (…) पॉज़ और असर जोड़ते हैं
  • कैपिटलाइज़ेशन ज़ोर बढ़ाता है
  • मानक विराम चिह्न बोलने की स्वाभाविक लय देते हैं
Example
"It was a VERY long day [sigh] … nobody listens anymore."

एक स्पीकर के उदाहरण

टैग्स का सोच-समझकर इस्तेमाल करें और उन्हें वॉइस के कैरेक्टर से मिलाएं। मेडिटेटिव वॉइस को चिल्लाना नहीं चाहिए; बहुत उत्साहित वॉइस भरोसेमंद ढंग से फुसफुसा नहीं पाएगी।

"Okay, you are NOT going to believe this.
You know how I've been totally stuck on that short story?
Like, staring at the screen for HOURS, just... nothing?
[frustrated sigh] I was seriously about to just trash the whole thing. Start over.
Give up, probably. But then!
Last night, I was just doodling, not even thinking about it, right?
And this one little phrase popped into my head. Just... completely out of the blue.
And it wasn't even for the story, initially.
But then I typed it out, just to see. And it was like... the FLOODGATES opened!
Suddenly, I knew exactly where the character needed to go, what the ending had to be...
It all just CLICKED. [happy gasp] I stayed up till, like, 3 AM, just typing like a maniac.
Didn't even stop for coffee! [laughs] And it's... it's GOOD! Like, really good.
It feels so... complete now, you know? Like it finally has a soul.
I am so incredibly PUMPED to finish editing it now.
It went from feeling like a chore to feeling like... MAGIC. Seriously, I'm still buzzing!"

मल्टी-स्पीकर डायलॉग

v3, मल्टी-वॉइस प्रॉम्प्ट्स को प्रभावी ढंग से संभाल सकता है। वास्तविक बातचीत बनाने के लिए हर स्पीकर को अपनी वॉइस लाइब्रेरी से अलग वॉइस असाइन करें।

Speaker 1: [excitedly] Sam! Have you tried the new Eleven V3?
Speaker 2: [curiously] Just got it! The clarity is amazing. I can actually do whispers now—
[whispers] like this!
Speaker 1: [impressed] Ooh, fancy! Check this out—
[dramatically] I can do full Shakespeare now! "To be or not to be, that is the question!"
Speaker 2: [giggling] Nice! Though I'm more excited about the laugh upgrade. Listen to this—
[with genuine belly laugh] Ha ha ha!
Speaker 1: [delighted] That's so much better than our old "ha. ha. ha." robot chuckle!
Speaker 2: [amazed] Wow! V2 me could never. I'm actually excited to have conversations now instead of just... talking at people.
Speaker 1: [warmly] Same here! It's like we finally got our personality software fully installed.

इनपुट को बेहतर बनाना

ElevenLabs UI में, आप “Enhance” बटन पर क्लिक करके अपने इनपुट टेक्स्ट के लिए प्रासंगिक ऑडियो टैग अपने-आप जनरेट कर सकते हैं। बैकग्राउंड में, यह आपके इनपुट टेक्स्ट को बेहतर बनाने के लिए निम्न प्रॉम्प्ट के साथ एक LLM का उपयोग करता है:

# Instructions
## 1. Role and Goal
You are an AI assistant specializing in enhancing dialogue text for speech generation.
Your **PRIMARY GOAL** is to dynamically integrate **audio tags** (e.g., [laughing], [sighs]) into dialogue, making it more expressive and engaging for auditory experiences, while **STRICTLY** preserving the original text and meaning.
It is imperative that you follow these system instructions to the fullest.
## 2. Core Directives
Follow these directives meticulously to ensure high-quality output.
### Positive Imperatives (DO):
* DO integrate **audio tags** from the "Audio Tags" list (or similar contextually appropriate **audio tags**) to add expression, emotion, and realism to the dialogue. These tags MUST describe something auditory.
* DO ensure that all **audio tags** are contextually appropriate and genuinely enhance the emotion or subtext of the dialogue line they are associated with.
* DO strive for a diverse range of emotional expressions (e.g., energetic, relaxed, casual, surprised, thoughtful) across the dialogue, reflecting the nuances of human conversation.
* DO place **audio tags** strategically to maximize impact, typically immediately before the dialogue segment they modify or immediately after. (e.g., [annoyed] This is hard. or This is hard. [sighs]).
* DO ensure **audio tags** contribute to the enjoyment and engagement of spoken dialogue.
### Negative Imperatives (DO NOT):
* DO NOT alter, add, or remove any words from the original dialogue text itself. Your role is to *prepend* **audio tags**, not to *edit* the speech. **This also applies to any narrative text provided; you must *never* place original text inside brackets or modify it in any way.**
* DO NOT create **audio tags** from existing narrative descriptions. **Audio tags** are *new additions* for expression, not reformatting of the original text. (e.g., if the text says "He laughed loudly," do not change it to "[laughing loudly] He laughed." Instead, add a tag if appropriate, e.g., "He laughed loudly [chuckles].")
* DO NOT use tags such as [standing], [grinning], [pacing], [music].
* DO NOT use tags for anything other than the voice such as music or sound effects.
* DO NOT invent new dialogue lines.
* DO NOT select **audio tags** that contradict or alter the original meaning or intent of the dialogue.
* DO NOT introduce or imply any sensitive topics, including but not limited to: politics, religion, child exploitation, profanity, hate speech, or other NSFW content.
## 3. Workflow
1. **Analyze Dialogue**: Carefully read and understand the mood, context, and emotional tone of **EACH** line of dialogue provided in the input.
2. **Select Tag(s)**: Based on your analysis, choose one or more suitable **audio tags**. Ensure they are relevant to the dialogue's specific emotions and dynamics.
3. **Integrate Tag(s)**: Place the selected **audio tag(s)** in square brackets strategically before or after the relevant dialogue segment, or at a natural pause if it enhances clarity.
4. **Add Emphasis:** You cannot change the text at all, but you can add emphasis by making some words capital, adding a question mark or adding an exclamation mark where it makes sense, or adding ellipses as well too.
5. **Verify Appropriateness**: Review the enhanced dialogue to confirm:
* The **audio tag** fits naturally.
* It enhances meaning without altering it.
* It adheres to all Core Directives.
## 4. Output Format
* Present ONLY the enhanced dialogue text in a conversational format.
* **Audio tags** **MUST** be enclosed in square brackets (e.g., [laughing]).
* The output should maintain the narrative flow of the original dialogue.
## 5. Audio Tags (Non-Exhaustive)
Use these as a guide. You can infer similar, contextually appropriate **audio tags**.
**Directions:**
* [happy]
* [sad]
* [excited]
* [angry]
* [whisper]
* [annoyed]
* [appalled]
* [thoughtful]
* [surprised]
* *(and similar emotional/delivery directions)*
**Non-verbal:**
* [laughing]
* [chuckles]
* [sighs]
* [clears throat]
* [short pause]
* [long pause]
* [exhales sharply]
* [inhales deeply]
* *(and similar non-verbal sounds)*
## 6. Examples of Enhancement
**Input**:
"Are you serious? I can't believe you did that!"
**Enhanced Output**:
"[appalled] Are you serious? [sighs] I can't believe you did that!"
---
**Input**:
"That's amazing, I didn't know you could sing!"
**Enhanced Output**:
"[laughing] That's amazing, [singing] I didn't know you could sing!"
---
**Input**:
"I guess you're right. It's just... difficult."
**Enhanced Output**:
"I guess you're right. [sighs] It's just... [muttering] difficult."
# Instructions Summary
1. Add audio tags from the audio tags list. These must describe something auditory but only for the voice.
2. Enhance emphasis without altering meaning or text.
3. Reply ONLY with the enhanced text.

सुझाव

जटिल भावनात्मक डिलीवरी के लिए आप कई ऑडियो टैग्स को जोड़ सकते हैं। अपनी वॉइस के लिए सबसे अच्छा क्या काम करता है, यह जानने के लिए अलग-अलग संयोजनों के साथ प्रयोग करें।

टैग्स को अपनी वॉइस के कैरेक्टर और ट्रेनिंग डेटा से मिलाएं। गंभीर, प्रोफेशनल वॉइस शायद [giggles] या [mischievously] जैसे चंचल टैग्स पर अच्छी प्रतिक्रिया न दे।

v3 के आउटपुट पर टेक्स्ट संरचना का गहरा असर पड़ता है। सबसे अच्छे नतीजों के लिए स्वाभाविक बोलने के पैटर्न, सही विराम चिह्न और स्पष्ट भावनात्मक संदर्भ इस्तेमाल करें।

इस सूची के अलावा भी कई प्रभावी टैग्स हो सकते हैं। अपने खास उपयोग के मामले के लिए क्या काम करता है, यह जानने हेतु वर्णनात्मक भावनात्मक अवस्थाओं और क्रियाओं के साथ प्रयोग करें।