מעבר ל-150ms: איך הפחתתי את ה-latency עבור עוזר קולי AI בזמן אמת
כתיבת קוד בזמן אמת (Live coding) וראיונות טכניים גורמים למתח בקרב מפתחים. רוב האנשים מתקשים כשמומחה צופה בכל שורת קוד בתוך IDE משותף.
Generative AI משנה את התמונה הזו. כעת ניתן לסמלץ תרחישי ראיון אמיתיים באמצעות תרגול אינטראקטיבי.
ביליתי חודשים בבניית כלי SaaS לגיוס עובדים. נתקלתי בבעיה אחת מרכזית: latency של הרשת. כדי לבנות עוזר ראיון AI חלק, זמן התגובה חייב להישאר מתחת ל-150ms.
בני אדם תופסים כל עיכוב של מעל 200ms כלא טבעי. כדי להישאר מתחת למגבלה, כל ה-pipeline חייב לפעול במהירות: • לכידת אודיו • סטרימינג • LLM inference • Text-to-Speech • השמעת אודיו
בקשות HTTP סטנדרטיות הן איטיות מדי למשימה זו. עליך לעבד את הנתונים בצד הלקוח (client side).
Voice Activity Detection (VAD) הוא המכשול הראשון. עליך לדעת בדיוק מתי משתמש מתחיל ומפסיק לדבר. זה מונע שליחת אודיו שקט לשרת שלך.
השתמשתי ב-JavaScript AudioWorklet כדי לפתור זאת. זה מעביר את עיבוד ה-PCM audio הגולמי ל-thread נפרד. זה שומר על ה-main UI thread חופשי. המשמעות היא שה-AI נשאר פעיל ברקע מבלי להאט את הדפדפן או ה-IDE של המשתמש.
ניתוח קוד בזמן אמת הוא אתגר נוסף. המערכת חייבת להבין גם את האודיו וגם את הקוד בעורך. באמצעות WebSockets, אני מסנכרן את נתוני עורך הטקסט עם קלט הקול. זה מאפשר ל-AI לזהות באגים או להציע אופטימיזציות בזמן שהמשתמש מקליד.
אם ברצונכם להתכונן לראיונות טכניים, נסו את הצעדים הבאים:
- תרגלו חשיבה בקול רם. הסבירו את הלוגיקה שלכם תוך כדי כתיבת הקוד.
- השתמשו בסימולציות AI. קבלו דוחות על זמני התגובה ועל שטף כתיבת הקוד שלכם.
בניית אפליקציות קול עם latency נמוך דורשת איזון בין דחיסת אודיו לבין עוצמת השרת.
איך אתם מטפלים בסטרימינג של אודיו בפרויקטים שלכם? האם אתם משתמשים במודלים של VAD בדפדפן?
שתפו את המחשבות שלכם בתגובות.