- Model PersonaPlex 7B yang diimplementasikan dengan Swift/MLX di Apple Silicon mendukung percakapan suara dua arah real-time
- Pipeline suara 3 tahap ASR→LLM→TTS yang ada sebelumnya disatukan menjadi satu model, sehingga dapat langsung memproses input dan output audio tanpa konversi ke teks
- Dengan kuantisasi 4-bit (quantization), ukuran model diperkecil dari 16.7GB menjadi 5.3GB, dan mencapai kecepatan pemrosesan lebih cepat dari real-time pada 68ms/step (RTF 0.87)
- Menggunakan codec audio Mimi dan arsitektur Depformer untuk mewujudkan streaming yang efisien tanpa penurunan kualitas suara
- Berjalan secara native di lingkungan Swift tanpa server, menjadikannya teknologi dasar penting untuk pengembangan asisten suara dan agen percakapan
Integrasi qwen3-asr-swift dan PersonaPlex 7B
- Library qwen3-asr-swift mengintegrasikan NVIDIA PersonaPlex 7B di Apple Silicon untuk mendukung fitur full-duplex speech-to-speech
- Memproses audio masukan secara real-time sambil secara bersamaan menghasilkan audio respons
- Diperluas menjadi library pemrosesan suara terpadu yang mencakup fungsi ASR, TTS, dan sintesis multibahasa
- Model tersedia dalam versi 5.3GB yang sudah dikuantisasi 4-bit di Hugging Face melalui
aufklarer/PersonaPlex-7B-MLX-4bit
Penyatuan pipeline suara konvensional
- Asisten suara tradisional memakai struktur 3 tahap ASR → LLM → TTS, yang menimbulkan latensi dan hilangnya nuansa emosional di setiap tahap
- PersonaPlex menyatukannya ke dalam satu model yang langsung memproses audio tokens
- Mengubah audio secara real-time melalui 17 stream paralel (12.5Hz)
- Berdasarkan arsitektur Moshi dari Kyutai, serta mendukung 18 preset suara dan system prompt berbasis peran
Arsitektur model dan konversi
- Checkpoint PyTorch 16.7GB asli dikonversi menjadi safetensors yang dioptimalkan untuk MLX
- Skrip konversi (
convert_personaplex.py) secara otomatis menangani klasifikasi bobot, kuantisasi 4-bit, ekstraksi preset, dan upload ke Hugging Face
- Temporal Transformer (parameter 7B) dan Depformer sama-sama dikompresi ke 4-bit
- Depformer menggunakan struktur peralihan bobot bertahap (MultiLinear) sehingga ukurannya menyusut dari 2.4GB → 650MB
- Memberikan penghematan kapasitas 3.7x tanpa penurunan kualitas
Pipeline pemrosesan suara
- Melalui Mimi Encoder/Decoder, audio 24kHz diubah menjadi token 16 codebook
- Temporal Transformer memproses stream audio pengguna dan agen secara terpadu
- Depformer menghasilkan token audio agen dalam 16 tahap
- Mimi Decoder kemudian memulihkannya kembali menjadi audio 24kHz
- Komponen model TTS yang sudah ada seperti codec Mimi, KV cache, RoPE, SwiGLU, RMSNorm digunakan kembali apa adanya
System prompt dan kontrol percakapan
- PersonaPlex mengontrol gaya percakapan melalui system prompt berbasis teks
- Tanpa prompt, model bisa keluar dari topik atau memberi respons terlalu panjang
- Preset seperti assistant, customer service, teacher dapat dipilih dari CLI atau API
- Untuk pertanyaan yang sama, kualitas respons bisa sangat berbeda tergantung ada atau tidaknya prompt
Performa dan pemrosesan real-time
- Pada lingkungan M2 Max (64GB), tercapai 68ms/step, RTF 0.87, yaitu lebih cepat dari real-time
- Berjalan stabil dalam anggaran frame 80ms (12.5Hz)
- ASR, TTS, Speech-to-Speech dapat diuji secara terintegrasi dalam satu library
- Verifikasi E2E dilakukan dengan mengubah kembali audio respons menjadi teks melalui ASR untuk memastikan konsistensi topik
Streaming dan optimasi
- API
respondStream() menghasilkan audio chunk per 2 detik secara real-time
- Dapat langsung diputar dalam bentuk AsyncThrowingStream<AudioChunk>
- Empat optimasi utama:
- Integrasi eval() untuk mengurangi sinkronisasi GPU
- Bulk audio extraction untuk meningkatkan efisiensi decoding
- Prefill batching untuk pemrosesan paralel pada tahap awal
- Kompilasi temporal transformer untuk mengoptimalkan lebih dari 450 pemanggilan kernel Metal
- Kernel fusion dapat diaktifkan dengan flag
--compile atau model.warmUp()
Eksekusi dan deployment
- Repositori GitHub: ivan-digital/qwen3-asr-swift
- Setelah build dengan
swift build -c release, ASR, TTS, Speech-to-Speech dapat dijalankan lewat perintah CLI
- Saat eksekusi pertama, perlu mengunduh model sekitar 5.3GB
- Berbasis framework MLX, dan berjalan sepenuhnya di lingkungan native Swift tanpa Python maupun server
Signifikansi teknis
- Membuktikan eksekusi on-device model suara berperforma tinggi dengan memanfaatkan arsitektur memori terpadu Apple Silicon dan akselerasi Metal
- Dengan implementasi percakapan suara real-time berbasis satu model, terbuka berbagai kemungkinan aplikasi seperti asisten AI, call center, dan antarmuka suara untuk pendidikan
- Dinilai sebagai hasil integrasi dari berbagai ekosistem open source seperti NVIDIA, Kyutai, Alibaba Qwen, FunAudioLLM, Apple MLX
1 komentar
Komentar Hacker News
Saya sangat menyukai proyek ini. Dulu saya pernah gagal menjalankan PersonaPlex di perangkat blackwell, dan kali ini saya berencana mencobanya di Mac
Dari pengalaman saya yang sudah cukup lama bekerja dengan agen suara, ada beberapa hal yang perlu diperhatikan. Bahkan pipeline VAD→ASR→LLM→TTS pun terasa seperti real-time jika RTT di bawah 1 detik. Proyek saya ova, serta contoh seperti voice-agent dan parakeet.cpp, layak dijadikan referensi
Dari obrolan saya dengan komunitas PersonaPlex, struktur full-duplex yang sepenuhnya masih sulit dari sisi akurasi maupun performa, dan pelatihannya juga rumit. Sebaliknya, struktur ASR→LLM→TTS bersifat modular sehingga fleksibel untuk mencampur LLM kecil dan besar, endpoint lokal maupun berbasis API
Struktur STT→LLM→TTS yang ada sekarang cocok dengan pemanggilan alat, manajemen konteks tingkat lanjut, RAG, dan sebagainya. Memisahkan agen yang berbicara langsung dengan manusia dan subagen internal bekerja dengan baik untuk mengurangi latensi dan beban konteks
Struktur full-duplex memang terasa lebih dinamis, tetapi saya masih belum punya gambaran jelas bagaimana cara mengintegrasikannya ke agen suara nyata. Saya ingin bertukar pendapat di Discord
Karena qwen3-asr-swift menggabungkan ASR, TTS, dan PersonaPlex dalam satu paket Swift, semua komponen yang dibutuhkan sebenarnya sudah ada. PersonaPlex menangani backchanneling berlatensi rendah dan turn-taking yang alami, sementara LLM terpisah menangani pemanggilan alat
Masalahnya adalah orkestrasi antara keduanya. Kapan “otak” harus menimpa “mulut”, bagaimana mencegah PersonaPlex menyampaikan jawaban yang belum terverifikasi dengan penuh keyakinan, dan bagaimana menangani hasil alat yang bertabrakan dengan ujaran yang sedang berlangsung, semua itu masih belum terpecahkan
Proyek ini menarik, tetapi secara pribadi saya berharap model lokal 7B punya kemampuan pemanggilan alat. Versi sekarang masih sebatas proof of concept yang hanya menerima file wav sebagai input
Gaya penulisan LLM pada artikelnya terasa terlalu artifisial, jadi saya sempat meragukan kualitas proyeknya
Saya mencoba menjalankan demo di MacBook M1 Max, tetapi responsnya butuh lebih dari 10 detik dan isinya juga melenceng
Tentu saja mungkin tetap berguna untuk kegunaan tertentu, tetapi saya ingin belajar lebih jauh tentang bagian itu
Teknologi ini terlihat cukup berbahaya. Artikel terkait: liputan The Guardian
Sesame yang pernah saya lihat dulu adalah demo full-duplex terbaik. Saya penasaran bagaimana kabarnya sekarang (tautan)
Saya penggemar whisperKit. Baru-baru ini ditambahkan fitur TTS sehingga jadi jauh lebih bagus. Ia juga mendukung speaker diarization dan kamus kustom
Ada juga uji beban yang menjalankan 4 model sekaligus secara real-time pada satu perangkat:
video pengujian
Saya ingin membuat sistem di mana ponsel saya meneruskan otomatis panggilan spam ke model ini, lalu model itu perlahan memberikan data pribadi palsu sambil menyelipkan obrolan tentang cuaca atau olahraga
Saya sedang mencoba fine-tuning PersonaPlex untuk panggilan outbound. Saya menerapkan pendekatan LoRA dari Kyutai/moshi-finetune, tetapi baru bekerja jika faktor scaling dinaikkan ke 5 dan malah merusak bagian lain
GPT-5.3 Codex saat meninjau kode mengatakan bahwa speaker A/B tertukar, jadi saya sedang membuat ulang dataset-nya.
Di GitHub saya (runvnc) ada versi moshi-finetune dan personaplex, dan lewat aplikasi Gradio bisa dilakukan pembuatan data serta pelatihan. Hasilnya masih belum terlalu berguna
Saya sering memakai MacWhisper, dan model Whisper Large v3 Turbo cukup baik, tetapi latensi menumpuk. Jika diproses lanjut dengan LLM online, kualitasnya memang membaik tetapi menjadi lambat
tautan model, FluidAudio GitHub
Komunitas Discord-nya juga aktif, dan diskusi tentang fitur terbaru seperti VAD, TTS, EOU sangat hidup