मल्टीचैनल स्पीच टू टेक्स्ट
मल्टीचैनल स्पीच टू टेक्स्ट
यह गाइड बताती है कि स्पीच टू टेक्स्ट API के साथ मल्टीचैनल ट्रांसक्रिप्शन मोड का इस्तेमाल कैसे करें।
कैसे करें गाइड · मान लिया गया है कि आपने स्पीच टू टेक्स्ट क्विकस्टार्ट पूरा कर लिया है।
परिचय
मल्टीचैनल स्पीच टू टेक्स्ट फीचर आपको ऐसी ऑडियो फ़ाइलों का ट्रांसक्रिप्शन करने देता है जिनमें हर चैनल में अलग स्पीकर होता है। यह खास तौर पर उन रिकॉर्डिंग के लिए उपयोगी है जिनमें स्पीकर अलग-अलग ऑडियो चैनलों पर अलग किए गए हों। इससे स्पीकर डायरीकरण की ज़रूरत के बिना साफ़ ट्रांसक्रिप्शन मिलते हैं।
हर चैनल को अलग से प्रोसेस किया जाता है और उसके चैनल नंबर के आधार पर उसे अपने-आप एक स्पीकर ID दी जाती है (चैनल 0 → speaker_0, चैनल 1 → speaker_1, आदि)। सिस्टम आपकी इनपुट ऑडियो फ़ाइल से अलग-अलग चैनल निकालता है और उनका समानांतर ट्रांसक्रिप्शन करता है। डिफ़ॉल्ट रूप से API हर चैनल के लिए एक ट्रांसक्रिप्ट लौटाता है; इसके बजाय सभी चैनलों को शुरू होने के समय के अनुसार क्रमबद्ध एक ही सूची में मर्ज किए गए एकल ट्रांसक्रिप्ट के रूप में पाने के लिए multichannel_output_style=combined सेट करें, जिसमें हर शब्द को उसके channel_index से टैग किया गया हो।
आम उपयोग के मामले
- स्टीरियो इंटरव्यू रिकॉर्डिंग - बाएं चैनल पर इंटरव्यूअर, दाएं चैनल पर इंटरव्यू देने वाला
- मल्टी-ट्रैक पॉडकास्ट रिकॉर्डिंग - हर प्रतिभागी अलग ट्रैक पर रिकॉर्ड किया गया
- कॉल सेंटर रिकॉर्डिंग - एजेंट और ग्राहक अलग-अलग चैनलों पर
- कॉन्फ़्रेंस रिकॉर्डिंग - अलग-अलग प्रतिभागी अलग चैनलों पर
- अदालती कार्यवाही - कई पक्ष अलग-अलग चैनलों पर रिकॉर्ड किए गए
आवश्यकताएं
- API key वाला ElevenLabs अकाउंट
- मल्टीचैनल ऑडियो फ़ाइल (WAV, MP3 या अन्य समर्थित फ़ॉर्मैट)
- हर ऑडियो फ़ाइल में अधिकतम 5 चैनल
- हर चैनल में केवल एक स्पीकर होना चाहिए
यह कैसे काम करता है
अपना मल्टीचैनल ऑडियो तैयार करें
पक्का करें कि आपकी ऑडियो फ़ाइल में स्पीकर अलग-अलग चैनलों पर अलग हों। मल्टीचैनल फीचर अधिकतम 5 चैनलों का समर्थन करता है, जिसमें हर चैनल एक खास स्पीकर से मैप होता है:
- चैनल 0 →
speaker_0 - चैनल 1 →
speaker_1 - चैनल 2 →
speaker_2 - चैनल 3 →
speaker_3 - चैनल 4 →
speaker_4
API पैरामीटर कॉन्फ़िगर करें
स्पीच-टू-टेक्स्ट अनुरोध करते समय, आपको ये सेट करने होंगे:
use_multi_channel:truediarize:false(मल्टीचैनल मोड चैनलों के ज़रिए स्पीकर को अलग करता है)
वैकल्पिक रूप से, रिस्पॉन्स का स्वरूप नियंत्रित करने के लिए:
multichannel_output_style:separate(डिफ़ॉल्ट) हर चैनल के लिए एक ट्रांसक्रिप्ट लौटाता है।combinedसभी चैनलों को एक ही ट्रांसक्रिप्ट में मर्ज करता है, जिसके शब्द शुरू होने के समय के अनुसार क्रमबद्ध होते हैं और हर शब्द मेंchannel_indexहोता है — जो मानक सिंगल-चैनल रिस्पॉन्स के स्वरूप से मेल खाता है।combinedके लिए टाइमस्टैम्प ज़रूरी हैं (timestamps_granularitynoneनहीं होना चाहिए) और यह वेबहुक डिलीवरी या एंटिटी डिटेक्शन/रिडैक्शन के साथ समर्थित नहीं है।
num_speakers पैरामीटर को मल्टीचैनल मोड के साथ इस्तेमाल नहीं किया जा सकता, क्योंकि स्पीकर की संख्या चैनलों की संख्या से अपने-आप तय होती है। मल्टीचैनल मोड मानता है कि हर चैनल में ठीक एक स्पीकर होगा। अगर ज़्यादा स्पीकर हैं, तो यह चैनल के सभी स्पीकर को एक ही स्पीकर ID देगा।
रिस्पॉन्स प्रोसेस करें
डिफ़ॉल्ट रूप से (multichannel_output_style=separate), मल्टीचैनल ऑडियो सिंगल-चैनल से अलग रिस्पॉन्स फ़ॉर्मैट लौटाता है:
अगर आप use_multi_channel: true सेट करते हैं, लेकिन सिंगल-चैनल (मोनो) ऑडियो फ़ाइल देते हैं, तो आपको
मल्टीचैनल फ़ॉर्मैट के बजाय मानक सिंगल-चैनल रिस्पॉन्स मिलेगा। मल्टीचैनल रिस्पॉन्स
फ़ॉर्मैट केवल तब लौटता है जब ऑडियो फ़ाइल में वास्तव में कई चैनल हों।
multichannel_output_style=combined के साथ, रिस्पॉन्स सिंगल-चैनल ट्रांसक्रिप्शन जैसा ही फ्लैट स्वरूप इस्तेमाल करता है (टॉप-लेवल text और words, कोई transcripts ऐरे नहीं), जिसमें सभी चैनल शुरू होने के समय के अनुसार क्रमबद्ध एक ही सूची में मर्ज होते हैं। हर शब्द में उसके चैनल की पहचान करने के लिए channel_index (और speaker_id) शामिल होता है।
इम्प्लीमेंटेशन
बुनियादी मल्टीचैनल ट्रांसक्रिप्शन
यहां दो स्पीकर वाली स्टीरियो ऑडियो फ़ाइल का ट्रांसक्रिप्शन करने का पूरा उदाहरण है:
बातचीत के ट्रांसक्रिप्ट बनाना
समय के अनुसार क्रमबद्ध, बातचीत-शैली का ट्रांसक्रिप्ट पाने का सबसे आसान तरीका multichannel_output_style=combined का अनुरोध करना है — API हर शब्द पर channel_index और speaker_id के साथ, शुरू होने के समय के अनुसार पहले से क्रमबद्ध एक ही words सूची लौटाता है:
अगर आप डिफ़ॉल्ट separate आउटपुट इस्तेमाल कर रहे हैं, तो इसके बजाय क्लाइंट-साइड पर हर चैनल के ट्रांसक्रिप्ट मर्ज कर सकते हैं:
मल्टीचैनल के साथ वेबहुक इस्तेमाल करना
मल्टीचैनल ट्रांसक्रिप्शन असिंक्रोनस प्रोसेसिंग के लिए वेबहुक डिलीवरी का समर्थन करता है:
वेबहुक separate (हर चैनल का अलग) फ़ॉर्मैट लौटाते हैं। multichannel_output_style=combined अभी
वेबहुक डिलीवरी के साथ समर्थित नहीं है — सिंक्रोनस अनुरोध इस्तेमाल करें, या हर चैनल का
वेबहुक पेलोड क्लाइंट-साइड पर मर्ज करें।
त्रुटि प्रबंधन
आम वैलिडेशन त्रुटियां
मल्टीचैनल मोड के साथ diarize=true सेट करना
त्रुटि: मल्टीचैनल मोड डायरीकरण का समर्थन नहीं करता और स्पीकर के बोलने वाले चैनल के आधार पर उन्हें असाइन करता है।
समाधान: मल्टीचैनल मोड इस्तेमाल करते समय हमेशा diarize=false सेट करें।
num_speakers पैरामीटर देना
त्रुटि: use_multi_channel सक्षम होने पर num_speakers निर्दिष्ट नहीं किया जा सकता। स्पीकर की संख्या
चैनलों की संख्या से अपने-आप तय होती है। समाधान: अपने अनुरोध से num_speakers
पैरामीटर हटा दें।
5 से ज़्यादा चैनल वाली ऑडियो फ़ाइल
त्रुटि: मल्टीचैनल मोड अधिकतम 5 चैनलों का समर्थन करता है, लेकिन ऑडियो फ़ाइल में X चैनल हैं।
समाधान: केवल पहले 5 चैनल प्रोसेस करें या चैनल की संख्या घटाने के लिए अपनी ऑडियो को पहले प्रोसेस करें।
टाइमस्टैम्प के बिना संयुक्त आउटपुट इस्तेमाल करना
त्रुटि: multichannel_output_style=‘combined’ के लिए टाइमस्टैम्प ज़रूरी हैं; timestamps_granularity को ‘word’ या ‘character’ पर सेट करें।
समाधान: संयुक्त आउटपुट शब्दों को समय के अनुसार क्रमबद्ध करता है, इसलिए timestamps_granularity को word
(डिफ़ॉल्ट) या character पर सेट करें।
वेबहुक के साथ संयुक्त आउटपुट इस्तेमाल करना
त्रुटि: multichannel_output_style=‘combined’ अभी वेबहुक डिलीवरी के साथ समर्थित नहीं है।
समाधान: combined के साथ सिंक्रोनस अनुरोध इस्तेमाल करें, या वेबहुक इस्तेमाल करते समय डिफ़ॉल्ट separate आउटपुट
रखें और क्लाइंट-साइड पर मर्ज करें।
सर्वोत्तम तरीके
ऑडियो तैयार करना
बेहतरीन नतीजों के लिए: - बेहतर परफ़ॉर्मेंस के लिए 16kHz सैंपल रेट इस्तेमाल करें - प्रोसेसिंग से पहले शांत या इस्तेमाल न होने वाले चैनल हटा दें - पक्का करें कि हर चैनल में सिर्फ़ एक स्पीकर हो - बेहतरीन क्वालिटी के लिए जहां संभव हो लॉसलेस फ़ॉर्मैट (WAV) इस्तेमाल करें
परफ़ॉर्मेंस ऑप्टिमाइज़ेशन
कनकरेंसी लागत चैनलों की संख्या के साथ रैखिक रूप से बढ़ती है। 60 सेकंड की 3-चैनल फ़ाइल की कनकरेंसी लागत सिंगल-चैनल फ़ाइल की 3 गुना होती है।
आप नीचे दिए गए फ़ॉर्मूले से मल्टीचैनल ऑडियो के प्रोसेसिंग समय का अनुमान लगा सकते हैं:
जहां:
- = फ़ाइल की अवधि, सेकंड में
- = चैनलों की संख्या
- = प्रोसेसिंग स्पीड फ़ैक्टर (लगभग रियल-टाइम का 30%)
- = सेकंड में निश्चित ओवरहेड
- = सेकंड में प्रति-चैनल ओवरहेड
उदाहरण: 60 सेकंड की स्टीरियो फ़ाइल (2 चैनल) के लिए:
मेमोरी से जुड़ी बातें
बड़ी मल्टीचैनल फ़ाइलों के लिए, स्ट्रीमिंग या चंकिंग पर विचार करें:
FAQ
अगर मेरे ऑडियो में 5 से ज़्यादा चैनल हों तो क्या होगा?
API एक त्रुटि लौटाएगा। आपको API को भेजने के लिए 5 चैनल चुनने होंगे या API को भेजने से पहले कुछ चैनलों को मिक्स डाउन करना होगा।
क्या मैं मल्टीचैनल मोड के साथ मोनो ऑडियो प्रोसेस कर सकता हूं?
हां, लेकिन यह ज़रूरी नहीं है। अगर आप use_multi_channel=true के साथ मोनो ऑडियो भेजते हैं, तो आपको
मल्टीचैनल फ़ॉर्मैट के बजाय मानक सिंगल-चैनल रिस्पॉन्स मिलेगा।
क्या अलग-अलग हर-चैनल ट्रांसक्रिप्ट की जगह एक संयुक्त ट्रांसक्रिप्ट मिल सकता है?
हां। सभी चैनलों को मर्ज करके शुरू होने के समय के अनुसार क्रमबद्ध एक ट्रांसक्रिप्ट पाने के लिए multichannel_output_style=combined सेट करें,
जिसमें हर शब्द को उसके channel_index से टैग किया गया हो। यह मानक
सिंगल-चैनल रिस्पॉन्स के स्वरूप से मेल खाता है। इसके लिए टाइमस्टैम्प ज़रूरी हैं और यह वेबहुक
डिलीवरी के साथ उपलब्ध नहीं है।
स्पीकर ID कैसे असाइन होती हैं?
स्पीकर ID चैनल नंबर के आधार पर निर्धारित होती हैं: चैनल 0 speaker_0 बनता है, चैनल 1 speaker_1 बनता है, और इसी तरह आगे।
क्या चैनलों की भाषाएं अलग हो सकती हैं?
हां, हर चैनल को अलग से प्रोसेस किया जाता है और वह अलग भाषाएं पहचान सकता है। भाषा
पहचान हर चैनल पर होती है। multichannel_output_style=combined के साथ, टॉप-लेवल
language_code सबसे भरोसेमंद चैनल को दर्शाता है, जबकि हर शब्द में अब भी उसका
channel_index होता है।