Fonksiyon Çağırma ve Çift Yönlü Ses Akışı ile Gerçek Zamanlı Sesli AI Asistanı
Bir fitness ve beslenme platformu, kullanıcılara doğal konuşma ile gerçek zamanlı yanıt verebilen, alana özgü hesaplamaları (yemek ayarlamaları, kalori takibi) yürütebilen ve yanıtları sesli olarak geri iletebilen ses odaklı bir AI asistanına ihtiyaç duyuyordu — hepsi gerçek anlamda sohbet deneyimi için saniye altı gecikmeyle.
Projenizi Tartışın
Zorluk
Üretim sınıfı bir sesli AI asistanı inşa etmek, benzersiz gerçek zamanlı mühendislik zorlukları ortaya çıkardı:
- Gecikme — Geleneksel speech-to-text → LLM → text-to-speech boru hatları 3-5 saniye gecikme ekleyerek konuşma akışını bozuyordu
- Function Calling — Asistanın sadece sohbet etmekle kalmayıp, konuşma sırasında alana özgü mantığı (beslenme hesaplamaları, yemek planı ayarlamaları) yürütmesi gerekiyordu
- Ses Akışı — Çift yönlü sesin, arabelleğe alma boşlukları veya yankı sorunları olmadan sürekli akması gerekiyordu
- Bağlam Farkındalığı — Asistanın kesintileri yönetirken konuşma bağlamını dönüşler arasında sürdürmesi gerekiyordu
- Çok Dilli — Kullanıcılar farklı dillerde konuşuyor ve aynı dilde yanıtlar bekliyordu
- Oturum İzolasyonu — Her ses oturumunun, çapraz konuşma olmadan bağımsız durum yönetimine ihtiyacı vardı
Çözümümüz
Google'ın Gemini Live API'si tarafından desteklenen, yerel ses yeteneklerine, alana özgü hesaplamalar için özel function calling'e ve WebSocket tabanlı ses akışına sahip bir React ön yüzüne sahip gerçek zamanlı sesli AI asistanı geliştirdik.
Mimari
- AI Modeli: Yerel ses girişi/çıkışı ve function calling özellikli Gemini
- Arka Uç: Çift yönlü ses için WebSocket uç noktasına sahip Python/FastAPI
- Ses İşlem Hattı: Mikrofon/hoparlör I/O'su ve gerçek zamanlı akış için PyAudio
- Ön Uç: Oturum kontrolü UI'ı için Vite ve Tailwind CSS ile React
- İletişim: Düşük gecikmeli JSON mesajlaşması ve ikili ses taşıması için WebSocket
- Çok Modlu: Görsel bağlam için isteğe bağlı kamera ve ekran yakalama
Gerçek Zamanlı Ses İşlem Hattı
Çift Yönlü Akış
Sistem, her iki yönde de sürekli ses akışları sağlar:
- Giriş: 16kHz mono olarak yakalanan, küçük çerçevelere bölünen ve AI modeline gerçek zamanlı olarak aktarılan mikrofon sesi
- Çıkış: 24kHz'de alınan ve hoparlörlerden anında oynatılan AI tarafından üretilen konuşma
- Toplu İşleme Yok: Ses öbekleri yakalandığı gibi gönderilir — birikim gecikmeleri olmaz
- Kesinti Yönetimi: Kullanıcı, asistanı yanıtının ortasında doğal bir şekilde kesebilir
Ses İşleme
- Hem giriş hem de çıkış için 16-bit PCM formatı
- Konuşma için optimize edilmiş ayrı örnekleme hızları (16kHz yakalama, 24kHz oynatma)
- Minimum gecikme için küçük arabellek boyutları
- Dönüşler arasında başlatma/durdurma boşlukları olmadan sürekli akış
Function Calling Entegrasyonu
Nasıl Çalışır
AI modeli, alana özgü hesaplamalar gerektiğinde konuşma sırasında yerel Python fonksiyonlarını çağırabilir:
- Kullanıcı bir istekte bulunur (örneğin, "Bugün öğle yemeğini kaçırdım")
- AI modeli konuşmayı yazıya döker ve niyeti anlar
- Model, bir fonksiyon çağrısı gerektiğine karar verir ve yapılandırılmış bir istek gönderir
- Arka uç, fonksiyon adını, argümanları ve çağrı ID'sini çıkarır
- Yerel fonksiyon, alan hesaplamasını yürütür
- Sonuç, yapılandırılmış bir yanıt olarak modele geri gönderilir
- Model, sonucu içeren doğal dilde bir sesli yanıt üretir
Alan Fonksiyonları
Sistem, aşağıdaki senaryolar için beslenme odaklı function calling'i destekler:
- Kaçırılan Öğünler — Kaçırılan makro besinleri kalan öğünlere yeniden dağıtır
- Plansız Yiyecek — Beklenmedik alımı telafi etmek için sonraki öğünleri ayarlar
- Öğün Değişimleri — Makro hedeflerini korurken malzemeleri değiştirir
- Aktivite Takibi — Kalori yakımını tahmin eder ve beslenme arabelleğini ayarlar
Her fonksiyon, gıda bazında beslenme profillerine sahip bir makro veri tabanı kullanır ve doğal hissettiren yanıtlar için hafif stokastik varyasyonla dinamik hesaplamalar yapar.
Yürütme Güvenliği
- Çakışmayı önlemek için fonksiyon yürütmesi sırasında mikrofon girişi duraklatılır
- Eski bağlamı önlemek için bekleyen ses çerçeveleri atılır
- Fonksiyon yürütmesi başarısız olursa hata yanıtları nazikçe geri gönderilir
- Fonksiyon tamamlandıktan hemen sonra normal akış devam eder
Arka Uç Mimari
FastAPI WebSocket Sunucusu
- Tüm istemci iletişimi için tek WebSocket uç noktası
- Oturum yaşam döngüsü yönetimi (başlatma, durdurma, ping/pong sağlık kontrolleri)
- Oturum kilitleme ile aynı anda bir aktif oturum
- Geliştirme ortamları için CORS middleware'i
- İzleme için sağlık kontrolü uç noktası
Oturum Yönetimi
- Oturumlar, istemci bağlantısında mod seçimiyle (yalnızca ses, kamera veya ekran) oluşturulur
- Arka plan async görevler, ses yakalama, işleme ve oynatmayı eşzamanlı olarak yönetir
- Kaynak temizliği ile sorunsuz bağlantı kesme
- API anahtarı doğrulaması ve hata yayılımı
Çok Modlu Giriş (İsteğe Bağlı)
Sesin ötesinde, sistem isteğe bağlı görsel bağlamı destekler:
- Kamera Modu — Konuşmalarda görsel bağlam için web kamerası karelerini (1fps) yayınlar
- Ekran Modu — Ekrandaki bilgileri tartışmak için ekran içeriğini yakalar
- Görüntüler iletimden önce yeniden boyutlandırılır ve sıkıştırılır
- Görsel bağlam, AI'nın ilgili yanıtlar sağlama yeteneğini artırır
Ön Yüz Arayüzü
- Oturum Kontrolü — Net durum göstergeleriyle dinlemeyi başlatma/durdurma
- Durum Ekranı — Gerçek zamanlı bağlantı ve oturum durumu (boşta, bağlanıyor, aktif, hata)
- Tema Desteği — Kalıcılık ile açık/koyu mod
- Rehberli Tanıtım — İlk kez kullananlar için adım adım demo
- WebSocket Yönetimi — Otomatik yeniden bağlantı mantığı
AI Model Yapılandırması
- Yerel ses modalitesi (ayrı STT/TTS işlem hattı yok)
- Birden fazla önceden ayarlanmış sesten yapılandırılabilir ses seçimi
- Asistan kişiliğini, yanıt stilini ve dil işlemeyi tanımlayan sistem talimatları
- Parametre şemaları ile mevcut tüm fonksiyonlar için araç tanımları
- Aynı dilde yanıt ile otomatik dil algılama
Temel Özellikler
- Saniye Altı Gecikme — Yerel ses modeli STT/TTS işlem hattı yükünü ortadan kaldırır
- Gerçek Zamanlı Çift Yönlü Ses — Yığın başına < 50ms gecikme ile sürekli akış
- Function Calling — Konuşma sırasında yürütülen alana özgü hesaplamalar
- Doğal Kesinti — Kullanıcılar, özel komutlar olmadan asistanı doğal bir şekilde kesebilir
- Çok Dilli — Aynı dilde yanıtlarla otomatik dil algılama
- Çok Modlu Giriş — Görsel anlama için isteğe bağlı kamera ve ekran bağlamı
- Oturum Yönetimi — Kilitleme ve kaynak temizliği ile oturum yaşam döngüsü kontrolü
- Makro Hesaplamaları — Gıda bazında makro profillerle dinamik beslenme ayarlamaları
- Hata Kurtarma — Fonksiyon hatalarının ve ağ kesintilerinin sorunsuz yönetimi
- Genişletilebilir — Şema ve işleyici tanımlanarak yeni fonksiyonlar eklenebilir — mimari değişikliği gerektirmez
Sonuçlar
Teknoloji Yığını
caseStudyDetail.more Vaka Çalışmaları
Daha fazla teknik uygulamamızı keşfedin
AI Destekli Fatura İşleme (OCR ve QuickBooks Entegrasyonu ile)
Ayda yüzlerce satıcı faturasını işleyen orta ölçekli bir işletme, fatura verilerini AI/OCR kullanarak otomatik olarak çıkarıp muhasebe ve ödeme takibi için doğrudan QuickBooks'a senkronize ederek manuel veri girişini ortadan kaldırmak istedi.
İstemci Tarafında Reklam Ekleme (CSAI), SCTE-35 İşaretleyici Ayrıştırma ve Çok Platformlu Oynatıcı Entegrasyonu ile
Bir video akış platformu, sunucu tarafı reklam eklemenin sağlayamadığı tam reklam etkileşimi desteğiyle (tıklanabilir katmanlar, yardımcı banner'lar, atlama düğmeleri) kişiselleştirilmiş, cihaz düzeyinde reklam deneyimleri sunarak web, mobil ve akıllı TV uygulamaları genelinde Client-Side Ad Insertion (CSAI) uygulamasına ihtiyaç duyuyordu.
İşletmenizi Dönüştürmeye Hazır mısınız?
Zorluklarınıza benzer çözümler uygulamamızın yollarını konuşalım.