برنامه نویسی

یک ربات Discord که ASL را آموزش می دهد

این متن خلاصه‌ای از پروژه «ASL Learner» است که توسط یک دانشجوی دانشگاه RIT (وابسته به موسسه NTID برای ناشنوایان) با استفاده از Google Gemini ساخته شده بود. هدف اصلی ایجاد یک ربات Discord برای یادگیری سریع و کاربردی زبان اشاره‌ای (ASL) بود، از آنجا که روش‌های موجود برای یادگیری ASL یا زمان‌بر بود یا پولی محسوب می‌شدند.

نقطه قوت پروژه، استفاده اصولی از مبانی یادگیری زبان است تا کاربر به سرعت بتواند مکالمه‌های عملی در ASL را فرا گیرد. ربات تمرکز بر واژگان و نحو اساسی دارد و آموزش اصطلاحات یا گویش‌های خاص فرهنگ ناشنوایان را به کاربر واگذار می‌کند تا خود با جامعه واقعی تعامل پیدا کند.

چالش اصلی، ترجمه رشته‌های متنی به حرکات ASL بود. راه‌حل ترکیب بود:

  1. استفاده از Google Gemini API برای تبدیل دستور زبان انگلیسی به نحو ASL.
  2. رفع ابهام هم‌نام‌ها (کلمات با تلفظ یکسان اما نشانه‌های متفاوت).
  3. بازیابی نشانه‌های فردی از یک پایگاه داده آنلاین حاوی ویدیوهای ضبط شده.
  4. ادغام این نشانه‌ها در یک GIF برای نمایش در Discord.

Google Gemini در بخش‌های مختلف به توسعه دهنده کمک کرد: نوشتن کد خسته‌کننده، مدیریت فایل‌های JSON برای طرح درس و واژگان، بهره‌گیری از کتابخانه‌های پردازش ویدیو و هماهنگی با Discord API. در حال حاضر نسخه نمایی بدون GIF، از متن در کارت‌های فلش استفاده می‌کند.

تعداد کلمات: 200

این یک ارسال برای Built with Google Gemini: Writing Challenge است

آنچه من با Google Gemini ساختم

من به RIT می روم، مدرسه ای در ایالت نیویورک که با موسسه ملی فنی ناشنوایان (NTID) پردیس مشترکی دارد. من واقعاً می خواستم ASL را یاد بگیرم، اما منابع یادگیری آنلاین یا به طور غیرضروری وقت گیر بود، پشت یک دیوار پرداخت یا هر دو. من می توانستم 30 ساعت وقت صرف یادگیری ASL از YouTube کنم، اما یک برنامه نویس هستم، بنابراین در عوض 3 ماه را صرف توسعه یک ربات Discord کردم که از اصول اولیه یادگیری زبان استفاده می کند تا به سرعت کاربر را به صورت کاربردی در ASL مکالمه کند تا بتواند به طور موثر ارتباط برقرار کند.
این ربات عمداً فرهنگ ناشنوایان یا زبان عامیانه را آموزش نمی دهد زیرا من معتقدم که دانش به بهترین وجه از طریق تعامل با جامعه واقعی ASL به دست می آید، بنابراین تصمیم گرفتم واژگان و نحو اساسی را در اولویت قرار دهم و به کاربر تکیه کنم تا با کسانی که با استفاده از این ابزارهای اساسی بیشتر در فرهنگ جا افتاده اند، ملاقات و صحبت کنم.
سخت ترین قسمت این ربات ایجاد سیستمی برای ترجمه رشته ای از متن به ASL بود. من یک پایگاه داده به صورت آنلاین پیدا کردم که حاوی ضبط‌هایی از افرادی بود که علائم متفاوتی را نشان می‌دادند، اما نتوانستم مستقیماً یک رشته متن را ترجمه کنم زیرا تفاوت‌های نحوی وجود دارد، به‌علاوه مجموعه‌ای از کلمات در انگلیسی وجود دارد که همنام هستند اما علائم متفاوتی دارند. برای ایجاد تمام ترجمه‌های لازم، باید از Google Gemini API دستور زبان انگلیسی گفتاری را به نحو ASL تبدیل می‌کردم، یک مرحله شفاف‌سازی هم‌نام را تکمیل می‌کردم، هر کلمه را در رشته به‌دست‌آمده از پایگاه داده دریافت می‌کردم و همه آن‌ها را با هم در یک GIF برای ربات Discord قرار می‌دادم تا در نهایت ارسال شود. این یک پروژه واقعا جالب بود که هم پایتون و هم جاوا اسکریپت را با هم ترکیب می کرد.
جمینی با نوشتن بخش‌های خسته‌کننده‌تر پایگاه کد کمک کرد. من طرح درس را در یک Json با برچسب هایی نوشتم که قرار بود با یک کلمه تصادفی از بانک کلمه ای که من هم نوشتم جایگزین شود و کلمات به آرامی در حالی که از ماژول های مختلف عبور می کنند به کاربر معرفی می شدند. کاربر همچنین هر ماژول را با مجموعه ای از کارت های فلش شروع می کند که آنها را با کلمات جدید آشنا می کند. Gemini در تجزیه Json و همچنین نحو برای کتابخانه ای که برای پردازش ویدیو (فیلم) و Gemini API استفاده کردم کمک کرد. من همچنین با نحو نسخه‌های جدیدتر API برنامه‌های کاربردی Discord (API برای ربات‌های Discord) بسیار ناآشنا بودم، بنابراین Gemini در این مورد به من کمک کرد.

نسخه ی نمایشی و مخازن

من هنوز گیف‌های ASL را پیاده‌سازی نکرده‌ام، بنابراین از متن مکان‌نما در پشت فلش کارت‌ها در این نسخه نمایشی استفاده می‌کنم.

>> ویدئوی نمایشی <<
مخزن ارسال متن به ASL: github.com/KaiSereni/text-to-asl
ASL Discord Bot Repo: github.com/KaiSereni/discord-asl

چیزی که یاد گرفتم

وقتی با هوش مصنوعی کدنویسی می کنم، سعی می کنم قبل از هر چیز از هوش مصنوعی به عنوان یک ابزار یادگیری استفاده کنم. Gemini سینتکس برخی از کتابخانه‌هایی را که استفاده می‌کردم توضیح داد، که بسیار مفید بود، زیرا گاهی اوقات می‌توان اسناد را به صورت آنلاین به سختی پیدا کرد، و به ندرت می‌توان این کتابخانه‌های اختصاصی پایتون را به خوبی مستند کرد.

بازخورد Google Gemini

یکی از بزرگترین مشکلات من با Gemini این است که نمی توان آن را به صورت محلی روی دستگاه خودم اجرا کرد. من نگاهی به Gemma انداخته ام، اما ای کاش گوگل چند مدل بزرگتر (مثلاً 400b) را به صورت وزن باز یا حتی منبع باز منتشر می کرد.
من همچنین امیدوارم که Gemini بتواند در یک مرورگر ساخته شود، به خصوص در کنار یک ادغام IDE مانند Antigravity. من مجبور شدم بفهمم که چگونه داده ها را از وب سایت ASL به صورت دستی پاک کنم که شامل تجزیه و تحلیل خسته کننده HTML زیادی بود که نسبتاً کسل کننده بود.
علاوه بر این، مدل‌های زبان با اطمینان از به‌روز بودن اسنادی که با آن‌ها برای کتابخانه‌های مختلف کار می‌کنند، خیلی خوب نیستند، و من مطمئن هستم که این چیزی است که Google می‌تواند در طول آموزش یا با تکنیک‌های دیگر آن را برطرف کند. از Gemini بخواهید که با moviepy چیزی بنویسد و متوجه منظور من خواهید شد.
در نهایت، این تا حدودی خارج از موضوع است، اما امیدوارم گوگل TPU های خود را برای بازار مصرف در دسترس قرار دهد. اخیراً بدست آوردن یک GPU با VRAM کافی برای اجرای یک LM بسیار دشوار بوده است، البته به این واقعیت که به شدت خارج از محدوده قیمت من است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا