ما وراء الـ 150 مللي ثانية: كيف قمت بتقليل زمن الاستجابة لمساعد صوتي يعمل بالذكاء الاصطناعي في الوقت الفعلي

تسبب جلسات البرمجة المباشرة والمقابلات التقنية توتراً للمطورين. يعاني معظم الناس عندما يراقب خبير كل سطر من الأكواد في بيئة تطوير متكاملة (IDE) مشتركة.

يغير الذكاء الاصطناعي التوليدي هذا الواقع. يمكنك الآن محاكاة سيناريوهات المقابلات الحقيقية من خلال التدريب التفاعلي.

قضيت شهوراً في بناء أدوات SaaS للتوظيف، وواجهت مشكلة رئيسية واحدة: زمن استجابة الشبكة (network latency). لبناء مساعد مقابلات ذكي وسلس، يجب أن يظل وقت الاستجابة أقل من 150 مللي ثانية.

يدرك البشر أي تأخير يتجاوز 200 مللي ثانية على أنه أمر غير مريح. للبقاء تحت هذا الحد، يجب أن تعمل سلسلة العمليات (pipeline) بأكملها بسرعة: • التقاط الصوت • البث (Streaming) • استنتاج النماذج اللغوية الكبيرة (LLM inference) • تحويل النص إلى كلام (Text-to-Speech) • تشغيل الصوت

طلبات HTTP القياسية بطيئة جداً لهذه المهمة. أنت بحاجة إلى معالجة البيانات من جانب العميل (client side).

يعد اكتشاف النشاط الصوتي (Voice Activity Detection - VAD) العقبة الأولى. يجب أن تعرف بالضبط متى يبدأ المستخدم في التحدث ومتى يتوقف، فهذا يمنع إرسال مقاطع صوتية صامتة إلى خادمك.

استخدمت AudioWorklet في JavaScript لحل هذه المشكلة. يقوم هذا بنقل معالجة صوت PCM الخام إلى خيط معالجة (thread) منفصل، مما يحافظ على خيط واجهة المستخدم الرئيسي (main UI thread) حراً. وهذا يعني أن الذكاء الاصطناعي يظل نشطاً في الخلفية دون إبطاء متصفح المستخدم أو بيئة التطوير (IDE).

يمثل تحليل الكود في الوقت الفعلي تحدياً آخر. يجب أن يفهم النظام كلاً من الصوت والكود الموجود في المحرر. من خلال استخدام WebSockets، قمت بمزامنة بيانات محرر النصوص مع المدخلات الصوتية، مما يسمح للذكاء الاصطناعي باكتشاف الأخطاء البرمجية أو اقتراح تحسينات أثناء كتابة المستخدم.

إذا كنت ترغب في الاستعداد للمقابلات التقنية، جرب هذه الخطوات:

  • تدرب على التفكير بصوت عالٍ. اشرح منطقك أثناء البرمجة.
  • استخدم محاكاة الذكاء الاصطناعي. احصل على تقارير حول أوقات استجابتك وسلاسة كتابتك للكود.

يتطلب بناء تطبيقات صوتية ذات زمن استجابة منخفض توازناً بين ضغط الصوت وقوة الخادم.

كيف تتعامل مع البث الصوتي في مشاريعك؟ هل تستخدم نماذج VAD في المتصفح؟

شاركنا أفكارك في التعليقات.

المصدر: https://dev.to/websterliu/oltre-i-150ms-come-ho-ridotto-la-latenza-per-creare-un-assistente-vocale-ai-in-tempo-reale-1jj5