Text to Speech (TTS) सेटअप

Text to Speech (TTS) चैट के संदेश और गेम का नैरेशन ज़ोर से पढ़कर सुनाता है। इस गाइड में बताया गया है कि इसे कैसे चालू करें, वॉइस सेवा और आवाज़ें कैसे चुनें, ऑटो-प्ले कैसे सेट करें और हर संदेश पर मिलने वाले कंट्रोल कैसे इस्तेमाल करें।

तुरंत शुरुआत

  1. Text to Speech कार्ड खोलें (तरीका नीचे है) और Use text to speech (टेक्स्ट टू स्पीच इस्तेमाल करें) चालू करें।
  2. कोई Source (सोर्स) चुनें और अपनी कुंजी API key में पेस्ट करें।
  3. नमूना सुनने के लिए Preview (सुनें) पर क्लिक करें।
  4. किसी चैट में, संदेश के नीचे Speak पर क्लिक करें।

Text to Speech चालू करें

TTS की लगभग हर सेटिंग एक ही कार्ड में है। TTS चालू करने भर से कुछ अपने आप नहीं बोलने लगता। इससे हर संदेश पर Speak बटन और Auto-play (ऑटो-प्ले) के विकल्प दिखने लगते हैं। क्या पढ़ा जाए और कब, यह आप ही तय करते हैं।

  1. टॉप बार में Connections (कनेक्शन) पर क्लिक करें, फिर Add (जोड़ें) पर क्लिक करें। Add account (अकाउंट जोड़ें) विंडो खुलती है।
  2. Voice (आवाज़) के नीचे Text to speech (टेक्स्ट टू स्पीच) चुनें। कार्ड खुल जाता है। अगर आप पहले से PocketTTS इस्तेमाल करते हैं, तो यही कार्ड On this device (इसी डिवाइस पर) के नीचे भी मिलता है।
  3. Use text to speech चालू करें। जब तक यह बंद है, कुछ भी ज़ोर से नहीं पढ़ा जाता।
  4. Source लिस्ट खोलें और कोई सेवा चुनें।

Source वह सेवा है जो ऑडियो बनाती है।

Marinara हर Source की एक अलग सेव की हुई प्रोफ़ाइल रखता है: उसकी कुंजी, पता, मॉडल, आवाज़ें और पैरामीटर। Source बदलने पर उस Source का पिछला सेटअप वापस आ जाता है। जो Source आपने अभी तक सेट नहीं किया, वह डिफ़ॉल्ट वैल्यू से शुरू होता है।

रिक्वेस्ट Marinara के अपने सर्वर से होकर जाती हैं। आपकी API कुंजी सर्वर पर एन्क्रिप्ट करके सेव होती है। सेव करने के बाद फ़ील्ड में असली कुंजी की जगह बिंदु दिखते हैं, और असली कुंजी कभी वापस आपके ब्राउज़र तक नहीं आती।

ऑडियो कनेक्शन इस्तेमाल करें

अगर आपने पहले से कोई Audio अकाउंट जोड़ा है (देखें समर्थित AI प्रोवाइडर), तो उसकी जानकारी दोबारा भरने की ज़रूरत नहीं है। वह Source लिस्ट में Audio providers (ऑडियो प्रोवाइडर) के नीचे दिखता है, और उसके साथ कोष्ठक में उसके सोर्स का प्रकार लिखा होता है।

  1. Source लिस्ट खोलें और वह अकाउंट चुनें।
  2. उसकी आवाज़ें और नीचे दी गई बाकी सेटिंग्स चुनें।

इसके बाद Marinara उसी अकाउंट का पता, कुंजी, मॉडल और Request timeout (seconds) (रिक्वेस्ट टाइमआउट (सेकंड)) इस्तेमाल करता है, इसलिए कार्ड ये फ़ील्ड छिपा देता है। कुंजी अकाउंट में ही रहती है: वह न कार्ड में कॉपी होती है, न आपके ब्राउज़र को भेजी जाती है। अकाउंट में किए गए बदलाव, जैसे नई कुंजी, तुरंत लागू हो जाते हैं।

आवाज़ें, स्पीड और बोलने की बाकी सेटिंग्स हर अकाउंट के लिए अलग सेव होती हैं। एक ही प्रकार के दो अकाउंट इन्हें कभी साझा नहीं करते। चार सामान्य Source के लिए आपकी सेटिंग्स जैसी थीं, वैसी ही रहती हैं। कार्ड का स्विच अब भी सामान्य TTS को चालू और बंद करता है।

अगर चुना गया अकाउंट डिलीट हो जाए या इस्तेमाल न हो सके, तो कार्ड Missing Audio provider दिखाता है, और जब तक आप कोई दूसरा Source नहीं चुनते, कुछ नहीं बोला जाता। Marinara अपने आप कभी दूसरे Source पर नहीं जाता। अगर अकाउंट अपनी आवाज़ों की लिस्ट देता है, तो कार्ड हर उस सेव की हुई आवाज़ का नाम बताता है जो लिस्ट में नहीं है।

पता, कुंजी और मॉडल सेट करें

अगर आपने कोई Audio अकाउंट चुना है, तो यह हिस्सा छोड़ दें। ये चीज़ें वही अकाउंट देता है।

  1. Base URL देखें। हर Source एक डिफ़ॉल्ट भर देता है (नीचे तालिका में)। इसे सिर्फ़ किसी प्रॉक्सी या अपने चलाए हुए सर्वर के लिए बदलें।
  2. अपनी कुंजी API key में पेस्ट करें। पहले से सेव कुंजी रखनी हो तो बिंदुओं को वैसे ही छोड़ दें। उसे हटाना हो तो फ़ील्ड खाली कर दें।
  3. Model देखें। हर Source एक डिफ़ॉल्ट भर देता है। आप अपनी सेवा का कोई दूसरा समर्थित मॉडल भी टाइप कर सकते हैं।
Sourceडिफ़ॉल्ट Base URLडिफ़ॉल्ट मॉडलडिफ़ॉल्ट आवाज़
OpenAI-compatiblehttps://api.openai.com/v1tts-1alloy
ElevenLabshttps://api.elevenlabs.ioeleven_multilingual_v2कोई नहीं, आपको खुद चुननी होगी
PocketTTShttp://localhost:8000pocket-ttsalba
xAI Voicehttps://api.x.ai/v1grok-ttseve

ElevenLabs के लिए Model लिस्ट वे स्पीच मॉडल लोड करती है जिन्हें आपका अकाउंट इस्तेमाल कर सकता है। कोई सामान्य स्पीच मॉडल चुनें। जिन मॉडल ID में ttv आता है, वे वॉइस-डिज़ाइन मॉडल हैं, जो टेक्स्ट नहीं पढ़ सकते। ऐसा मॉडल चुनने पर प्लेबैक फ़ेल हो जाता है और एरर में स्पीच मॉडल इस्तेमाल करने को कहा जाता है।

PocketTTS

PocketTTS, Marinara में बिल्ट-इन नहीं है। आधिकारिक PocketTTS सर्वर अलग से इंस्टॉल करें और उसे uvx pocket-tts serve से चलाएँ। Marinara इसे डाउनलोड या मैनेज नहीं करता। आधिकारिक सर्वर http://localhost:8000 इस्तेमाल करता है। अगर आपने होस्ट या पोर्ट नहीं बदला है, तो Base URL यही रहने दें। Marinara आधिकारिक मल्टीपार्ट /tts API पहचान लेता है। OpenAI-compatible PocketTTS रैपर के कस्टम URL अब भी काम करते हैं।

रिक्वेस्ट टाइमआउट

Marinara हर बोली जाने वाली पंक्ति के लिए 60 सेकंड तक इंतज़ार करता है। आपके अपने कंप्यूटर पर, खासकर लैपटॉप पर, चल रहे वॉइस सर्वर को लंबी पंक्ति के लिए ज़्यादा समय लग सकता है। Model के नीचे Request timeout (seconds) बढ़ाएँ। इसकी रेंज 10 से 3,600 सेकंड है।

Audio अकाउंट का अपना Request timeout (seconds) होता है, जो उसके एडिटर में Default voice के नीचे है। जो चैट किसी Audio अकाउंट से बोलती हैं, Source के रूप में चुने गए अकाउंट से भी, वे उसी अकाउंट की सीमा इस्तेमाल करती हैं। कार्ड की सीमा कार्ड की अपनी सेटिंग्स से बनने वाली आवाज़ पर लागू होती है, Preview समेत। अगर किसी पंक्ति में बहुत देर लगती है, तो एरर बताती है कि Marinara ने कितने सेकंड इंतज़ार किया और कौन-सी सेटिंग बढ़ानी है।

आवाज़ें चुनें

Voice option (आवाज़ का विकल्प) तय करता है कि आवाज़ें कैसे बाँटी जाएँगी।

One voice for all

Shared voice (साझा आवाज़) में आवाज़ चुनें। अपनी सेवा की असली आवाज़ों की लिस्ट लोड करने के लिए उसकी जानकारी भरें और Refresh voices from provider (प्रोवाइडर से आवाज़ें रिफ़्रेश करें) पर क्लिक करें (गोल तीर वाला आइकन)। यह पहले कार्ड सेव करता है, इसलिए अभी डाली गई कुंजी तुरंत इस्तेमाल होती है। कनेक्ट होने से पहले एक छोटी बिल्ट-इन लिस्ट दिखती है, ताकि फ़ील्ड खाली न रहे। सेवा से एरर आए तो वही एरर दिखती है; फ़ॉलबैक लिस्ट को सफल रिफ़्रेश बनाकर पेश नहीं किया जाता।

आधिकारिक PocketTTS सर्वर में आवाज़ों की लिस्ट का कोई एंडपॉइंट नहीं है, इसलिए Marinara उसकी बिल्ट-इन आवाज़ें दिखाता है और लिस्ट के पास एक टेक्स्ट फ़ील्ड रखता है, जिसमें कोई दूसरा बिल्ट-इन नाम या समर्थित आवाज़ URL लिखा जा सकता है। संगत रैपर सर्वर अपनी लिस्ट लौटा सकते हैं और कस्टम ID या पाथ स्वीकार कर सकते हैं।

ElevenLabs के साथ आवाज़ चुनना ज़रूरी है। Marinara अकाउंट की पूरी लाइब्रेरी लोड करता है: पर्सनल, वर्कस्पेस, सेव की हुई और डिफ़ॉल्ट आवाज़ें। पिकर में एक सर्च बॉक्स है और लोड हुई आवाज़ों की गिनती दिखती है। यह "Select an ElevenLabs voice" पर शुरू होता है, और जब तक आप असली आवाज़ न चुनें, प्लेबैक रुका रहता है।

Selected per character or persona

  1. Voice option को Selected per character or persona पर सेट करें।
  2. Character and persona voices (कैरेक्टर और पर्सोना की आवाज़ें) में Add voice (आवाज़ जोड़ें) पर क्लिक करें।
  3. बाईं लिस्ट में कोई कैरेक्टर या पर्सोना और दाईं लिस्ट में आवाज़ चुनें।
  4. हर एक के लिए यही दोहराएँ।

किसी कैरेक्टर की आवाज़ Character Editor (कैरेक्टर एडिटर) के Voice टैब पर भी सेट की जा सकती है। इससे यही पंक्ति बदलती है। इस बॉक्स में Refresh आवाज़ों की लिस्ट दोबारा लोड करता है। पहले अपने कैरेक्टर बनाएँ। एक भी न हो, तो ऐप बताता है कि आवाज़ें देने से पहले कोई कैरेक्टर या पर्सोना जोड़ें।

जिस कैरेक्टर की अपनी आवाज़ नहीं है, वह मेल खाते नाम वाले कार्ड की आवाज़ इस्तेमाल करता है, जैसे किसी AU कॉपी का मूल कार्ड। ऐसा न हो, तो वह साझा आवाज़ इस्तेमाल करता है। देखें कैरेक्टर बनाना और एडिट करना।

Narrator voice

नैरेशन वह टेक्स्ट है जिसे कोई एक कैरेक्टर नहीं बोलता, जैसे सीन का विवरण या गेम मास्टर की पंक्तियाँ।

  1. Narrator voice में Use separate narrator voice चालू करें।
  2. कोई आवाज़ चुनें।

यह आवाज़ तब इस्तेमाल होती है जब Roleplay और Conversation के संदेशों में किसी पंक्ति का बोलने वाला Narrator, GM, Game Master या System हो, और Game Mode के उस नैरेशन के लिए भी जिसका कोई नाम वाला बोलने वाला नहीं है। ElevenLabs के साथ नैरेटर की आवाज़ यहीं चुनें। इसे खाली छोड़ने पर नैरेशन तभी फ़ॉलबैक लेता है जब कोई ग्लोबल आवाज़ सेट हो।

Random NPC voices (सिर्फ़ Game Mode में)

यह उन छोटे गेम कैरेक्टर को बची हुई आवाज़ें देता है जिन्हें Game Mode ट्रैक करता है। Roleplay या Conversation में इसका कोई असर नहीं होता।

  1. Random NPC voices में Use default voices for random NPCs चालू करें।
  2. Male NPC defaults और Female NPC defaults में आवाज़ों पर टिक लगाएँ।

जिस ट्रैक किए गए NPC की अपनी आवाज़ नहीं है, उसे मेल खाते पूल से एक तय आवाज़ मिलती है, जो पूरे सेशन में वही रहती है। जिस NPC को आवाज़ असाइन की गई है, वह वही आवाज़ रखता है। जिन NPC का जेंडर साफ़ नहीं है, वे दोनों पूल से चुनते हैं। अगर ऐप को पुरुष या स्त्री लेबल वाली आवाज़ें नहीं मिलतीं, तो हर पूल पूरी लिस्ट इस्तेमाल करता है।

ऑडियो फ़ॉर्मैट और स्पीड

Audio format में MP3 (डिफ़ॉल्ट) या WAV चुना जाता है। जो लोकल सर्वर MP3 नहीं बना सकते, उनके लिए WAV इस्तेमाल करें। ElevenLabs के लिए यह कंट्रोल छिपा रहता है, क्योंकि वह हमेशा MP3 इस्तेमाल करता है। xAI Voice के लिए यह दिखता है, पर इसका कोई असर नहीं होता, क्योंकि xAI हमेशा MP3 लौटाता है।

Speed स्लाइडर की रेंज Source पर निर्भर करती है:

Sourceरेंज
OpenAI-compatible0.25 से 4.0 गुना
PocketTTSसंगत रैपर पर 0.25 से 4.0। आधिकारिक सर्वर स्पीड खुद तय करता है।
ElevenLabs0.7 से 1.2 गुना
xAI Voice0.7 से 1.5 गुना

रेंज से बाहर की सेव की हुई स्पीड सबसे नज़दीकी मंज़ूर वैल्यू पर ले आई जाती है। ElevenLabs के लिए दो और कंट्रोल हैं: Language (कोई भाषा तय करें, या इसे Auto detect पर छोड़ दें) और Stability (ज़्यादा भावपूर्ण से ज़्यादा एक जैसी आवाज़ तक)।

Auto-play

हर Auto-play टॉगल एक तरह का नया संदेश जेनरेट होते ही पढ़ देता है। इनके लिए Use text to speech चालू होना ज़रूरी है। सभी शुरू में बंद रहते हैं।

ऑटो-प्ले सिर्फ़ एक बार चलता है, सबसे नए जवाब पर, उसके पूरा होते ही। चैट दोबारा खोलने या स्क्रॉल करने पर यह पुराने संदेश दोबारा नहीं पढ़ता।

Roleplay में मुख्य जवाब सेव होते ही आवाज़ की तैयारी शुरू हो जाती है। अगर कोई चालू एजेंट जवाब दोबारा लिखता है, जैसे Prose Guardian, तो Marinara अंतिम टेक्स्ट का इंतज़ार करता है।

टेक्स्ट फ़िल्टर और भाव के निर्देश

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

Enable emotion indicators (भाव के संकेत चालू करें) देखने के लिए Roleplay speaker extractor (Roleplay में बोलने वाले की पहचान) चालू करें। यह संवाद के शब्द बदले बिना आवाज़ के निर्देश जोड़ता है। भाव के संकेत चालू होने पर वर्ग कोष्ठक वाला टेक्स्ट स्पीच सेवा को जाता है, भले ही Skip text inside square brackets चालू हो। इसमें नोट भी शामिल हो सकते हैं। वर्ग कोष्ठक वाले नोट को आवाज़ से बाहर रखने के लिए भाव के संकेत बंद करें और छोड़ने वाला विकल्प चालू रहने दें। लंबी पंक्ति को हिस्सों में बाँटते समय [Low, steady voice, restrained urgency] जैसे निर्देश पूरे बने रहते हैं। बोलने वालों और सीन के जाने-पहचाने लेबल फिर भी हटा दिए जाते हैं। हर निर्देश को कैसे इस्तेमाल करना है, यह स्पीच मॉडल तय करता है। Use text to speech, Game narration और भाव के संकेत चालू होने पर Game के सीन, पार्टी और कॉम्बैट के संवाद में भी निर्देश शामिल हो सकते हैं।

एक संदेश बुलवाना

TTS चालू होते ही हर कैरेक्टर या नैरेटर संदेश के नीचे टूलबार में Speak बटन (माइक्रोफ़ोन आइकन) दिखने लगता है।

संदेश बजते समय Pause speaking, Resume speaking और Restart speaking बटन दिखते हैं। स्पीकर आइकन वाला बटन Line volume स्लाइडर खोलता है, जो 0 से 100 प्रतिशत तक जाता है (डिफ़ॉल्ट 50)। यह Game Mode के मिक्सर और Conversation की कॉल वॉल्यूम से अलग है।

अगर यह काम नहीं किया, तो देखें समस्या-समाधान।

कैश की हुई क्लिप

Marinara बनी हुई ऑडियो आपके ब्राउज़र में सेव कर लेता है, ताकि एक ही पंक्ति दो बार जेनरेट न करनी पड़े। Cached clips पैनल में लाइव गिनती और कुल साइज़ दिखता है। हर कैश की हुई क्लिप को अलग-अलग ऑडियो फ़ाइल के रूप में सेव करने के लिए Export cached TTS clips (डाउनलोड आइकन) पर क्लिक करें। कैश अपनी सबसे पुरानी क्लिप खुद ही हटाता रहता है। ऐप में इसे साफ़ करने का कोई बटन नहीं है। इसे खाली करने के लिए अपने ब्राउज़र का डेटा साफ़ करें।

हर चैट मोड में TTS

Phonetic name (कॉल में उच्चारण)

अगर आवाज़ किसी कैरेक्टर या पर्सोना का नाम गलत बोलती है, तो Phonetic name जोड़ें और लिखें कि नाम कैसा सुनाई देना चाहिए। Character Editor में यह Voice टैब पर है। Persona Editor (पर्सोना एडिटर) में यह बुनियादी जानकारी वाले फ़ील्ड के साथ रहता है। यह सिर्फ़ Conversation की ऑडियो और वीडियो कॉल में इस्तेमाल होता है। Speak, ऑटो-प्ले और Game Mode का नैरेशन इसे अनदेखा करते हैं।

समस्या-समाधान

रेफ़रेंस: संगीत, साउंड इफ़ेक्ट और Gacha Forge

ये सेक्शन एडवांस्ड सेटअप के लिए हैं।

संगत ऑडियो सर्वर पर Game का संगीत और साउंड इफ़ेक्ट

  1. Connections में अपना Music & Sound Effects (संगीत और साउंड इफ़ेक्ट) अकाउंट Edit model (मॉडल एडिट करें) से खोलें और Custom compatible server (कस्टम संगत सर्वर) चुनें। Add account विंडो में इस अकाउंट टाइप की कोई टाइल नहीं है। यह किसी अपग्रेड या इंपोर्ट से आता है (देखें अकाउंट रेफ़रेंस)।
  2. अपने संगीत या साउंड इफ़ेक्ट सर्वर का पता, कुंजी और मॉडल भरें।
  3. Generation API format सेट करें और आपका सर्वर जो एंडपॉइंट पाथ देता है, वे भरें। खाली पाथ वाली सुविधा उपलब्ध नहीं रहती।
  4. Music generation (संगीत जेनरेट करें), Sound-effect generation (साउंड इफ़ेक्ट जेनरेट करें) या दोनों चालू करें।
  5. Game सेटअप या गेम की ऑडियो सेटिंग्स में यह अकाउंट चुनें। TTS कार्ड में अपना स्पीच अकाउंट अलग से चुना रहने दें।

एंडपॉइंट पाथ अकाउंट के Base URL के बाद जुड़ते हैं। http://localhost:8002/v1 के लिए /v1/chat/completions तक पहुँचने को chat/completions इस्तेमाल करें। बाकी लोकल संगत ऑडियो रिक्वेस्ट की तरह, लोकल HTTP एंडपॉइंट के लिए .env में TTS_LOCAL_URLS_ENABLED=true ज़रूरी है।

दो API फ़ॉर्मैट समर्थित हैं:

सिर्फ़ वही चालू करें जो आपका सर्वर सच में लागू करता है। सिर्फ़ OpenAI-compatible स्पीच एंडपॉइंट होने का मतलब यह नहीं कि वह संगीत या साउंड इफ़ेक्ट सपोर्ट करता है। Infermatic जैसी सेवा को इनमें से कोई फ़ॉर्मैट देना होगा या कोई अडैप्टर देना होगा। यहाँ उसके असली संगीत एंडपॉइंट की जाँच नहीं की गई है। ElevenLabs या SunoAPI की नेटिव जेनरेशन के लिए Music & Sound Effects में वही सोर्स इस्तेमाल करें। देखें अकाउंट रेफ़रेंस।

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

Gacha Forge में संवाद और ऑडियो

Gacha Forge 1.11.0 या नया वर्ज़न TTS कार्ड में चुना गया अकाउंट और उसमें हर कैरेक्टर को असाइन की गई आवाज़ें इस्तेमाल करता है। - इंपोर्ट किए गए उन कैरेक्टर के संवाद पढ़वाने के लिए, जिन्हें आवाज़ असाइन की गई है, Read character dialogue (कैरेक्टर के संवाद पढ़ें) चालू करें। यह नई दुनिया के Lore (लोर) सेटअप स्टेप में है, या मौजूदा दुनिया के लिए Gacha Forge की अपनी दुनिया-सेटिंग्स में। नैरेशन, विचार, Engine कैरेक्टर ID के बिना जेनरेट की गई यूनिट और बिना आवाज़ वाले कैरेक्टर चुप रहते हैं। सिर्फ़ नाम मिलने से किसी दूसरे कैरेक्टर की आवाज़ कभी नहीं ली जाती।

ये कंट्रोल पाने के लिए Engine के साथ इंस्टॉल किया गया Gacha Forge पैकेज भी अपडेट करें।

मिलती-जुलती गाइड