المدوّنة·
على الجهاز
July 7, 2026

تشغيل وكيل صوتي على الجهاز
خط أنابيب واحد، ثلاث ميزانيات ذاكرة.

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

الرقم الذي يجب تذكّره هو الحلقة كاملةً، لا نموذج واحد: إدراك الكلام (STT) + توليد الإجابة (LLM) + تخليق الكلام (TTS) كلها تدخل ضمنه — نحو 1.2 GB على iPhone، ونحو 1.5 GB على Galaxy S23، وأقل من 4 GB على Mac مع دماغ محادثة حقيقي.

المكتبة الأساسية

خط الأنابيب هو الجزء القابل للنقل.

يوجد التنسيق في speech-core كآلة حالات C++ خالصة، وهي محايدة للنماذج: المراحل الأربع واجهات تُوصِّل بها أي خلفية — على الجهاز عبر ONNX أو LiteRT أو CoreML/MLX، أو حتى واجهة سحابية — فيشغّل الخط نفسه مُستدعي أدوات بحجم 270M على الهاتف ودماغ Gemma 4 على Mac.

On-device voice-agent pipelineMicrophone audio passes an optional wake-word gate, echo cancellation, and enhancement, then voice activity detection, speech-to-text (perception), a language model with tool calls (generation), and text-to-speech (synthesis) back to the speaker. The synthesized audio feeds back as the echo-cancellation reference.wake word · AEC · enhance (opt.)tools?Audiomic inVADturn gateSTTperceptionLLMgenerationTTSsynthesisAudiospeakerAEC reference

حلقة واحدة، أربع مراحل. كلمة الإيقاظ وإلغاء الصدى والتحسين خطوات اختيارية قبل VAD؛ واستدعاءات الأدوات من الـ LLM هي ما يجعله يتصرّف، لا أن يجيب فقط.

المنسِّق هو VoicePipeline في speech-core. يتولّى كشف الأدوار والمقاطعة وسجل المحادثة وحلقة استدعاء الأدوات وإدارة طابور الكلام — لكن دون أي نماذج خاصة به. كل مرحلة قابلة للاستبدال خلف واجهة (VADInterface، STTInterface، LLMInterface، TTSInterface) تدعمها بـ ONNX Runtime أو LiteRT أو CoreML/MLX (عبر شقيقتها speech-swift)، أو حتى واجهة سحابية. وهناك أنماط أخفّ أيضًا — Echo (VAD → STT → TTS) و TranscribeOnly (VAD → STT → نص).

الهاتف

الأولوية للـ NPU، والحلقة كاملة تدخل في نحو 1.5 GB.

على الهاتف يكون القيد هو الذاكرة والبطارية والحرارة — لا القدرة الحسابية الخام. الهدف الصحيح هو وحدة المعالجة العصبية (NPU): Neural Engine من Apple على iOS، وNNAPI / Hexagon على Android. تشغّل المُحوّلات المكمّمة بجزء يسير من طاقة الـ CPU أو الـ GPU، وتترك الـ CPU حرًّا للصوت والواجهة.

لماذا الـ NPU لا الـ CPU أو الـ GPU؟ الـ NPU محرّك تدفّق بيانات ثابت الوظيفة مبنيّ لمهمة واحدة — عملية الضرب-والتجميع منخفضة الدقة التي تتكوّن منها الشبكات العصبية. يحفظ الأوزان في ذاكرة SRAM على الرقاقة بجوار وحدات الحساب مباشرة، ويتخطّى جلب/فكّ التعليمات والمسارات العامة العريضة التي تستهلك معظم طاقة الـ CPU أو الـ GPU. ونقل البيانات يكلّف أكثر بكثير من إجراء الحساب، فإبقاء الاثنين محليًّا هو المكسب: تُنفَّذ عمليات ضرب المصفوفات نفسها بجزء يسير من الواط — دون خفض تردّد حراري، ودون استنزاف للبطارية، وتبقى الـ CPU حرّة لكل شيء آخر.

لذا فخط أنابيب الهاتف نماذج صغيرة ومكمّمة وصديقة للـ NPU: Silero VAD، وParakeet-EOU 120M (STT دفقي خفيف مع كشف نهاية النطق مدمج)، وFunctionGemma 270M (دماغ استدعاء الأدوات)، وKokoro-82M أو Supertonic-3 للصوت. مقيسة على الجهاز:

المرحلة · النموذجiPhone 16 Pro (CoreML / ANE)Galaxy S23 (LiteRT / ONNX، CPU)
STT · Parakeet-EOU 120M0.04 RTF · 297 MB0.21 RTF · 232 MB
STT · Omnilingual 300M0.28 RTF · 495 MB0.15 RTF · 831 MB
TTS · Kokoro-82M0.08 RTF · 676 MB0.53 RTF · 640 MB
TTS · Supertonic-3 99M0.15 RTF · 956 MB0.34 RTF · 832 MB
LLM · FunctionGemma 270M128 tok/s · 236 MB118 tok/s · 611 MB

RTF = زمن الجدار ÷ ثواني الصوت (الأقل أسرع؛ <1.0 أسرع من الزمن الحقيقي). الذاكرة القصوى لكل نموذج على حدة.

كل مرحلة تتجاوز الزمن الحقيقي. وعند تحميلها معًا لوكيل حيّ، تبلغ مجموعة العمل المقيمة نحو 1.2 GB على iPhone ونحو 1.5 GB على Galaxy S23 — والفارق كلّه تقريبًا في الـ LLM: فـ FunctionGemma يستهلك 236 MB على الـ ANE مقابل 611 MB على معالج S23. إن iOS يعمل بالفعل على الـ NPU (وهذا هو STT بـ 0.04 RTF و LLM بـ 128 tok/s)؛ أما Android فيعمل بالزمن الحقيقي على الـ CPU اليوم، ومفوّضات NNAPI/Hexagon ميزة إضافية لا شرط.

جرّبه: Examples/iOSEchoDemo يشغّل Parakeet + Silero + Kokoro كحلقة صدى كاملة على iPhone؛ وجانب Android في speech-android، يغلّف خط الأنابيب نفسه. (Examples/iOSBenchmark هو أداة القياس وراء أرقام iPhone أعلاه.)

الحاسوب المكتبي

نموذج لغوي حقيقي يقود الجهاز — وما زال دون 4 GB.

على Mac يخفّ القيد: ذاكرة موحّدة مشتركة بين الـ CPU ووحدة Metal الرسومية. المراحل الأربع نفسها، لكن بنماذج أكبر، والأهم دماغ محادثة حقيقي بدل مُستدعي أدوات بحجم 270M — والحلقة كاملة ما زالت تدخل في نحو 4 GB.

الـ LLM هو الدماغ، وعنده يتوقّف حجم النموذج عن كونه اختياريًّا. بعد الاختبار، استحقّ نموذجان المهمّة: FunctionGemma 270M على الهاتف (يكفي لإصدار استدعاء أداة، وهو كل ما يحتاجه وكيل على الهاتف) وGemma 4 E2B/E4B (4-bit MLX) على الحاسوب المكتبي (محادثة متعدّدة الأدوار واستدلال حقيقيان يصمدان، مع بقائه خفيفًا). أما الوسط المغري — رأس محادثة مدمج دون 1B — فيبدو مجانيًّا في البصمة لكنه يتعثّر في المحادثة متعدّدة الأدوار الحقيقية، فلم يجتز الاختيار. القفزة المهمّة ليست 0.27B → 0.8B؛ بل استدعاءات أدوات FunctionGemma → محادثة Gemma 4.

وترتقي بقية الحزمة أيضًا: يستبدل الحاسوب المكتبي Parakeet-EOU الخفيف بـ Parakeet-TDT (متعدّد اللغات كاملًا)، ويبقى الـ TTS على Supertonic-3 في كل مكان — سريع، 44.1 kHz، مستقرّ. ونتجاوز عمدًا نماذج TTS الأثقل ذات الاستنساخ الصفري؛ فالاستنساخ ليس موثوقًا بما يكفي ليجلس داخل وكيل يعمل دائمًا.

المرحلةالهاتفالمكتبي (Mac / MLX)
VADSilero v6.2.1Silero v6.2.1
STTParakeet-EOU (streaming)Parakeet-TDT (multilingual)
LLMFunctionGemma 270MGemma 4 E2B/E4B
TTSKokoro-82M / Supertonic-3Supertonic-3
Resident setiPhone ~1.2 GB · S23 ~1.5 GB~4 GB
Runner: وكيل صوتي يقود الـ Mac

تلك المسار المكتبي هو ما يقدّمه Runner Agent — تطبيق macOS موثّق يشغّل Mic → VAD → Parakeet-TDT → Gemma 4 → Supertonic TTS محليًّا بالكامل، حزمة DMG بحجم 47 MB والحلقة كاملة نحو 4 GB على Apple Silicon. ولأن الدماغ يصدر استدعاءات أدوات، لا يكتفي Runner بالردّ — بل يقود الجهاز بالصوت: يفتح متصفّحًا وينفّذ عمليات DOM، ويفتح Telegram أو WhatsApp لقراءة الرسائل الواردة وكتابة الردود، ويطلق التطبيقات ويتحكّم بها — كل ذلك من أوامر منطوقة، وكل ذلك محليًّا. وهذا هو السبب الحقيقي لرغبة الحاسوب المكتبي في Gemma 4 لا مُستدعي أدوات بحجم 270M: التصرّف في الجهاز يتطلّب استدلالًا فعليًّا، لا مجرّد ملء خانات.

Takeaways

خط أنابيب واحد، مطابق للميزانية.

خط الأنابيب ينتقل؛ النماذج لا

VAD → STT → LLM → TTS متطابقة في كل مكان. وكل المثير هو مطابقة كل مرحلة لمُسرِّع الجهاز وذاكرته.

الهاتف: الأولوية للـ NPU، نحو 1.2–1.5 GB

البطارية والحرارة تختاران النماذج. الـ ANE يجعل iOS شبه مجاني على الـ CPU؛ وAndroid يعمل بالزمن الحقيقي على الـ CPU اليوم مع هامش NPU قادم.

المكتبي: دماغ حقيقي، وما زال نحو 4 GB

الحلقة كاملة تدخل في نحو 4 GB، وهذه الميزانية تشتري استدلال Gemma 4 الذي يقود الجهاز بالصوت، مع Parakeet-TDT متعدّد اللغات.

كل ذلك محليّ

الصوت وحالة المحادثة لا يغادران الجهاز أبدًا — الإدراك والاستدلال والتخليق كلها تعمل على المعدن أمامك.

Where next

تابع القراءة.