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
Kickly: KI-gestĂĽtzte Projektplattform fĂĽr Startups
Kickly ist eine KI-gestützte Projektmanagementplattform, die für Startups entwickelt wurde – und intelligente Aufgabenautomatisierung, Teamkollaboration und Echtzeit-Fortschrittsverfolgung in einem Produkt vereint.
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.
Bereit, Ihr Unternehmen zu transformieren?
Lassen Sie uns besprechen, wie wir ähnliche Lösungen für Ihre Herausforderungen anwenden können.