پرش به محتوای اصلی
پرش به محتوای مقاله

درون Voicebox؛ پیاده‌سازی Durable Objects برای پردازش سریع صوت

·۲۵ تیر ۱۴۰۵۴ دقیقه مطالعه۲ بازدید
راهنما
لوگوی گیت‌هاب پروژه Voicebox مربوط به PrestigePvP
لوگوی گیت‌هاب پروژه Voicebox مربوط به PrestigePvP
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی دستورات دستی با «شکار بستر برنامه»؛ ابزار به جای دریافت دستور فرمت‌بندی از کاربر، از طریق AX API متوجه می‌شود که کاربر در چه برنامه‌ای است و خروجی را خودکار تطبیق می‌دهد.

تصور کنید یک جریان کاری (Workflow) را در نظر بگیرید که در آن تایپ دستی جای خود را به فرمت‌بندی صوتی با سرعت بالا می‌دهد. این هسته اصلی Voicebox است؛ ابزاری که در ۱۶ ژوئیه ۲۰۲۶ منتشر شد و تکه‌های صوتی PCM را دریافت کرده و آن‌ها را از طریق یک مدل زبانی بزرگ (LLM) عبور می‌دهد تا اطمینان حاصل شود که خروجی دقیقاً با زمینه (Context) پنجره فعال کاربر سازگار است.

بسیاری از ابزارهای تبدیل گفتار به متن، صرفاً به عنوان نرم‌افزارهای دیکته ساده عمل می‌کنند و نسخه‌های خامی از متن را تولید می‌کنند که نیاز به ویرایش دستی گسترده دارد. Voicebox این روند را با شکار «زمینه تمرکز» (Focus Context)—شامل نام اپلیکیشن، نقش المان (Element Role) و متن جایگزین (Placeholder)—تغییر می‌دهد. این قابلیت به LLM اجازه می‌دهد تا متن بازنویسی شده را به فرمتی صیقل‌خورده و آماده‌ی استفاده در آن برنامه خاص تبدیل کند، پیش از آنکه متن اصلاً به کلیپ‌بورد منتقل شود.

بر اساس مستندات رسمی پروژه در گیت‌هاب، معماری سیستم بر پایه یک اپلیکیشن دسکتاپ ساخته شده با Wails (ترکیبی از زبان Go و React) است که از طریق وب‌ساکت‌ها (WebSockets) با یک Cloudflare Worker ارتباط برقرار می‌کند. در بخش بک‌اند، از Durable Objects برای تجمیع و انباشت داده‌های صوتی استفاده شده است. خط لوله هوش مصنوعی (AI pipeline) نیز متشکل از مدل STT مدل Whisper-large-v3-turbo برای تبدیل صوت به متن و مدل Qwen3-30b-a3b-fp8 برای فرمت‌بندی نهایی است. این رویکرد در پردازش صوت، یادآور تلاش‌های اخیر برای کاهش هزینه‌های تولید و پردازش صوت با استفاده از مدل‌های زبانی است که به بهینه‌سازی مسیرهای پردازش سیگنال کمک می‌کند.

زمینه و جریان کاری (Context and Workflow)

تعامل کاربر برای ورودی بدون اصطکاک (Zero-friction) طراحی شده است. کاربر تنها با نگه داشتن کلید ترکیبی Ctrl+Cmd شروع به ضبط می‌کند. در این لحظه، اپلیکیشن زمینه تمرکز فعلی را شکار کرده، ضبط را فعال می‌کند و یک لایه شناور (Overlay) را در مرکز-بالای صفحه نمایش می‌دهد. یک نمایشگر سطح صدا (Voice level meter) ورودی فعال را به‌صورت لحظه‌ای نمایش می‌دهد. به محض رها کردن کلیدها، جریان صوتی به ابر ارسال می‌شود، جایی که Whisper آن را بازنویسی کرده و LLM متن را فرمت می‌کند. نتیجه نهایی در کلیپ‌بورد کپی شده و از طریق یک دستور شبیه‌سازی شده‌ی Cmd+V به‌طور خودکار در برنامه مبدأ چسبانده (Paste) می‌شود.

مشخصات فنی (Technical Specifications)

جزئیات فنی این سیستم نشان‌دهنده تمرکز بر سرعت و دقت در انتقال داده است:

  • مشخصات صوتی: نرخ نمونه‌برداری ۱۶ کیلوهرتز، مونو، فرمت PCM signed 16-bit LE.
  • مدیریت داده: داده‌های صوتی در تکه‌های (Chunks) حدود ۴۰۹۶ بایتی ارسال می‌شوند که هر تکه تقریباً ۱۲۸ میلی‌ثانیه است.
  • ظرفیت حداکثری: سیستم از ضبط‌های تا ۲۵ مگابایت پشتیبانی می‌کند که تقریباً معادل ۱۳ دقیقه صوت است.
  • یکپارچگی با macOS: این ابزار از AX API برای استخراج زمینه المان‌های متمرکز و اجرای خودکار دستور Cmd+V استفاده می‌کند. برای دستیابی به چنین سرعت پاسخ‌دهی در محیط مک، بهره‌گیری از سخت‌افزارهای تخصصی حیاتی است؛ برای مثال، فریم‌ورک Espresso با دسترسی مستقیم به ANE توانسته است سرعت استنتاج مدل‌های ترنسفورمر را در این سیستم‌عامل به‌طور چشم‌گیری افزایش دهد.

معماری داخلی (Internal Architecture)

پروژه به گونه‌ای ساختار یافته است که فرانت‌اند، لایه سازمان‌دهی (Orchestration) مبتنی بر Go و بک‌اند Worker را از هم تفکیک کند:

  • هسته دسکتاپ (Desktop Core): توسط فایل‌های main.go و app.go برای مدیریت چرخه حیات و سازمان‌دهی خط لوله مدیریت می‌شود. مدیریت پنجره‌ها در macOS (شامل لایه شناور و تنظیمات) در فایل window_darwin.go هندل شده است.
  • ماژول‌های داخلی: شامل بخش audio (که از malgo/miniaudio برای محاسبه سطوح RMS استفاده می‌کند)، بخش pipeline برای استریم وب‌ساکت و بخش accessibility برای تعاملات با AX API در macOS است.
  • رابط کاربری فرانت‌اند (Frontend UI): یک لایه با React و Tailwind CSS که توسط Vite ساخته شده است. فایل App.tsx مسیرها را بین یک پنجره تنظیمات ۷۰۰×۴۵۰ در مرکز صفحه و یک لایه ضبط شناور ۱۶۰×۴۸ مدیریت می‌کند.
  • کلود ورکر (Cloud Worker): با زبان تایپ‌اسکریپت (TypeScript) نوشته شده و دارای یک روتر برای نقاط انتهایی /ws و /health است. همچنین session.ts وظیفه مدیریت خط لوله هوش مصنوعی در Durable Object را بر عهره دارد.

پروتکل وب‌ساکت (The WebSocket Protocol)

ارتباطات از یک توالی سخت‌گیرانه پیروی می‌کنند تا فرمت‌بندی آگاه از زمینه (Context-aware) تضمین شود. کلاینت ابتدا از طریق GET /ws?token=<auth-token> متصل می‌شود. پس از دریافت پاسخ {"type":"ready"}، کلاینت یک پیام configure ارسال می‌کند که حاوی پارامترهای صوتی و متادیتای المان متمرکز است؛ این متادیتا شامل Bundle ID، نقش المان، عنوان، متن جایگزین و مقدار فعلی است. در ادامه، تکه‌های باینری PCM و سپس سیگنال {"type":"audio_end"} ارسال می‌شود و در نهایت سرور یک پاسخ {"type":"result"} را بازمی‌گرداند.

طراحی ماژولار این ابزار، ارائه‌دهندگان STT و فرمت‌بندر را از هم جدا می‌کند. در حالی که نسخه ابری از زیرساخت Cloudflare استفاده می‌کند، توسعه‌دهنده رابط‌هایی (Interfaces) در مسیرهای internal/stt/ و internal/formatter/ قرار داده است تا امکان استفاده از بک‌اند محلی با faster-whisper و Ollama فراهم شود؛ این موضوع نویدبخش یک حالت کاملاً خصوصی و آفلاین در مراحل آینده است.

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

این تغییر پارادایم نشان می‌دهد که عصر بعدی ابزارهای بهره‌وری، از رابط‌های چت مجزا به سمت «میان‌افزارهای نامرئی» (Invisible Middleware) حرکت خواهد کرد. با قرار دادن LLM بین روش ورود داده (صوت) و مقصد (اپلیکیشن)، اصطکاک فرمت‌بندی دستی کاملاً ناپدید می‌شود.

توسعه‌دهندگان می‌توانند بک‌اند ابری را با تنظیم یک رمز مشترک از طریق دستور wrangler secret put VOICEBOX_TOKEN مستقر کنند و کلاینت را از طریق یک فایل TOML در مسیر ~/.config/voicebox/voicebox.toml پیکربندی نمایند. این فایل پیکربندی مواردی چون worker_url ،token و تنظیمات صوتی مانند sample_rate = 16000 را تعریف می‌کند. همچنین کاربران macOS باید دسترسی Accessibility را در مسیر System Settings → Privacy & Security فعال کنند تا قابلیت چسباندن خودکار فعال شود.

شما می‌توانید کد کامل این پروژه را در گیت‌هاب بررسی کنید تا خط لوله تبدیل صوت به متن محلی خود را پیاده‌سازی نمایید.

گام بعدی شما

  • اگر توسعه‌دهنده Go هستید، ساختار internal/stt را بررسی کنید تا متوجه شوید چگونه می‌توان مدل‌های محلی را جایگزین APIهای ابری کرد.
  • برای کاهش زمان تایپ در محیط‌های تخصصی (مثل Jira یا GitHub)، این ابزار را با تنظیمات TOML شخصی‌سازی کنید.
  • دسترسی AX API در macOS را بررسی کنید تا متوجه شوید ابزارها چگونه محیط گرافیکی شما را «می‌بینند».

این تنها آغاز ماجراست؛ اثر موج‌گونه‌ی تبدیل رابط‌های چت به میان‌افزارهای نامرئی را در گزارش‌های بعدی بررسی خواهیم کرد.

چرا این موضوع مهم است؟

این پروژه با تکیه بر اعتبار مدل‌های Open Weights مانند Qwen، نشان می‌دهد که ترکیب داده‌های محیطی (Context) با استنتاج سریع، می‌تواند رابط کاربری سنتی را حذف کند. این رویکرد استانداردهای جدیدی برای کاهش اصطکاک در گردش‌کارهای حرفه‌ای ایجاد می‌کند.

تأثیر برای ایران

به‌دلیل نیاز به Cloudflare Workers و APIهای خارجی، دسترسی مستقیم برای توسعه‌دهندگان ایرانی دشوار است، اما امکان میزبانی شخصی (Self-hosting) با Ollama مسیری عملی برای استفاده در محیط‌های داخلی فراهم می‌کند.

·نگاه ما
تحریریه دات‌هوش

تغییر استراتژیک Voicebox از «درخواست کاربر» به «درک بستر»، پایان دوران پرامپت‌های طولانی برای کارهای تکراری است. این ابزار ثابت می‌کند که ارزش واقعی مدل‌های زبانی نه در گفتگو، بلکه در عمل به عنوان یک لایه ترجمه بین ورودی انسانی و ساختار سخت‌گیرانه نرم‌افزارهاست.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.