- Apple Silicon üzerinde Swift/MLX ile geliştirilen PersonaPlex 7B modeli, gerçek zamanlı çift yönlü sesli diyalog desteği sunuyor
- Mevcut ASR→LLM→TTS üç aşamalı ses işlem hattını tek bir modelde birleştirerek, metne dönüştürmeden ses girişini ve çıkışını doğrudan işliyor
- 4 bit quantization ile model boyutu 16.7GB'tan 5.3GB'a düşürülürken, 68ms/step(RTF 0.87) ile gerçek zamandan daha hızlı işleme hızı elde ediliyor
- Mimi ses codec'i ve Depformer yapısı kullanılarak ses kalitesinde düşüş olmadan verimli streaming sağlanıyor
- Swift yerel ortamında sunucusuz çalışıyor ve sesli asistanlar ile konuşma tabanlı ajan geliştirme için önemli bir temel teknoloji niteliği taşıyor
qwen3-asr-swift ve PersonaPlex 7B entegrasyonu
- qwen3-asr-swift kütüphanesi, Apple Silicon üzerinde NVIDIA PersonaPlex 7B entegrasyonu ile çift yönlü sesli diyalog (full-duplex speech-to-speech) desteği sunuyor
- Giriş sesini gerçek zamanlı işlerken aynı anda yanıt sesini üretiyor
- ASR, TTS, çok dilli sentez özelliklerini içeren birleşik bir ses işleme kütüphanesine genişletildi
- Modelin 4 bit quantization uygulanmış 5.3GB sürümü, Hugging Face üzerindeki
aufklarer/PersonaPlex-7B-MLX-4bit üzerinden sunuluyor
Geleneksel ses işlem hattının birleştirilmesi
- Geleneksel sesli asistanlar ASR → LLM → TTS şeklinde üç aşamalı bir yapıya sahip ve her aşamada gecikme (latency) ile duygu kaybı yaşanıyor
- PersonaPlex bunu tek bir modelde birleştirerek ses token'larını (audio tokens) doğrudan işliyor
- Sesi 17 paralel akış (12.5Hz) ile gerçek zamanlı dönüştürüyor
- Kyutai'nin Moshi mimarisi temel alınarak 18 ses ön ayarı ve role dayalı sistem prompt'ları destekleniyor
Model yapısı ve dönüşüm
- Orijinal 16.7GB PyTorch checkpoint dosyası, MLX için optimize edilmiş safetensors biçimine dönüştürüldü
- Dönüştürme betiği (
convert_personaplex.py), ağırlık sınıflandırma, 4 bit quantization, ön ayar çıkarma ve Hugging Face yüklemesini otomatik olarak gerçekleştiriyor
- Temporal Transformer(7B parametre) ile Depformer birlikte 4 bit'e sıkıştırıldı
- Depformer, adım bazlı ağırlık geçişi (MultiLinear) yapısını kullanarak 2.4GB → 650MB seviyesine indirildi
- Kalite kaybı olmadan 3.7 kat alan tasarrufu sağlandı
Ses işleme hattı
- Mimi Encoder/Decoder aracılığıyla 24kHz ses, 16 codebook token'ına dönüştürülüyor
- Temporal Transformer, kullanıcı ve ajan ses akışlarını birleşik biçimde işliyor
- Depformer, ajan ses token'larını 16 adımda üretiyor
- Mimi Decoder bunları yeniden 24kHz ses olarak geri oluşturuyor
- Mimi codec'i, KV cache, RoPE, SwiGLU, RMSNorm gibi mevcut TTS modellerindeki bileşenler aynen yeniden kullanılıyor
Sistem prompt'ları ve diyalog kontrolü
- PersonaPlex, metin tabanlı sistem prompt'ları ile konuşma stilini kontrol ediyor
- Prompt olmadığında model konu dışına çıkabiliyor veya fazla uzun yanıt verebiliyor
- CLI ya da API üzerinden assistant, customer service, teacher gibi ön ayarlar seçilebiliyor
- Aynı soruda bile prompt olup olmamasına göre yanıt kalitesi ciddi biçimde değişiyor
Performans ve gerçek zamanlı işleme
- M2 Max(64GB) ortamında 68ms/step, RTF 0.87 ile gerçek zamandan daha hızlı işleme sağlanıyor
- 80ms frame bütçesi (12.5Hz) içinde kararlı biçimde çalışıyor
- ASR, TTS, Speech-to-Speech tek bir kütüphane içinde entegre biçimde test edilebiliyor
- E2E doğrulama, yanıt sesini ASR ile yeniden metne çevirerek konu tutarlılığını kontrol ediyor
Streaming ve optimizasyon
respondStream() API'si, 2 saniyelik ses parçalarını gerçek zamanlı olarak üretiyor
AsyncThrowingStream<AudioChunk> biçiminde anında oynatılabiliyor
- Dört ana optimizasyon:
- eval() birleştirmesi ile GPU senkronizasyonunun azaltılması
- Bulk audio extraction ile decode verimliliğinin artırılması
- Prefill batching ile ilk aşamada paralel işleme
- Temporal transformer derlemesi ile 450'den fazla Metal kernel çağrısının optimize edilmesi
--compile bayrağı veya model.warmUp() ile kernel fusion etkinleştirilebiliyor
Çalıştırma ve dağıtım
- GitHub deposu: ivan-digital/qwen3-asr-swift
swift build -c release ile derlendikten sonra CLI komutlarıyla ASR, TTS, Speech-to-Speech çalıştırılabiliyor
- İlk çalıştırmada yaklaşık 5.3GB model indirme gerekiyor
- MLX framework tabanlı yapısıyla Python veya sunucu olmadan Swift yerel ortamında tamamen çalışıyor
Teknik önemi
- Apple Silicon'un birleşik bellek yapısı ve Metal hızlandırması kullanılarak yüksek performanslı ses modellerinin cihaz üzerinde çalıştırılabildiği gösteriliyor
- Tek model tabanlı gerçek zamanlı sesli diyalog sayesinde yapay zeka asistanı, çağrı merkezi ve eğitim amaçlı ses arayüzleri gibi çeşitli uygulama alanlarının önü açılıyor
- NVIDIA, Kyutai, Alibaba Qwen, FunAudioLLM, Apple MLX gibi birden fazla açık kaynak ekosisteminin entegre başarısı olarak değerlendiriliyor
1 yorum
Hacker News yorumları
Bu projeyi gerçekten çok beğendim. Daha önce PersonaPlex’i blackwell cihazında çalıştırmayı denemiş ama başaramamıştım; bu kez Mac’te denemeyi planlıyorum
Ses ajanlarıyla epey uzun süredir uğraşan biri olarak birkaç dikkat edilmesi gereken nokta var. VAD→ASR→LLM→TTS pipeline’ı da RTT 1 saniyenin altındaysa gerçek zamanlı gibi hissettiriyor. Kendi projem ova ile voice-agent ve parakeet.cpp gibi örneklere bakılabilir
PersonaPlex topluluğuyla konuştuğumda, tam anlamıyla full-duplex yapının doğruluk ve performans açısından hâlâ zor olduğu ve eğitiminin de karmaşık olduğu söylendi. Buna karşılık ASR→LLM→TTS yapısı modüler olduğu için küçük LLM ile büyük LLM’i, yerel ve API tabanlı endpoint’leri esnek biçimde karıştırıp eşleştirme avantajı sunuyor
Mevcut STT→LLM→TTS yapısı araç çağırma, gelişmiş bağlam yönetimi, RAG gibi yapılarla iyi uyum sağlıyor. İnsanla doğrudan konuşan ajan ile iç alt ajanları ayırarak gecikmeyi ve bağlam yükünü azaltma yaklaşımı iyi çalışıyor
Full-duplex yapı daha dinamik hissettiriyor ama bunu gerçek bir ses ajanına pratikte nasıl entegre edeceğim konusunda hâlâ net bir fikrim yok. Discord’da fikir alışverişi yapmak isterim
qwen3-asr-swift, ASR, TTS ve PersonaPlex’i tek bir Swift paketi içinde topladığı için gerekli bileşenlerin hepsi zaten mevcut. PersonaPlex düşük gecikmeli backchanneling ve doğal turn-taking işini üstlenirken, ayrı bir LLM araç çağırmayı yapıyor
Sorun bu ikisinin orkestrasyonu. “Beynin” ne zaman “ağzın” üstüne yazacağı, PersonaPlex’in doğrulanmamış cevapları özgüvenle söylemesini nasıl engelleyeceğimiz ve araç sonucu mevcut ifadeyle çakıştığında bunun nasıl ele alınacağı hâlâ çözülmemiş konular
Bu proje ilginç ama şahsen 7B yerel model içinde araç çağırma özelliği olmasını isterdim. Şu anki sürüm sadece wav dosyası alan bir proof of concept düzeyinde
Yazının LLM yazım stili fazla yapay hissettirdiği için projenin kalitesinden şüphe duydum
Demoyu M1 Max MacBook’ta çalıştırdım ama yanıtın gelmesi 10 saniyeden uzun sürdü ve içerik de alakasızdı
Tabii belirli kullanım senaryolarında işe yarayabilir ama o tarafı daha iyi öğrenmek isterim
Bu teknoloji epey tehlikeli görünüyor. İlgili haber: The Guardian haberi
Daha önce gördüğüm en iyi full-duplex demo Sesame’di. Şimdi ne durumda olduğunu merak ediyorum (bağlantı)
Ben whisperKit hayranıyım. Yakın zamanda TTS özelliği eklendi ve çok daha iyi oldu. Speaker diarization ve özel sözlük desteği de var
Tek bir cihazda 4 modeli aynı anda gerçek zamanlı çalıştıran bir yük testi de mevcut:
Test videosu
Telefonumun spam aramaları bu modele otomatik yönlendirdiği bir sistem yapmak istiyorum; böylece sahte kişisel bilgileri yavaş yavaş verip araya hava durumu ya da spor sohbeti sıkıştırabilir
PersonaPlex’i giden aramalar için fine-tune etmeye çalışıyorum. Kyutai/moshi-finetune’un LoRA yaklaşımını uyguladım ama çalışması için scaling factor’ü 5’e çıkarmam gerekiyor ve bu da başka kısımları bozuyor
GPT-5.3 Codex, kod incelemesi sırasında konuşmacı A/B’nin ters döndüğünü söylediği için veri setini yeniden üretiyorum.
GitHub hesabımda(runvnc) moshi-finetune ve personaplex sürümleri var; Gradio uygulaması ile veri üretimi ve eğitim yapılabiliyor. Henüz işe yarar sonuç çıkmadı
Ben MacWhisper’ı sık kullanıyorum. Whisper Large v3 Turbo modeli fena değil ama gecikme birikiyor. Çevrimiçi bir LLM ile sonradan işleyince kalite artıyor ama hız düşüyor
Model bağlantısı, FluidAudio GitHub
Discord topluluğu da aktif ve VAD, TTS, EOU gibi yeni özellikler hakkında yoğun tartışmalar var