क्लाइंट-साइड स्ट्रीमिंग

यह गाइड दिखाती है कि ElevenLabs का इस्तेमाल करके क्लाइंट साइड पर रियल टाइम में ऑडियो को कैसे ट्रांसक्राइब करें।

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

ओवरव्यू

ElevenLabs Realtime स्पीच टू टेक्स्ट API आपको Scribe Realtime v2 मॉडल के साथ बेहद कम लेटेंसी में रियल-टाइम ऑडियो स्ट्रीम ट्रांसक्राइब करने देता है। चाहे आप वॉइस असिस्टेंट, ट्रांसक्रिप्शन सर्विस या लाइव स्पीच रिकग्निशन की ज़रूरत वाले किसी भी ऐप्लिकेशन पर काम कर रहे हों, यह WebSocket-आधारित API आपके बोलते समय आंशिक ट्रांसक्रिप्ट और स्पीच सेगमेंट पूरा होने पर कमिट किए गए ट्रांसक्रिप्ट देता है।

Scribe v2 Realtime को क्लाइंट साइड पर लागू करके माइक्रोफ़ोन के ज़रिए या ऑडियो को मैन्युअली चंक्स में बांटकर, रियल-टाइम में ऑडियो ट्रांसक्राइब किया जा सकता है।

क्लाइंट साइड इम्प्लीमेंटेशन सर्वर साइड से कुछ मायनों में अलग है:

  • इसके लिए सिंगल-यूज़ टोकन चाहिए — यह एक अस्थायी टोकन है, जिससे आप अपनी API key एक्सपोज़ किए बिना API से कनेक्ट कर सकते हैं।
  • माइक्रोफ़ोन से मिले ऑडियो को ट्रांसक्राइब करने के लिए सीधे API पर पाइप किया जा सकता है; ऑडियो को मैन्युअली चंक्स में बांटने की ज़रूरत नहीं होती।

URL से ऑडियो स्ट्रीम करने के लिए, सर्वर-साइड स्ट्रीमिंग गाइड देखें।

क्विकस्टार्ट

यह गाइड मानती है कि आपने अपनी API key सेट अप कर ली है। अगर नहीं की है, तो पहले क्विकस्टार्ट पूरा करें।

1

SDK इंस्टॉल करें

npm install @elevenlabs/react @elevenlabs/elevenlabs-js
2

टोकन बनाएं

क्लाइंट साइड SDK इस्तेमाल करने के लिए, आपको सिंगल-यूज़ टोकन बनाना होगा। यह एक अस्थायी टोकन है, जिससे आप अपनी API key एक्सपोज़ किए बिना API से कनेक्ट कर सकते हैं। इसे सर्वर साइड पर ElevenLabs API के ज़रिए किया जा सकता है।

अपनी API key कभी भी क्लाइंट के सामने एक्सपोज़ न करें।

// Node.js server
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const elevenlabs = new ElevenLabsClient({
apiKey: process.env.ELEVENLABS_API_KEY,
});
app.get("/scribe-token", yourAuthMiddleware, async (req, res) => {
const token = await elevenlabs.tokens.singleUse.create("realtime_scribe");
res.json(token);
});

सिंगल-यूज़ टोकन 15 मिनट बाद अपने-आप एक्सपायर हो जाता है।

3

ट्रांसक्रिप्शन सेशन शुरू करें

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

API में उपलब्ध सभी पैरामीटर्स और विकल्पों की सूची के लिए, API रेफरेंस देखें।

import { useScribe } from "@elevenlabs/react";
function MyComponent() {
const scribe = useScribe({
modelId: "scribe_v2_realtime",
onPartialTranscript: (data) => {
console.log("Partial:", data.text);
},
onCommittedTranscript: (data) => {
console.log("Committed:", data.text);
},
onCommittedTranscriptWithTimestamps: (data) => {
console.log("Committed with timestamps:", data.text);
console.log("Timestamps:", data.words);
},
});
const handleStart = async () => {
// Fetch a single use token from the server
const token = await fetchTokenFromServer();
await scribe.connect({
token,
microphone: {
echoCancellation: true,
noiseSuppression: true,
},
});
};
return (
<div>
<button onClick={handleStart} disabled={scribe.isConnected}>
Start Recording
</button>
<button onClick={scribe.disconnect} disabled={!scribe.isConnected}>
Stop
</button>
{scribe.partialTranscript && <p>Live: {scribe.partialTranscript}</p>}
<div>
{scribe.committedTranscripts.map((t) => (
<p key={t.id}>{t.text}</p>
))}
</div>
</div>
);
}

अगले चरण