ट्रांसक्रिप्ट और कमिट रणनीतियां

यह गाइड आपको ElevenLabs रीयलटाइम स्पीच टू टेक्स्ट API के साथ ट्रांसक्रिप्ट और कमिट रणनीतियां संभालना दिखाती है।

हाउ-टू गाइड · मानकर चलता है कि आपने क्लाइंट-साइड या सर्वर-साइड स्ट्रीमिंग गाइड पूरी कर ली है।

ओवरव्यू

ऑडियो ट्रांसक्राइब करते समय, आपको आंशिक और कमिट किए गए ट्रांसक्रिप्ट मिलेंगे।

  • आंशिक ट्रांसक्रिप्ट - ट्रांसक्रिप्शन के अंतरिम परिणाम
  • कमिट किए गए ट्रांसक्रिप्ट - ट्रांसक्रिप्शन सेगमेंट के अंतिम परिणाम, जो “commit” मैसेज मिलने पर भेजे जाते हैं। एक सेशन में कई कमिट किए गए ट्रांसक्रिप्ट हो सकते हैं।

कमिट ट्रांसक्रिप्ट में वैकल्पिक रूप से शब्द-स्तर के टाइमस्टैंप हो सकते हैं। ये केवल तब मिलते हैं, जब “include timestamps” विकल्प true पर सेट हो।

# Initialize the connection
connection = await elevenlabs.speech_to_text.realtime.connect(RealtimeUrlOptions(
model_id="scribe_v2_realtime",
include_timestamps=True, # Include this to receive the RealtimeEvents.COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS event with word-level timestamps
))

कमिट रणनीतियां

WebSocket के ज़रिए ऑडियो चंक भेजते समय, ट्रांसक्रिप्ट सेगमेंट दो तरीकों से कमिट किए जा सकते हैं: मैन्युअल कमिट या वॉइस एक्टिविटी डिटेक्शन (VAD)।

मैन्युअल कमिट

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

बेहतर नतीजों के लिए, साइलेंस अवधि या किसी अन्य तार्किक बिंदु, जैसे टर्न मॉडल, के दौरान कमिट करें।

पहले 2 सेकंड का ऑडियो भेजने के बाद ट्रांसक्रिप्ट प्रोसेसिंग शुरू होती है।
await connection.send({
"audio_base_64": audio_base_64,
"sample_rate": 16000,
})
# When ready to finalize the segment
await connection.commit()

कम समय में लगातार कई बार मैन्युअल कमिट करने से मॉडल की परफ़ॉर्मेंस खराब हो सकती है।

पिछले टेक्स्ट कॉन्टेक्स्ट को भेजना

ट्रांसक्रिप्शन के लिए ऑडियो भेजते समय, आप मॉडल को बातचीत का कॉन्टेक्स्ट समझने में मदद करने के लिए पहले ऑडियो चंक के साथ पिछले टेक्स्ट का कॉन्टेक्स्ट भेज सकते हैं। यह कुछ स्थितियों में उपयोगी है:

  • कन्वर्सेशनल AI इस्तेमाल के मामलों के लिए एजेंट टेक्स्ट - मॉडल को बातचीत का कॉन्टेक्स्ट आसानी से समझने और बेहतर ट्रांसक्रिप्शन बनाने में मदद मिलती है।
  • नेटवर्क त्रुटि के बाद फिर से कनेक्ट करना - इससे मॉडल पिछले टेक्स्ट को मार्गदर्शन के रूप में इस्तेमाल करते हुए ट्रांसक्राइब करना जारी रख सकता है।
  • सामान्य संदर्भ जानकारी - ट्रांसक्रिप्शन किस बारे में होगा, इसका छोटा विवरण मॉडल को कॉन्टेक्स्ट समझने में मदद करता है।

previous_text कॉन्टेक्स्ट केवल पहले ऑडियो चंक को connection.send() के ज़रिए भेजते समय ही भेजा जा सकता है। बाद के चंक्स में इसे भेजने पर त्रुटि मिलेगी। पिछला टेक्स्ट सबसे अच्छा तब काम करता है, जब उसकी लंबाई 50 वर्णों से कम हो।

await connection.send({
"audio_base_64": audio_base_64,
"previous_text": "The previous text context",
})

वॉइस एक्टिविटी डिटेक्शन (VAD)

VAD रणनीति में, ट्रांसक्रिप्शन इंजन बोलने और साइलेंस सेगमेंट को अपने-आप पहचानता है। साइलेंस थ्रेशोल्ड पहुंचने पर, ट्रांसक्रिप्शन इंजन ट्रांसक्रिप्ट सेगमेंट को अपने-आप कमिट कर देगा।

क्लाइंट-साइड इंटीग्रेशन में माइक्रोफ़ोन से ऑडियो ट्रांसक्राइब करते समय, VAD रणनीति इस्तेमाल करने की सलाह दी जाती है।

import { Scribe, AudioFormat, CommitStrategy } from "@elevenlabs/client";
const connection = Scribe.connect({
token: "sutkn_1234567890",
modelId: "scribe_v2_realtime",
audioFormat: AudioFormat.PCM_16000,
commitStrategy: CommitStrategy.VAD,
vadSilenceThresholdSecs: 1.5,
vadThreshold: 0.4,
minSpeechDurationMs: 100,
minSilenceDurationMs: 100,
});

समर्थित ऑडियो फ़ॉर्मैट

फ़ॉर्मैटसैंपल रेटविवरण
pcm_80008 kHz16-बिट PCM, लिटल-एंडियन
pcm_1600016 kHz16-बिट PCM, लिटल-एंडियन (अनुशंसित)
pcm_2205022.05 kHz16-बिट PCM, लिटल-एंडियन
pcm_2400024 kHz16-बिट PCM, लिटल-एंडियन
pcm_4410044.1 kHz16-बिट PCM, लिटल-एंडियन
pcm_4800048 kHz16-बिट PCM, लिटल-एंडियन
ulaw_80008 kHz8-बिट μ-law एन्कोडिंग

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

ऑडियो क्वालिटी

  • बेहतरीन नतीजों के लिए, क्वालिटी और बैंडविड्थ के संतुलन हेतु 16kHz सैंपल रेट इस्तेमाल करें।
  • कम से कम बैकग्राउंड शोर के साथ साफ़ ऑडियो इनपुट सुनिश्चित करें।
  • क्लिपिंग से बचने के लिए उचित माइक्रोफ़ोन गेन इस्तेमाल करें।
  • फ़िलहाल केवल मोनो ऑडियो समर्थित है।

चंक साइज़

  • सहज स्ट्रीमिंग के लिए 0.1 - 1 सेकंड की अवधि के ऑडियो चंक भेजें।
  • छोटे चंक्स से लेटेंसी कम होती है, लेकिन ओवरहेड बढ़ता है।
  • बड़े चंक्स अधिक कुशल होते हैं, लेकिन लेटेंसी बढ़ा सकते हैं।

अगले चरण