2026 — devam · Geliştirici, açık kaynak
brisvox
Gerçek zamanlı sesli ajanlar için Rust motoru: tek konteynerde yüzlerce eşzamanlı çağrı.
Problem
Doğal hissettiren bir sesli ajanın her çağrıda döngüde modellere ihtiyacı var: ses aktivitesi, tur sonu tespiti, sesten yazıya, bir LLM ve yazıdan sese; üstelik arayan her an lafa girebilir. Karşılaştırdığım Python çerçeveleri (Pipecat ve LiveKit Agents) bir konteynerin CPU ya da belleğini birkaç düzine çağrıya harcıyor; bir kesintiden sonra ajanın hafızasında ise yalnızca arayanın gerçekten duyduğu kelimeler kalmalı.
Sistem
Tek bir Rust süreci her çağrı için yalıtılmış bir async oturum yürütür: giriş aktarımı, ayrılmış bir CPU havuzunda ses aktivitesi ve Smart Turn tur sonu tespiti (Silero ve Smart Turn, ONNX ile), akışlı sesten yazıya, araçlı bir LLM yürütücüsü, akışlı yazıdan sese ve çıkış aktarımı. Her kullanıcı turu numaralı bir dönemdir; böylece bayat kareler her yerde atılır ve söz kesildikten sonra LLM bağlamında yalnızca gerçekten çalınan metin kalır. Sağlayıcılar (Deepgram, AssemblyAI, OpenAI, Anthropic, Gemini, Cartesia, ElevenLabs ya da yerel sherpa-onnx ve Ollama) aşama bazında yedeklemeli cargo özellikleridir. Araçlar Python veya TypeScript SDK ile kendi sürecinizde çalışır; yan etkili araçlar hiçbir zaman spekülatif çalışmaz ve aynı çağrı kimliği için iki kez çalışmaz. Sunucu kabul denetimi, düzgün boşaltma, sağlık kontrolleri ve Prometheus metrikleri ekler.

Zor kısımlar
- Her çağrıda gerçek VAD ve tur tespiti modellerini çalıştırıp yine de 4 CPU ve 4 GiB’a yüzlerce çağrı sığdırmak.
- Doğru kesintiler: tur dönemleri, çalınan metne kırpma ve asla iki kez çalışmayan araçlar; durdurulmuş saatli deterministik simülasyonla kanıtlandı.
- Dürüst kıyaslamalar: aynı konteyner, aynı gecikme sınırı, her biri üç koşu ve her sayı depoda duran bir dosyada.
- İngilizcenin yanında birinci sınıf bir dil olarak Türkçe.
Sonuç
Ekim 2026’da MIT ya da Apache-2.0 lisansıyla v0.1.1 olarak GitHub, PyPI, npm ve crates.io’da yayımlandı; hazır ikili dosyalar, bir Docker imajı ve bir dokümantasyon kitabı var. Sahte sağlayıcılarla yaptığım Linux kıyaslamasında (4 CPU, 4 GiB, ses-ses p95 değeri 1,2 sn içinde) yaklaşık 430 MB ile 325 eşzamanlı çağrı taşıdı; Pipecat’te bu sayı 20, ayarlı LiveKit Agents’ta 23. Gerçek sağlayıcılarla 100 turda ortanca ses-ses süresi 1,85 sn (Pipecat 1,97 sn), p95 ise 2,88 sn (Pipecat 4,35 sn) oldu.