עוזר AI קולי בזמן אמת עם Function Calling ו-Bidirectional Audio Streaming
פלטפורמת כושר ותזונה הייתה זקוקה לעוזר AI קולי בראש ובראשונה שיוכל להגיב למשתמשים בזמן אמת בשיחה טבעית, לבצע חישובים ספציפיים לתחום (התאמות ארוחות, מעקב קלוריות), ולהשיב בתגובות קוליות — כל זאת עם חביון של פחות משנייה לחוויה שיחתית אמיתית.
דון בפרויקט שלך
האתגר
בניית עוזר AI קולי ברמת ייצור הציבה אתגרים הנדסיים ייחודיים בזמן אמת:
- חביון — תהליכי speech-to-text → LLM → text-to-speech מסורתיים הוסיפו 3-5 שניות של עיכוב, ושברו את רצף השיחה
- Function Calling — העוזר נזקק לבצע לוגיקה עסקית (domain logic) (חישובי תזונה, התאמות תוכניות ארוחות) באמצע השיחה, ולא רק לשוחח
- Audio Streaming — אודיו דו-כיווני היה צריך לזרום ברציפות ללא פערי אגירה או בעיות הד
- מודעות הקשר — העוזר נזקק לשמור על הקשר השיחה לאורך תורות תוך כדי טיפול בהפרעות
- ריבוי שפות — משתמשים דיברו בשפות שונות וציפו לתגובות באותה שפה
- בידוד סשנים — כל סשן קולי נזקק לניהול מצב עצמאי ללא ערבוב בין שיחות (cross-talk)
הפתרון שלנו
בנינו עוזר AI קולי בזמן אמת המופעל על ידי Gemini Live API של Google עם יכולות אודיו מובנות, Function Calling מותאם אישית לחישובים ספציפיים לתחום, וממשק צד לקוח (frontend) מבוסס React עם Audio Streaming מבוסס WebSocket.
ארכיטקטורה
- מודל AI: Gemini עם קלט/פלט אודיו מובנה ו-Function Calling
- צד שרת (Backend): Python/FastAPI עם נקודת קצה (endpoint) של WebSocket לאודיו דו-כיווני
- צינור אודיו: PyAudio עבור קלט/פלט מיקרופון/רמקול עם Streaming בזמן אמת
- ממשק צד לקוח (Frontend): React עם Vite ו-Tailwind CSS עבור ממשק משתמש (UI) לבקרת סשנים
- תקשורת: WebSocket עבור העברת הודעות JSON בחביון נמוך והעברת אודיו בינארי
- רב-מודאלי: לכידת מצלמה ומסך אופציונלית להקשר ויזואלי
צינור אודיו בזמן אמת
Streaming דו-כיווני
המערכת שומרת על זרמי אודיו רציפים בשני הכיוונים:
- קלט: אודיו מהמיקרופון נלכד ב-16kHz מונו, מחולק לפריימים קטנים, ומוזרם למודל ה-AI בזמן אמת
- פלט: דיבור שנוצר על ידי AI מתקבל ב-24kHz ומושמע דרך רמקולים באופן מיידי
- ללא אצווה: קטעי אודיו נשלחים כפי שהם נלכדים — ללא עיכובי אגירה
- טיפול בהפרעות: המשתמש יכול להפריע לעוזר באמצע תגובה באופן טבעי
עיבוד אודיו
- פורמט PCM ב-16 סיביות עבור קלט ופלט כאחד
- קצבי דגימה נפרדים מותאמים לדיבור (לכידה ב-16kHz, השמעה ב-24kHz)
- גדלי Buffer קטנים לחביון מינימלי
- Streaming רציף ללא פערי התחלה/עצירה בין תורות
שילוב Function Calling
כיצד זה פועל
מודל ה-AI יכול להפעיל פונקציות Python מקומיות באמצע שיחה כאשר נדרשים חישובים ספציפיים לתחום:
- המשתמש מבטא בקשה (לדוגמה, "I missed lunch today")
- מודל ה-AI מתמלל ומבין את הכוונה
- המודל קובע שיש צורך בקריאת פונקציה ושולח בקשה מובנית
- ה-Backend מחלץ את שם הפונקציה, הארגומנטים ומזהה הקריאה (call ID)
- פונקציה מקומית מבצעת את חישוב התחום
- התוצאה נשלחת בחזרה למודל כתגובה מובנית
- המודל יוצר תגובה קולית בשפה טבעית המשלבת את התוצאה
פונקציות תחום
המערכת תומכת ב-Function Calling ממוקד תזונה עבור תרחישים כגון:
- ארוחות שהוחמצו — מפזר מחדש מאקרונוטריינטים שהוחמצו בין הארוחות הנותרות
- מזון לא מתוכנן — מתאים את הארוחות הקרובות כדי לפצות על צריכה בלתי צפויה
- החלפות ארוחות — מחליף מרכיבים תוך שמירה על יעדי המאקרו
- מעקב פעילות — מעריך שריפת קלוריות ומתאים את מאגר התזונה (nutrition buffer)
כל פונקציה משתמשת במסד נתונים מאקרו עם פרופילי תזונה לכל מזון ומבצעת חישובים דינמיים עם וריאציה סטוכסטית קלה לתגובות בעלות תחושה טבעית.
בטיחות ביצוע
- קלט המיקרופון מושהה במהלך ביצוע הפונקציה כדי למנוע חפיפה
- פריימים קוליים ממתינים נמחקים כדי למנוע הקשר מיושן
- תגובות שגיאה נשלחות בחזרה באופן אדיב אם ביצוע הפונקציה נכשל
- ה-Streaming הרגיל מתחדש מיד לאחר השלמת הפונקציה
ארכיטקטורת צד שרת (Backend)
שרת FastAPI WebSocket
- נקודת קצה (endpoint) יחידה של WebSocket לכל תקשורת הלקוח
- ניהול מחזור חיי סשן (התחלה, עצירה, בדיקות תקינות ping/pong)
- סשן פעיל אחד בכל פעם עם נעילת סשנים
- CORS middleware עבור סביבות פיתוח
- נקודת קצה (endpoint) לבדיקת תקינות עבור ניטור
ניהול סשנים
- סשנים נוצרים בחיבור לקוח עם בחירת מצב (אודיו בלבד, מצלמה, או מסך)
- משימות אסינכרוניות ברקע מטפלות בלכידת אודיו, עיבודו והשמעתו במקביל
- ניתוק אדיב עם ניקוי משאבים
- אימות מפתח API והפצת שגיאות
קלט רב-מודאלי (אופציונלי)
מעבר לקול, המערכת תומכת בהקשר ויזואלי אופציונלי:
- מצב מצלמה — מזרים פריימים ממצלמת רשת (1fps) להקשר ויזואלי בשיחות
- מצב מסך — לוכד תוכן מסך לצורך דיון במידע שעל המסך
- תמונות משתנות בגודלן ונדחסות לפני השידור
- הקשר ויזואלי משפר את יכולת ה-AI לספק תגובות רלוונטיות
ממשק צד לקוח (Frontend)
- בקרת סשנים — התחלה/הפסקה של האזנה עם מחווני מצב ברורים
- הצגת מצב — מצב חיבור וסשן בזמן אמת (לא פעיל, מתחבר, פעיל, שגיאה)
- תמיכה בעיצוב — מצב בהיר/כהה עם שמירה
- הדרכה מודרכת — הדגמה שלב אחר שלב למשתמשים חדשים
- ניהול WebSocket — לוגיקת חיבור מחדש אוטומטית
תצורת מודל AI
- מודליות אודיו מובנית (ללא צינור STT/TTS נפרד)
- בחירת קול ניתנת להגדרה ממספר קולות מוגדרים מראש
- הוראות מערכת המגדירות את אישיות העוזר, סגנון התגובה וטיפול בשפה
- הגדרות כלים לכל הפונקציות הזמינות עם סכימות פרמטרים
- זיהוי שפה אוטומטי עם תגובה באותה שפה
תכונות מפתח
- חביון של פחות משנייה — מודל אודיו מובנה מבטל את התקורה של צינור STT/TTS
- אודיו דו-כיווני בזמן אמת — Streaming רציף עם < 50ms לכל חתיכה
- Function Calling — חישובים ספציפיים לתחום המבוצעים באמצע שיחה
- הפרעה טבעית — משתמשים יכולים להפריע לעוזר באופן טבעי ללא פקודות מיוחדות
- ריבוי שפות — זיהוי שפה אוטומטי עם תגובות באותה שפה
- קלט רב-מודאלי — הקשר מצלמה ומסך אופציונלי להבנה ויזואלית
- ניהול סשנים — בקרת מחזור חיי סשן עם נעילה וניקוי משאבים
- חישובי מאקרו — התאמות תזונתיות דינמיות עם פרופילי מאקרו לכל מזון
- שחזור שגיאות — טיפול אדיב בכשלי פונקציות והפרעות רשת
- ניתן להרחבה — פונקציות חדשות מתווספות על ידי הגדרת סכימה ומטפל — ללא שינויים בארכיטקטורה
תוצאות
מחסנית טכנולוגית
caseStudyDetail.more מקרי בוחן
גלה עוד מהיישומים הטכניים שלנו
עיבוד חשבוניות מבוסס AI עם OCR ושילוב QuickBooks
עסק בגודל בינוני שעיבד מאות חשבוניות ספק בחודש נזקק לביטול הזנת נתונים ידנית על ידי חילוץ אוטומטי של נתוני חשבוניות באמצעות AI/OCR וסנכרונם ישירות ל-QuickBooks לצורך הנהלת חשבונות ומעקב תשלומים.
הזרקת פרסומות בצד הלקוח (CSAI) עם ניתוח סמני SCTE-35 ושילוב נגן מרובה פלטפורמות
פלטפורמת הזרמת וידאו נזקקה ליישם הזרקת פרסומות בצד הלקוח (CSAI) על פני יישומי אינטרנט, מובייל וטלוויזיות חכמות — המאפשרת חוויות פרסום מותאמות אישית ברמת המכשיר עם תמיכה מלאה באינטראקציה עם פרסומות (שכבות-על ניתנות ללחיצה, באנרים נלווים, כפתורי דילוג) שאותן הזרקה בצד השרת אינה יכולה לספק.
שאלות נפוצות
MicrocosmWorks פיתחה צינור אודיו דו-כיווני מבוסס WebSocket המזרים דיבור משתמשים למנוע ה-ASR בנתחים בזמן אמת, מתחילה הסקת LLM לפני שהמשתמש מסיים לדבר באמצעות תמלול זורם, ומתחילה סינתזת טקסט לדיבור על הטוקנים הראשונים של התגובה. גישת ה-pipelining הזו משיגה השהיות תגובה מתחת ל-800 אלפיות השנייה מסיום הדיבור ועד לפלט האודיו הראשון, מה שמשתמשים תופסים כהחלפת תור שיחתית טבעית.
MicrocosmWorks שילבה קריאת פונקציות מובנית שבה ה-LLM יכול להפעיל ממשקי API מוגדרים מראש כמו קביעת פגישות, שאילתות למסדי נתונים, או הפעלת תהליכי עבודה בהתבסס על הקשר השיחה, כשהתוצאות מדוברות בחזרה למתקשר באופן טבעי. המערכת כוללת תהליכי אישור עבור פעולות בעלות סיכון גבוה כמו תשלומים או ביטולים, כאשר העוזר מאשר מילולית את הפרטים וממתין לאישור מפורש של המתקשר לפני הביצוע.
כן, MicrocosmWorks הטמיעה זיהוי barge-in המאפשר למתקשרים להפריע לעוזר באמצע התגובה, עוצר מיידית את השמעת האודיו ומעבד את האמירה החדשה. צינור ה-ASR כולל עיבוד מקדים לביטול רעשים ותומך במודלים שעברו כוונון עדין על מבטאים מגוונים, משיג דיוק תמלול של מעל 90% בסביבות רועשות הטיפוסיות לשיחות טלפון ממכוניות, משרדים או חללים ציבוריים.
MicrocosmWorks בנתה את העוזר הקולי עם אינטגרציה של SIP trunk וחיבוריות Twilio, תומך בפריסה על גבי מספרי טלפון עסקיים קיימים, מערכות IVR ופלטפורמות מוקדי שירות, מבלי לדרוש ממתקשרים להתקין אפליקציה כלשהי או להשתמש בממשק מיוחד. הפלטפורמה מטפלת בניווט שיחות, ניהול תורים והעברות חמות לנציגים אנושיים כאשר ה-AI קובע ששיחה דורשת מומחיות אנושית.
MicrocosmWorks מפתחת עוזרי AI קוליים מותאמים אישית במחירים שבין $30-$50 לשעה, ובעוד שעלות הבנייה הראשונית עולה על דמי ההתקנה של פלטפורמות מנוהלות, פתרון מותאם אישית נמנע מחיובים לפי דקה שפלטפורמות כמו Dialogflow CX או Amazon Lex מטילות, והופכים למשמעותיים בנפחי שיחות גבוהים. בנייה מותאמת אישית גם מעניקה לך שליטה מלאה על ה-LLM, פרסונת הקול, ולוגיקת קריאת הפונקציות, שפלטפורמות מנוהלות מגבילות עם פרדיגמות זרימת דיאלוג נוקשות.
מוכן לשנות את העסק שלך?
בואו נדון כיצד נוכל ליישם פתרונות דומים לאתגרים שלך.