تصور کنید میکروکنترلری در دست دارید که بهجای پذیرفتن چند دستور محدود و خشک، هر عبارت انگلیسی را بهطور کامل درک میکند. این همان قابلیتی است که Oído، موتور متنباز عرضه شده توسط Lokutor در ۳۰ سپتامبر ۲۰۲۶، با آوردن بازشناسی گفتار با واژگان باز (Open-Vocabulary Speech Recognition) به تراشه ESP32-S3 محقق کرده است.
بیشتر سامانههای صوتی تعبیهشده مانند کلیدهای ساده عمل میکنند و تنها چند عبارت خاص را به دستورات تعریفشده متصل میکنند. اما Oído جملات کامل انگلیسی را به متن تبدیل میکند، بدون آنکه توسعهدهنده نیاز داشته باشد تمام جملات احتمالی را فهرست کند. این تغییر، تعامل انسان و ماشین را روی سختافزارهای کممصرفی که فاقد GPU یا NPU هستند، طبیعیتر میکند و طبق اعلام سازندگان، هیچ نیازی به استنتاج ابری ندارد.
همانطور که در تحلیلهای پیشین ما دربارهی رایانش لبه (Edge Computing) اشاره کردیم، هدف نهایی انتقال هوش از سرورهای عظیم به کوچکترین قطعات سختافزاری است. برای رسیدن به این هدف، Oído بهطور خاص برای مدل ESP32-S3 N16R8 طراحی شده است؛ سختافزاری با پردازنده دو هستهای ۲۴۰ مگاهرتزی Xtensa LX7، ۱۶ مگابایت حافظه فلش و ۸ مگابایت PSRAM octal. بر اساس مستندات پروژه در گیتهاب (github.com/lokutor-ai/oido)، این مشخصات حافظه الزامات سختگیرانهای هستند و ارتقاهای اختیاری محسوب نمیشوند. این عرضه به این معنا نیست که مدل روی هر برد ESP32 اجرا میشود.
معماری فنی و مدلها
این موتور مدل Conformer-CTC Small شرکت NVIDIA را در دو قالب وزنی مختلف پیادهسازی کرده تا تعادلی میان دقت و فضای ذخیرهسازی ایجاد کند:
- int8: مدلی با حجم ۱۴.۰ مگابایت که بالاترین دقت منتشرشده را ارائه میدهد.
- int4: مدلی با حجم ۸.۳ مگابایت که از تنظیم دقیق (Fine-tuning) با آگاهی از کوانتش (Quantization-aware fine-tuning) برای کاهش فضا استفاده میکند — شبیه وقتی به یک پزشک عمومی، تخصص پوست میدهیم تا روی یک حوزه دقیق شود.
در چیدمان حافظه پیشنهادی، یک پارتیشن ۶ مگابایتی برای کد کاربر رزرو شده است؛ بنابراین توسعهدهندگان مجبورند بین دقت بازشناسی و فضای باقیمانده برای سایر قابلیتهای برنامه یکی را انتخاب کنند.
مهندسی استنتاج در مقیاس کوچک
جا دادن یک رمزگذار ۱۶ لایه Conformer در یک میکروکنترلر نیازمند بهینهسازیهای شدید بود. این پیادهسازی شامل یک بخش جلویی log-mel و زیرنمونهگیری کانولوشنال به ۲۵ هرتز است که در نهایت از طریق رمزگشایی CTC روی ۱۰۲۴ توکن BPE انجام میشود.
برای مدیریت بار محاسباتی، Oído از هستههای C استفاده میکند که واحد برداری PIE در تراشه ESP32-S3 را برای عملیات ماتریسی int8 و int4 به کار میگیرند. همچنین برای کاهش سربار، از توجه موقعیتی کوانتیده (Quantized relative-position attention) و یک جدول جستوجو برای سافتمکس (Softmax) استفاده شده است. سامانه برای تشخیص زمان شروع و پایان صحبت، از یک بخشبندی VAD/AGC بهره میبرد تا تعیین کند چه زمانی یک عبارت برای بازشناسی آماده است.
یکی از حیاتیترین نوآوریها، استراتژی دسترسی به حافظه فلش است. موتور محاسبات را بهگونهای تکهتکه (Tile) میکند که هر وزن تنها یکبار در هر ۶۴ فریم از فلش خوانده شود. به نقل از مستندات فنی، در این سختافزار، جابهجایی وزنها بخش اصلی بار کاری است و شمارش صرفِ عملیات مدل، هزینه واقعی را نشان نمیدهد.
عملکرد و محکها
شرکت Lokutor گزارش داده است که Oído در ارزیابیهای LibriSpeech و محیطهای دارای نویز و پژواک (Noise-and-reverberation)، نرخ خطای کلمه (Word Error Rate) کمتری نسبت به مدل Whisper tiny.en دارد. این تمرکز بر محیطهای پرسر و صدا یادآور عملکرد مدل Canto است که در شرایط مشابه توانست از مدلهای گوگل و OpenAI پیشی بگیرد. با این حال، یک نکته کلیدی وجود دارد: این نتایج بر اساس محاسبات تراشه هستند که از طریق بیلدهای میزبان و شبیهساز QEMU شرکت Espressif تأیید شدهاند.
تا ۳۰ سپتامبر ۲۰۲۶، اندازهگیری سرعت روی بردهای فیزیکی هنوز در جریان است و نتایج نهایی منتشر نشده است. این یعنی فاکتور زمان واقعی (Real-time factor) فعلی، تخمینی بر اساس تعداد دستورات و فرضهای توقف حافظه (Memory stall) است و تأخیر واقعی در دنیای فیزیکی باید بهطور کامل اعتبارسنجی شود. در واقع، بازشناسی صحیح، جایگیری در حافظه و همگامی با میکروفون، سه ادعای مجزا هستند که باید بررسی شوند.
در مورد مقایسه با Whisper، محدوده ارزیابی متفاوت است. ردیفهای محاسباتی تراشه در Oído از مجموعههای تست کامل LibriSpeech استفاده میکنند، در حالی که خطکشهای (Baselines) لپتاپ از ۵۰۰ عبارت با فاصله یکسان در هر مجموعه با همان نرمالسازی متن استفاده کردهاند. اینها نتایج گزارششده توسط پروژه هستند، نه بنچمارکهای مستقل روی سختافزارهای یکسان.
پیادهسازی و استقرار
توسعهدهندگان میتوانند پیش از انتقال به سختافزار، موتور را روی لپتاپ تست کنند. مسیر مستند شده شامل اجرای دستور make و سپس اجرای فایل ./tasr_cli ../../models/nemo8.tnm recording.wav است. فایل ضبط شده باید یک فایل WAV تککاناله ۱۶ کیلوهرتزی PCM16 باشد. برای ورودی میکروفون نیز یک دمو با پایتون (python live_demo.py) ارائه شده که به کتابخانههای NumPy، SoundFile، SentencePiece و sounddevice نیاز دارد.
برای استقرار سختافزاری، داشتن یک برد ESP32-S3-DevKitC-1 N16R8، میکروفون INMP441 I2S و نسخه ۵.۵ از ESP-IDF ضروری است. استفاده از یک نمایشگر OLED SSD1306 اختیاری است. مخزن پروژه شامل اسکریپتهای فلش کردن و یک مسیر شبیهساز برای بازتولید نتایج است.
ملاحظات عملیاتی
پیش از استفاده از Oído در یک محصول، باید دانست که این مدل فقط انگلیسی است و در حالت «عبارتی» (Utterance mode) کار میکند؛ یعنی متن پس از یک مکث و انجام محاسبات ظاهر میشود، نه بهصورت کلمه به کلمه. بنابراین برای زیرنویسهای زنده یا گفتگوهای آنی (Instant turn-taking) مناسب نیست. این محدودیتها در مقابل استکهای چندوجهی برای ترجمه رباتیک زنده قرار میگیرد که برای دستیابی به پاسخهای آنی، معماریهای پیچیدهتری را به کار میگیرند.
توصیه میشود در تستهای محیطی، موارد زیر بررسی شوند:
- بازشناسی روی میکروفون واقعی، در داخل محفظه (Enclosure) و در محیطهای صوتی مختلف.
- رفتار سیستم در پایان صحبت، شامل بخشبندیهای اشتباه و تأخیر پیش از نمایش متن.
- مصرف توان، پایداری در عملیات مستمر و تأخیر در کنار سایر کدهای فریمور.
- عملکرد در اتاقهای شلوغ و دارای پژواک صوتی که در فایل README به عنوان موارد دشوار ذکر شدهاند.
مجوزها و شرایط تجاری
این پروژه از مدل مجوز ترکیبی استفاده میکند. کد موتور و فریمور تحت مجوز GPLv3 هستند. وزنها متفاوتاند: وزنهای int8 و توکنساز تحت CC-BY-4.0 و وزنهای int4 تحت CC-BY-SA-4.0 منتشر شدهاند. وزنهای ترنسدیوسر NVIDIA بهدلیل شرایط خاص آن شرکت، در بسته قرار ندارند و شرایط مجوزی جداگانهای دارند.
Lokutor برای محصولاتی که شرایط GPL برای آنها مناسب نیست، مجوزهای تجاری جداگانهای برای موتور و فریمور ارائه میدهد. این مجوزها از مجوزهای مربوط به وزنها متمایز هستند. کاربران باید پیش از عرضه محصول، بخش NOTICE و یادداشتهای مجوز تجاری مخزن را بررسی کنند.
این عرضه، این فرض را که بازشناسی گفتار با واژگان باز نیازمند شتابدهنده عصبی یا اتصال ابری است، تغییر میدهد. Oído ثابت کرد که با بهینهسازی جابهجایی داده بین فلش و واحد برداری، میتوان تبدیل گفتار به متن کاربردی را در بودجه محدود یک میکروکنترلر جای داد.
گام بعدی شما
- اگر از تراشههای ESP32-S3 استفاده میکنید، مخزن گیتهاب Oído را برای تست مدل int4 بررسی کنید تا تعادل بین سرعت و دقت را بسنجید.
- برای کاهش تأخیر، محیطهای صوتی را با استفاده از فیلترهای پیشپردازش ساده بهینه کنید.
- بررسی کنید که آیا مدلهای کوچکتر (SLM) میتوانند در کنار این موتور، دستورات استخراج شده را به اکشنهای محیطی تبدیل کنند.
اما چالش اصلی، انتقال این قابلیت به زبانهای پیچیدهتر است — در گزارشهای آینده، اثر مدلهای چندزبانه روی سختافزارهای لبه را بررسی خواهیم کرد.




گفتگو