Vercel AI SDK

ऑडियो और वीडियो फ़ाइलों से स्पीच ट्रांसक्राइब करने के लिए Vercel AI SDK में ElevenLabs Provider इस्तेमाल करें।

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

ElevenLabs Provider

ElevenLabs प्रोवाइडर, ElevenLabs ट्रांसक्रिप्शन API के लिए सपोर्ट देता है।

सेटअप

ElevenLabs प्रोवाइडर @ai-sdk/elevenlabs मॉड्यूल में उपलब्ध है। आप इसे npm से इंस्टॉल कर सकते हैं:

npm install @ai-sdk/elevenlabs

प्रोवाइडर इंस्टेंस

आप @ai-sdk/elevenlabs से डिफ़ॉल्ट प्रोवाइडर इंस्टेंस elevenlabs इंपोर्ट कर सकते हैं:

import { elevenlabs } from "@ai-sdk/elevenlabs";

अगर आपको कस्टम सेटअप चाहिए, तो आप @ai-sdk/elevenlabs से createElevenLabs इंपोर्ट करके अपनी सेटिंग्स के साथ प्रोवाइडर इंस्टेंस बना सकते हैं:

import { createElevenLabs } from "@ai-sdk/elevenlabs";
const elevenlabs = createElevenLabs({
// custom settings, e.g.
fetch: customFetch,
});

ElevenLabs प्रोवाइडर इंस्टेंस को कस्टमाइज़ करने के लिए आप ये वैकल्पिक सेटिंग्स इस्तेमाल कर सकते हैं:

  • apiKey string

    Authorization हेडर का इस्तेमाल करके भेजी जाने वाली API कुंजी। डिफ़ॉल्ट रूप से यह ELEVENLABS_API_KEY एनवायरनमेंट वेरिएबल होती है।

  • headers Record<string,string>

    अनुरोधों में शामिल करने के लिए कस्टम हेडर।

  • fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>

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

ट्रांसक्रिप्शन मॉडल

आप .transcription() फ़ैक्टरी मेथड से ElevenLabs ट्रांसक्रिप्शन API को कॉल करने वाले मॉडल बना सकते हैं।

पहला आर्ग्युमेंट मॉडल ID है, जैसे scribe_v2।

const model = elevenlabs.transcription("scribe_v2");

आप providerOptions आर्ग्युमेंट का इस्तेमाल करके अतिरिक्त प्रोवाइडर-विशिष्ट विकल्प भी दे सकते हैं। उदाहरण के लिए, अगर पहले से पता हो, तो ISO-639-1 (जैसे en) फ़ॉर्मैट में इनपुट भाषा देने से कभी-कभी ट्रांसक्रिप्शन की परफ़ॉर्मेंस बेहतर हो सकती है।

import { elevenlabs } from "@ai-sdk/elevenlabs";
import { experimental_transcribe as transcribe } from "ai";
const result = await transcribe({
model: elevenlabs.transcription("scribe_v2"),
audio: new Uint8Array([1, 2, 3, 4]),
providerOptions: { elevenlabs: { languageCode: "en" } },
});

ये प्रोवाइडर विकल्प उपलब्ध हैं:

  • languageCode string

    ऑडियो फ़ाइल की भाषा के अनुरूप ISO-639-1 या ISO-639-3 भाषा कोड। अगर पहले से पता हो, तो कभी-कभी ट्रांसक्रिप्शन की परफ़ॉर्मेंस बेहतर कर सकता है। डिफ़ॉल्ट रूप से null होता है, जिस स्थिति में भाषा का अनुमान अपने-आप लगाया जाता है।

  • tagAudioEvents boolean

    ट्रांसक्रिप्शन में (हँसी), (कदमों की आहट) आदि जैसे ऑडियो इवेंट टैग करने हैं या नहीं। डिफ़ॉल्ट रूप से true होता है।

  • numSpeakers integer

    अपलोड की गई फ़ाइल में बोलने वाले स्पीकर्स की अधिकतम संख्या। कौन कब बोल रहा है, इसका अनुमान लगाने में मदद कर सकता है। अधिकतम 32 स्पीकर्स का अनुमान लगाया जा सकता है। डिफ़ॉल्ट रूप से null होता है, जिस स्थिति में स्पीकर्स की संख्या मॉडल द्वारा सपोर्ट की गई अधिकतम वैल्यू पर सेट होती है।

  • timestampsGranularity enum

    ट्रांसक्रिप्शन में टाइमस्टैंप की ग्रैन्युलैरिटी। डिफ़ॉल्ट रूप से 'word' होता है। स्वीकार्य वैल्यू: 'none', 'word', 'character'।

  • diarize boolean

    अपलोड की गई फ़ाइल में इस समय कौन-सा स्पीकर बोल रहा है, यह एनोटेट करना है या नहीं। डिफ़ॉल्ट रूप से true होता है।

  • fileFormat enum

    इनपुट ऑडियो का फ़ॉर्मैट। डिफ़ॉल्ट रूप से 'other' होता है। स्वीकार्य वैल्यू: 'pcm_s16le_16', 'other'। 'pcm_s16le_16' के लिए, इनपुट ऑडियो 16kHz सैंपल रेट, सिंगल चैनल (मोनो) और लिटल-एंडियन बाइट ऑर्डर वाला 16-बिट PCM होना चाहिए। एन्कोडेड वेवफ़ॉर्म देने की तुलना में लेटेंसी कम होगी।

अगले चरण