Echtzeit Sprach-AI-Assistent mit Funktionsaufrufen & Bidirektionalem Audio-Streaming
Eine Fitness- und Ernährungsplattform benötigte einen sprachgesteuerten AI-Assistenten, der Benutzern in Echtzeit mit natürlicher Konversation antworten, domänenspezifische Berechnungen (Mahlzeitenanpassungen, Kalorien-Tracking) ausführen und Antworten zurücksprechen konnte — alles mit einer Latenzzeit von unter einer Sekunde für ein wirklich konversationelles Erlebnis.
Ihr Projekt besprechen
Die Herausforderung
Der Aufbau eines produktionsreifen Sprach-AI-Assistenten stellte einzigartige Echtzeit-Engineering-Herausforderungen dar:
- Latenz — Herkömmliche Speech-to-Text → LLM → Text-to-Speech-Pipelines fügten 3-5 Sekunden Verzögerung hinzu, was den Gesprächsfluss unterbrach
- Funktionsaufrufe — Der Assistent musste domänenspezifische Logik (Ernährungsberechnungen, Mahlzeitenplananpassungen) mitten im Gespräch ausführen, nicht nur chatten
- Audio-Streaming — Bidirektionales Audio musste kontinuierlich fließen, ohne Pufferlücken oder Echoprobleme
- Kontextbewusstsein — Der Assistent musste den Gesprächskontext über mehrere Runden hinweg aufrechterhalten und gleichzeitig Unterbrechungen behandeln
- Mehrsprachigkeit — Benutzer sprachen in verschiedenen Sprachen und erwarteten Antworten in derselben Sprache
- Sitzungsisolation — Jede Sprach-Sitzung benötigte eine unabhängige Zustandsverwaltung ohne Übersprechen
Unsere Lösung
Wir haben einen Echtzeit Sprach-AI-Assistenten entwickelt, der auf der Google Gemini Live API mit nativen Audiofunktionen, benutzerdefinierten Funktionsaufrufen für domänenspezifische Berechnungen und einem React-Frontend mit WebSocket-basiertem Audio-Streaming basiert.
Architektur
- AI-Modell: Gemini mit nativem Audio-Input/Output und Function Calling
- Backend: Python/FastAPI mit WebSocket-Endpunkt fĂĽr bidirektionales Audio
- Audio-Pipeline: PyAudio fĂĽr Mikrofon-/Lautsprecher-I/O mit Echtzeit-Streaming
- Frontend: React mit Vite und Tailwind CSS für die Benutzeroberfläche zur Sitzungssteuerung
- Kommunikation: WebSocket für JSON-Nachrichten mit geringer Latenz und binären Audio-Transport
- Multimodal: Optionale Kamera- und Bildschirmaufnahme fĂĽr visuellen Kontext
Echtzeit-Audio-Pipeline
Bidirektionales Streaming
Das System unterhält kontinuierliche Audio-Streams in beide Richtungen:
- Eingabe: Mikrofon-Audio, erfasst mit 16kHz Mono, in kleine Frames zerlegt und in Echtzeit an das AI-Modell gestreamt
- Ausgabe: AI-generierte Sprache, empfangen mit 24kHz und sofort ĂĽber Lautsprecher wiedergegeben
- Kein Batching: Audio-Chunks werden so gesendet, wie sie erfasst werden — keine Akkumulationsverzögerungen
- Unterbrechungsbehandlung: Der Benutzer kann den Assistenten mitten in der Antwort auf natĂĽrliche Weise unterbrechen
Audioverarbeitung
- 16-Bit PCM-Format fĂĽr Eingabe und Ausgabe
- Separate Abtastraten, optimiert fĂĽr Sprache (16kHz Erfassung, 24kHz Wiedergabe)
- Kleine Puffergrößen für minimale Latenz
- Kontinuierliches Streaming ohne Start-/Stopp-Lücken zwischen den Gesprächsrunden
Integration von Funktionsaufrufen
Funktionsweise
Das AI-Modell kann lokale Python-Funktionen mitten im Gespräch aufrufen, wenn domänenspezifische Berechnungen erforderlich sind:
- Der Benutzer spricht eine Anfrage (z.B. „Ich habe heute das Mittagessen verpasst“)
- Das AI-Modell transkribiert und versteht die Absicht
- Das Modell stellt fest, dass ein Funktionsaufruf erforderlich ist, und sendet eine strukturierte Anfrage
- Das Backend extrahiert Funktionsnamen, Argumente und Call ID
- Die lokale Funktion führt die Domänenberechnung aus
- Das Ergebnis wird als strukturierte Antwort an das Modell zurĂĽckgesendet
- Das Modell generiert eine natĂĽrlichsprachliche Sprachantwort, die das Ergebnis einbezieht
Domänenfunktionen
Das System unterstützt ernährungsbezogene Funktionsaufrufe für Szenarien wie:
- Verpasste Mahlzeiten — Verteilt verpasste Makronährstoffe auf die verbleibenden Mahlzeiten
- Ungeplantes Essen — Passt anstehende Mahlzeiten an, um eine unerwartete Aufnahme zu kompensieren
- Mahlzeitenersatz — Tauscht Zutaten aus, während Makroziele beibehalten werden
- Aktivitäts-Tracking — Schätzt den Kalorienverbrauch und passt den Ernährungs-Puffer an
Jede Funktion verwendet eine Makro-Datenbank mit ernährungsphysiologischen Profilen pro Lebensmittel und führt dynamische Berechnungen mit leichter stochastischer Variation für natürlich klingende Antworten durch.
AusfĂĽhrungssicherheit
- Mikrofon-Eingabe wird während der Funktionsausführung pausiert, um Überschneidungen zu vermeiden
- Anstehende Audio-Frames werden verworfen, um veralteten Kontext zu vermeiden
- Fehlerantworten werden elegant zurückgesendet, wenn die Funktionsausführung fehlschlägt
- Normales Streaming wird sofort nach Abschluss der Funktion fortgesetzt
Backend-Architektur
FastAPI WebSocket-Server
- Einzelner WebSocket-Endpunkt fĂĽr die gesamte Client-Kommunikation
- Sitzungslebenszyklus-Management (Start, Stopp, Ping/Pong-Health-Checks)
- Eine aktive Sitzung gleichzeitig mit Sitzungssperre
- CORS-Middleware fĂĽr Entwicklungsumgebungen
- Health Check-Endpunkt zur Ăśberwachung
Sitzungsmanagement
- Sitzungen werden bei Client-Verbindung mit Modusauswahl (nur Audio, Kamera oder Bildschirm) erstellt
- Asynchrone Hintergrundaufgaben verarbeiten Audioerfassung, -verarbeitung und -wiedergabe gleichzeitig
- Elegante Trennung mit Ressourcenbereinigung
- API-SchlĂĽsselvalidierung und Fehlerfortpflanzung
Multimodale Eingabe (Optional)
Neben der Stimme unterstĂĽtzt das System optionalen visuellen Kontext:
- Kamera-Modus — Streamt Webcam-Frames (1fps) für visuellen Kontext in Gesprächen
- Bildschirm-Modus — Erfasst Bildschirminhalte zur Diskussion von Informationen auf dem Bildschirm
- Bilder werden vor der Übertragung in der Größe angepasst und komprimiert
- Visueller Kontext verbessert die Fähigkeit der AI, relevante Antworten zu liefern
Frontend-Benutzeroberfläche
- Sitzungssteuerung — Start/Stopp des Hörens mit deutlichen Statusanzeigen
- Statusanzeige — Echtzeit-Verbindungs- und Sitzungsstatus (Leerlauf, Verbindung wird hergestellt, aktiv, Fehler)
- Theme-Unterstützung — Hell-/Dunkelmodus mit Persistenz
- Geführte Tour — Schritt-für-Schritt-Demo für Erstbenutzer
- WebSocket-Management — Automatische Wiederverbindungslogik
AI-Modellkonfiguration
- Native Audio-Modalität (keine separate STT/TTS-Pipeline)
- Konfigurierbare Stimmauswahl aus mehreren voreingestellten Stimmen
- Systemanweisungen zur Definition der Assistentenpersönlichkeit, des Antwortstils und der Sprachverarbeitung
- Tool-Definitionen fĂĽr alle verfĂĽgbaren Funktionen mit Parameterschemata
- Automatische Spracherkennung mit Antwort in derselben Sprache
Hauptmerkmale
- Latenz unter einer Sekunde — Natives Audio-Modell eliminiert den Overhead von STT/TTS-Pipelines
- Echtzeit Bidirektionales Audio — Kontinuierliches Streaming mit < 50ms Latenz pro Chunk
- Funktionsaufrufe — Domänenspezifische Berechnungen werden mitten im Gespräch ausgeführt
- Natürliche Unterbrechung — Benutzer können den Assistenten auf natürliche Weise ohne spezielle Befehle unterbrechen
- Mehrsprachigkeit — Automatische Spracherkennung mit Antworten in derselben Sprache
- Multimodale Eingabe — Optionaler Kamera- und Bildschirmkontext für visuelles Verständnis
- Sitzungsmanagement — Sitzungslebenszyklus-Steuerung mit Sperrung und Ressourcenbereinigung
- Makro-Berechnungen — Dynamische Ernährungsanpassungen mit Makroprofilen pro Lebensmittel
- Fehlerbehebung — Elegante Behandlung von Funktionsfehlern und Netzwerkunterbrechungen
- Erweiterbar — Neue Funktionen werden durch Definition von Schema und Handler hinzugefügt — keine Architekturänderungen
Ergebnisse
Technologie-Stack
caseStudyDetail.more Fallstudien
Entdecken Sie mehr unserer technischen Implementierungen
KI-gestĂĽtzte Rechnungsverarbeitung mit OCR und QuickBooks-Integration
Ein mittelständisches Unternehmen, das monatlich Hunderte von Lieferantenrechnungen verarbeitete, musste die manuelle Dateneingabe eliminieren, indem es Rechnungsdaten automatisch mithilfe von AI/OCR extrahierte und diese direkt mit QuickBooks für die Buchhaltung und Zahlungsverfolgung synchronisierte.
Clientseitige Anzeigeninsertion (CSAI) mit SCTE-35 Marker-Parsing & Multi-Plattform-Player-Integration
Eine Video-Streaming-Plattform musste die Clientseitige Anzeigeninsertion (CSAI) über Web-, Mobil- und Connected TV-Apps hinweg implementieren – was personalisierte, gerätespezifische Anzeigenerlebnisse mit vollständiger Unterstützung der Anzeigeninteraktion (anklickbare Overlays, Companion-Banner, Skip-Buttons) ermöglicht, die serverseitige Insertion nicht bieten kann.
Bereit, Ihr Unternehmen zu transformieren?
Lassen Sie uns besprechen, wie wir ähnliche Lösungen für Ihre Herausforderungen anwenden können.