دليل البناء · الباحثون

كيف تبني مجموعة بيانات كلام متعددة اللغات من نصوص YouTube

لا تمثّل المدونات النصية المكتوبة طريقة كلام الناس الفعلية تمثيلًا كافيًا، خاصةً في اللغات واللهجات قليلة المحتوى المنشور. ويحتوي YouTube على كلام محادثي بكل لغة تقريبًا. والنصوص المزودة بتوقيت على مستوى الكلمة تحوّله إلى بيانات بحثية قابلة للاستخدام.

لمن هذه الفكرة
علماء اللسانيات الحاسوبية، ومختبرات معالجة اللغات الطبيعية، وفرق تقييم الذكاء الاصطناعي
مدة البناء
شهر واحد
نقاط نهاية API
/transcripts/{video_id}/languagesasr_options.codeSwitchingformat.words

المشكلة التي تحلها

يجد الباحثون الذين يدرسون اللغة المنطوقة أو التبديل اللغوي أو اللغات منخفضة الموارد صعوبة في العثور على بيانات طبيعية ومحادثية كافية. فكثير من الفيديوهات تفتقر إلى الترجمة المصاحبة، والمتوفر منها يخلط بين مصادر بشرية وتلقائية متفاوتة الجودة. تحتاج الفرق إلى مسار متسق يتعامل مع لغات كثيرة ويسجّل مصدر كل نص.

ما يجب تضمينه في نسختك الأولى

  • اكتشاف لغات الترجمة المصاحبة المتاحة لكل فيديو
  • التعرف على الكلام بالذكاء الاصطناعي بـ 99 لغة للفيديوهات بلا ترجمة مصاحبة
  • دعم التبديل اللغوي للكلام الذي يمزج بين اللغات
  • طوابع زمنية على مستوى الكلمة للمحاذاة
  • بيانات وصفية عن اللغة ومصدر الترجمة لكل نص

كيف تبنيها خطوة بخطوة

  1. 01

    اعثر على الفيديوهات المرشحة

    حلّل القنوات أو قوائم التشغيل المعروفة بتقديم لغاتك المستهدفة، واستدعِ /transcripts/{video_id}/languages لمعرفة مسارات الترجمة المتوفرة.

  2. 02

    استخدم الترجمة المصاحبة حيثما توفرت

    اجلب الترجمات اليدوية حيث توجد، فهي عادةً الأكثر دقة.

  3. 03

    سدّ الفجوات بالتعرف على الكلام

    للفيديوهات بلا ترجمة مصاحبة، اطلب ASR مع تحديد اللغة أو اكتشافها تلقائيًا، وفعّل codeSwitching للكلام المختلط بين اللغات.

  4. 04

    خزّن مع بيانات المحاذاة

    اطلب format.words للحصول على طوابع زمنية على مستوى الكلمة، وخزّن لغة كل نص ومصدره إلى جانب النص.

كود جاهز للبدء

تعتمد هذه الفكرة على نمط «الوصفة 3: حمّل قائمة تشغيل كاملة في قاعدة معرفة». استبدل القنوات والتعليمات (prompts) ووسيلة التخزين بما يناسبك.

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

لماذا تستحق البناء

تحصل المختبرات وفرق الذكاء الاصطناعي على بيانات تقييم وبحث بلغات يكون جمعها مكلفًا بطرق أخرى. كما أن مجموعات البيانات النظيفة والموثّقة جيدًا للغات أو مجالات معينة ذات قيمة لبناة النماذج.

أخطاء يجب تجنبها

  • افتراض أن الترجمة التلقائية هي الحقيقة المرجعية: صنّف المصادر وتحقق من عينة يدويًا.
  • خلط اللهجات دون بيانات وصفية: سجّل القناة والمنطقة ليمكن تفسير النتائج.
  • إغفال الترخيص: تحقق من شروط المنصة وحقوق النشر قبل إعادة توزيع أي مجموعة بيانات.

أسئلة حول هذه الفكرة

كم لغة يدعمها التعرف على الكلام؟

يدعم التعرف على الكلام بالذكاء الاصطناعي 99 لغة، مع اكتشاف تلقائي للغة ودعم اختياري للتبديل اللغوي في الكلام المختلط.

هل يمكنني الحصول على طوابع زمنية على مستوى الكلمة؟

نعم. اطلب format.words لتحصل على توقيت كل كلمة، وهو مفيد للمحاذاة والأبحاث الصوتية.

هل يمكنني إعادة توزيع مجموعة بيانات مبنية من YouTube؟

يعتمد ذلك على شروط YouTube وقانون حقوق النشر وسياسات مؤسستك. يشارك كثير من الباحثين معرّفات الفيديوهات والكود بدلًا من النصوص نفسها.

ابدأ البناء اليوم

10 أرصدة مجانية كل شهر. لا حاجة إلى بطاقة ائتمان.

كيف تبني مجموعة بيانات كلام متعددة اللغات من YouTube | YouTubeTranscript.dev