यह कौन सी समस्या हल करता है
बोली गई भाषा, कोड-स्विचिंग या कम-संसाधन वाली भाषाओं का अध्ययन करने वाले रिसर्चर्स को पर्याप्त स्वाभाविक, बातचीत वाला डेटा ढूंढने में मुश्किल होती है। कई वीडियो में कैप्शन नहीं होते, और जो होते हैं उनमें अलग-अलग क्वालिटी के इंसानी और ऑटोमैटिक सोर्स मिले होते हैं। टीमों को ऐसी एक जैसी पाइपलाइन चाहिए जो कई भाषाएं संभाले और दर्ज करे कि हर ट्रांसक्रिप्ट कहां से आया।
पहले वर्ज़न में क्या शामिल करें
- हर वीडियो के लिए उपलब्ध कैप्शन भाषाओं की पहचान
- बिना कैप्शन वाले वीडियो के लिए 99 भाषाओं में AI स्पीच रिकग्निशन
- भाषाएं मिलाकर बोली जाने वाली बोली के लिए कोड-स्विचिंग सपोर्ट
- अलाइनमेंट के लिए वर्ड-लेवल टाइमस्टैम्प
- हर ट्रांसक्रिप्ट की भाषा और कैप्शन सोर्स का मेटाडेटा
इसे कैसे बनाएं, स्टेप बाय स्टेप
- 01
उपयुक्त वीडियो ढूंढें
आपकी टारगेट भाषाओं वाले जाने-माने चैनल या प्लेलिस्ट resolve करें और /transcripts/{video_id}/languages कॉल करके देखें कि कौन से कैप्शन ट्रैक मौजूद हैं।
- 02
जहां हों, कैप्शन इस्तेमाल करें
जहां मैनुअल कैप्शन मौजूद हैं, उन्हें लाएं, क्योंकि वे आमतौर पर सबसे सटीक होते हैं।
- 03
स्पीच रिकग्निशन से कमी पूरी करें
बिना कैप्शन वाले वीडियो के लिए, भाषा सेट करके या ऑटो-डिटेक्ट के साथ ASR रिक्वेस्ट करें, और मिली-जुली भाषा वाली बोली के लिए codeSwitching चालू करें।
- 04
अलाइनमेंट डेटा के साथ स्टोर करें
वर्ड-लेवल टाइमस्टैम्प के लिए format.words रिक्वेस्ट करें और टेक्स्ट के साथ हर ट्रांसक्रिप्ट की भाषा और सोर्स स्टोर करें।
स्टार्टर कोड
यह आइडिया "रेसिपी 3: पूरी प्लेलिस्ट को नॉलेज बेस में लोड करें" पैटर्न पर बना है। अपने चैनल, प्रॉम्प्ट और स्टोरेज लगाएं।
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DBइसे बनाना क्यों फायदेमंद है
लैब और AI टीमों को उन भाषाओं में इवैल्यूएशन और रिसर्च डेटा मिलता है जिन्हें दूसरे तरीकों से इकट्ठा करना महंगा है। खास भाषाओं या डोमेन के साफ़, अच्छी तरह डॉक्यूमेंटेड डेटासेट मॉडल बनाने वालों के लिए भी कीमती हैं।
इन गलतियों से बचें
- ऑटोमैटिक कैप्शन को ग्राउंड ट्रुथ मान लेना: सोर्स लेबल करें और एक सैंपल हाथ से जांचें।
- बिना मेटाडेटा के बोलियां मिलाना: चैनल और क्षेत्र दर्ज करें ताकि नतीजों को सही तरह समझा जा सके।
- लाइसेंसिंग को नज़रअंदाज़ करना: कोई भी डेटासेट दोबारा बांटने से पहले प्लेटफ़ॉर्म की शर्तें और कॉपीराइट जांचें।
इस आइडिया से जुड़े सवाल
स्पीच रिकग्निशन कितनी भाषाएं सपोर्ट करता है?
AI स्पीच रिकग्निशन 99 भाषाएं सपोर्ट करता है, ऑटोमैटिक भाषा पहचान और मिली-जुली भाषा वाली बोली के लिए वैकल्पिक कोड-स्विचिंग के साथ।
क्या मुझे वर्ड-लेवल टाइमस्टैम्प मिल सकते हैं?
हां। हर शब्द की टाइमिंग पाने के लिए format.words रिक्वेस्ट करें, जो अलाइनमेंट और फ़ोनेटिक रिसर्च के लिए उपयोगी है।
क्या मैं YouTube से बना डेटासेट दोबारा बांट सकता हूं?
यह YouTube की शर्तों, कॉपीराइट कानून और आपके संस्थान की नीतियों पर निर्भर करता है। कई रिसर्चर ट्रांसक्रिप्ट की जगह वीडियो ID और कोड शेयर करते हैं।