تصور کنید برای تبدیل یک یادداشت صوتی ۱۰ دقیقهای به متن، مجبور باشید حساب کاربری بسازید و اطلاعات کارت اعتباری خود را وارد کنید تا از «ساعات رایگان» استفاده کنید. ابزار Tala دقیقاً برای حذف همین اصطکاکها ساخته شده است تا دسترسی به تبدیل صوت به متن، سریع و بدون هیچ پیشنیازی باشد. این ابزار به عنوان بخشی از چالش آخر هفته Hacktoberfest با عنوان «برای یک دوست بساز» (Build for a Friend) عرضه شد. ابزار توسعهدهنده به کاربران اجازه میدهد فایلهای صوتی یا ویدئویی خود را آپلود کرده و بدون هیچ فرآیند ثبتنامی، متن آنها را دریافت کنند.
بسیاری از سرویسهای تبدیل صوت به متن امروزی از مدل «فریمیوم» (Freemium) استفاده میکنند؛ یعنی برای ردیابی سقف استفاده یا تأیید حسابهای رایگان، هویت کاربر را میطلبند. این موضوع برای متخصصانی که نیاز به تبدیل سریع و یکباره تماسهای مشتری یا یادداشتهای صوتی دارند، یک مانع بزرگ است. این چالشها در واقع بخشی از همان «گلوگاه توزیع» و موانع احراز هویت هستند که پیشتر در بررسی ابزارهای خودمختار به آنها پرداختیم. پروژه Tala (که در زبان تاگالوگ به معنای «یادداشت» یا «سوابق» است) با الهام از نیاز یک طراح به نام پائولو ساخته شد تا کاربر بتواند بدون اصطکاکِ ایجاد حساب کاربری، تماسهای مشتری و یادداشتهای صوتی خود را تبدیل کند. همانطور که در پوشش پیشین ما دربارهی سختافزارهای متمرکز بر صوت و عینکهای هوشمند بدون دوربین متا دیدیم، روند فعلی هوش مصنوعی به سمت نزدیک کردن قابلیتها به کاربر نهایی است. Tala نیز با اولویت دادن به کاربرد فوری بهجای جمعآوری داده، این مسیر را دنبال میکند.
جزئیات و قابلیتها
به نقل از مستندات پروژه، این ابزار به عنوان یک خط لوله ساده با منطق «صوت در ورودی، متن در خروجی» طراحی شده است. این سیستم از طیف گستردهای از ورودیها شامل mp3، m4a، aac، wav، ogg، webm و حتی فایلهای ویدئویی mp4 تا سقف ۱۰۰ مگابایت پشتیبانی میکند. کاربران همچنین میتوانند مستقیماً در مرورگر خود صوت را ضبط کرده و پیش از ارسال برای تبدیل، آن را بازبینی و پخش کنند.
این ابزار برای کاربرد جهانی ساخته شده و دارای قابلیت تشخیص خودکار برای حدود ۱۰۰ زبان است که زبان تاگالوگ/فیلیپینی را نیز شامل میشود. برای کمک بیشتر به کاربران، یک گزینه ترجمه یککلیکی به زبان انگلیسی در نظر گرفته شده است. پس از پردازش، متون استخراج شده را میتوان در قالب متن ساده (Plain Text)، SRT یا WebVTT دریافت کرد؛ دو مورد اخیر به کاربرانی مانند پائولو اجازه میدهد تا زیرنویسها را مستقیماً وارد نرمافزارهای تدوین ویدئو کنند. همچنین یک دکمه فعال/غیرفعال برای نمایش برچسبهای زمانی (Timestamps) وجود دارد تا کاربران دقیقاً بدانند هر جمله در چه ثانیهای گفته شده است.
موتور فنی
قلب تپنده Tala مدل OpenAI Whisper است؛ یک مدل وزنهای باز (Open Weights) — شبیه به دستور پخت غذایی که علناً منتشر شده تا هر کسی بتواند آن را در آشپزخانه خودش بپزد — که بازشناسی گفتار را انجام میدهد. برای اجرای این مدل روی سختافزارهای معمولی، توسعهدهنده از faster-whisper استفاده کرده است. این نسخه مدل را روی CTranslate2 با استفاده از کوانتیزاسیون (Quantization) — یعنی فشردهسازی اعداد مدل برای اشغال فضای کمتر (int8) — پیادهسازی میکند تا سیستم روی یک CPU استاندارد و بدون نیاز به GPUهای گرانقیمت یا فراخوانی APIهای AI شخص ثالث اجرا شود.
بر اساس گزارش dev.to، معماری فنی این سیستم شامل موارد زیر است:
- بکاند: یک سرور FastAPI که از SQLAlchemy 2، Alembic و PostgreSQL برای مدیریت کارهای تبدیل استفاده میکند. نقطه اتصال (Endpoint) مربوط به
POST /api/transcriptionsفایلهای آپلود شده را در تکههای ۱ مگابایتی به دیسک منتقل میکند تا محدودیت اندازه فایلها بدون فشار آوردن به حافظه RAM اعمال شود. - فرانتاند: رابط کاربری React 18 ساخته شده با Vite و TypeScript که از Zustand (به صورت persisted) برای ذخیره لیست تبدیلهای انجام شده در همان مرورگر خاص استفاده میکند. استایلهای رابط کاربری با استفاده از ice-ds، یک کتابخانه کامپوننت با سبک نوبوروتالیست (Neubrutalist)، طراحی شده است.
- پردازش: یک رشته (Thread) تکپردازشی داخلی که مدل Whisper را روی هر بار یک فایل اجرا میکند تا از فشار بیش از حد به CPU جلوگیری شود. در هنگام شروع به کار سیستم، هرhangi از کارهای ناتمام بهطور خودکار به صف پردازش بازگردانده میشوند.
- استقرار: یک ایمیج Docker واحد که روی سرویس Render میزبانی شده است. یک Blueprint در فایل
render.yamlیک سرویس وب (با ۱ CPU و ۲ گیگابایت RAM) و یک نمونه Postgres در Render را تعریف میکند که هر دو در سنگاپور مستقر شدهاند تا به کاربر نهایی نزدیکتر باشند.
حل شکاف عملکرد
تستهای اولیه نشان داد که پردازش فایلهای طولانی بهشدت کند است. در حالی که یک کلیپ ۱۱ ثانیهای بهخوبی کار میکرد، ضبط یک جلسه واقعی ۷۰ دقیقهای به زبان تاگالوگ نزدیک به دو ساعت زمان میبرد و باعث میشد نوار پیشرفت (Progress Bar) یخزده به نظر برسد. توسعهدهنده سه استراتژی رمزگشایی را روی یک لپتاپ ۴ هستهای بنچمارک کرد:
۱. رمزگشایی متوالی (beam 5): ۰.۶ برابر زمان واقعی.
۲. رمزگشایی متوالی (beam 1): ۰.۷ برابر زمان واقعی.
۳. رمزگشایی دستهای (BatchedInferencePipeline, batch 8, beam 1): ۳.۸ برابر زمان واقعی.
با پیادهسازی BatchedInferencePipeline، که از تشخیص فعالیت صوتی (VAD) برای تکه تکه کردن صوت و رمزگشایی همزمان چندین بخش استفاده میکند، زمان پردازش همان فایل ۷۰ دقیقهای از ۱۲۰ دقیقه به تنها ۱۳ دقیقه کاهش یافت. برای بهبود تجربه کاربری، توسعهدهنده مرحله «در حال آمادهسازی صوت» و یک نوار پیشرفت زنده با تخمین زمان باقیمانده را اضافه کرد.
مبارزه با توهمات هوش مصنوعی
یک چالش حیاتی، «حلقههای توهم» (Hallucination Loops) بود؛ جایی که مدل در بخشهای دشوار صوتی، عباراتی مانند "ngayon ngayon ngayon" یا "kakakakaka" را بهصورت بینهایت تکرار میکرد. چون حالت دستهای (Batched mode) با یک دمای (Temperature) واحد رمزگشایی میکند، مکانیسم معمول Whisper برای تلاش مجدد در صورت تکرار هرگز اجرا نمیشد. در یک مورد، این حلقه آنقدر طولانی بود که عرض صفحه وب را از اندازه صفحه نمایش بیشتر کرد.
برای رفع این مشکل، توسعهدهنده موارد زیر را پیاده کرد:
- اعمال
repetition_penaltyدر رمزگشنده. - یک مرحله پاکسازی برای ادغام حلقههای درونکلمهای (مثلاً تبدیل "sa-ma-ma-ma-ma" به "sa-ma").
- منطقی برای حذف بخشهایی که فقط شامل سه نقطه (...) بودند و ادغام خطوط تکراری.
- بهروزرسانیهای CSS برای اطمینان از اینکه رشتههای طولانی بهجای بیرون زدن از صفحه، به خط بعد منتقل شوند (Wrap).
در یک ضبط جلسه، این پاکسازی حجم متن را از ۵۴۵۸ کلمه نویز به ۱۴۲۵ کلمه محتوای واقعی کاهش داد. توسعهدهنده اشاره کرد که اگرچه مدل پایه هنوز با مکالمات «تاگلیش» (ترکیب تاگالوگ و انگلیسی) مشکل دارد، اما ماهیت باز مدل اجازه میدهد تا بهراحتی از طریق متغیرهای محیطی، مدل را به نسخههای small یا large-v3-turbo ارتقا داد تا دقت را فدای سرعت (یا بالعکس) کرد.
حریم خصوصی و چرخه حیات دادهها
Tala یک سیاست «خودتخریبی» سختگیرانه برای دادهها اجرا میکند تا از حریم خصوصی کاربران محافظت کند و اطمینان حاصل شود که تماسهای حساس مشتریان و بررسیهای طراحی بهطور نامحدود ذخیره نمیشوند:
- فایلهای صوتی: بلافاصله پس از اتمام تبدیل یا در صورت شکست در پردازش، حذف میشوند.
- متون استخراج شده: پس از ۷۲ ساعت (تعریف شده توسط
RETENTION_HOURS) بهطور خودکار حذف میشوند، هرچند کاربران میتوانند با گزینه «اکنون حذف کن» (Delete now) این کار را فوراً انجام دهند. - کنترل دسترسی: بهجای حسابهای کاربری، سیستم برای هر متن یک URL منحصربهفرد و سخت برای حدس زدن تولید میکند. مرورگر این لینکها را به خاطر میسپارد و این تنها «سیستم حساب کاربری» موجود است.
مزیت مدلهای وزنباز
وجود Tala نتیجه مستقیم مدلهای وزنباز است. چون توسعهدهنده مدل را روی سرور خودش میزبانی میکند، هیچ هزینه API بهازای هر دقیقه وجود ندارد که بخواهد آن را به کاربر منتقل کند. این موضوع نیاز به محدود کردن نرخ استفاده (Rate-limiting) یا دریافت کارتهای بانکی را از بین میبرد. علاوه بر این، ماهیت باز مدل به توسعهدهنده اجازه داد تا باگها را مستقیماً رفع کند؛ مثلاً تداخل نسخه PyAV که در آن faster-whisper 1.2.1 آرگومانی را ارسال میکرد که در PyAV 19 حذف شده بود (که با تثبیت نسخه av==15.1.0 حل شد)، بدون اینکه منتظر بهروزرسانی یک فروشنده شخص ثالث بماند.
برای کاربران، این بدان معناست که صوت هرگز ماشینی را که تحت کنترل توسعهدهنده نیست ترک نمیکند. سیستم میتواند با تغییر یک متغیر محیطی، از مدل tiny برای یک هاست ارزان به مدل large-v3-turbo برای دقت بالاتر تغییر کند، بدون اینکه با وابستگی به یک فروشنده (Vendor Lock-in) یا ایمیلهای مربوط به منسوخ شدن نسخههای API مواجه شود. اگر دقت همچنان یک مشکل باشد، وزنهای باز امکان Fine-tuning (تنظیم دقیق) را فراهم میکنند.
این پروژه ثابت میکند که برای کارهای کوتاه تا متوسط (یادداشتهای ۵ تا ۱۵ دقیقهای)، تفاوت استفاده از یک مدل باز مبتنی بر CPU در مقابل یک API تجاری مبتنی بر GPU ناچیز است. در حالی که APIهای میزبانی شده برای فایلهای بسیار طولانی سریعترند و برچسبهای گوینده (Speaker Labels) ارائه میدهند، نتیجه در اینجا ابزاری است که شروع سریعتری دارد و خصوصیتر از رقبای شرکتی خود است.
اگر میخواهید تبدیل محلی را تجربه کنید، میتوانید مخزن GitHub پروژه Tala را کلون کنید (github.com/reyesvicente/tala) و کل پشته (Stack) را با استفاده از Docker و npm بهصورت محلی اجرا کنید. تنظیمات توسعه محلی دقیقاً همان محصول نهایی است و پس از دانلود اولیه مدل، به هیچ API Key یا اینترنتی نیاز ندارد.
گام بعدی شما
- اگر به دنبال تبدیل رایگان و خصوصی صوت به متن هستید، مخزن GitHub پروژه Tala را بررسی کنید.
- برای اجرای محلی، از Docker و npm استفاده کنید تا بدون نیاز به اینترنت و API Key، سیستم را روی سیستم خود داشته باشید.
- در صورت نیاز به دقت بالاتر، متغیرهای محیطی را برای استفاده از مدل
large-v3-turboتغییر دهید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو