9 poin oleh GN⁺ 2026-03-06 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2026-03-06
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

    • Saya juga sedang membuat agen suara sendiri, jadi ingin sekali berdiskusi. Saat ini saya sedang memikirkan bagaimana mengintegrasikan pipeline full-duplex ke dalam agentic framework
      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
    • Inti thread ini terlihat seperti pertentangan antara full-duplex dan composable pipeline, tetapi pada praktiknya kedua struktur itu harus berjalan bersamaan. Library ini sudah setengah jalan ke arah itu
      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
    • Saya sepenuhnya setuju dengan pipeline ini. Model kecil bisa menghasilkan respons instan, sambil secara bersamaan melakukan pemanggilan alat atau meneruskan ke model yang lebih cerdas. Struktur yang menangani respons asinkron cepat dan pemanggilan alat secara paralel itu sangat bagus
    • Saya sendiri masih lebih menyukai struktur composable pipeline. Dalam layanan skala besar, fleksibilitas untuk mengganti LLM berdasarkan biaya atau kualitas adalah keunggulan besar
  • 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

    • Saya sudah mem-fork lalu memodifikasinya agar menjalankan LLM lain secara paralel untuk menyimpulkan waktu pemanggilan alat. Versi saya bekerja cukup baik untuk tugas sederhana seperti kontrol lampu. Pembaruan kodenya ada di sini
    • Folder /Examples/PersonaPlexDemo berisi demo percakapan berbasis giliran. Namun, transformasi real-time masih belum diimplementasikan
    • Pernyataan bahwa ini hanya menerima file wav agak menyesatkan. Yang dibutuhkan hanya audio buffer, dan dukungan streaming juga sudah direncanakan. Melihat alur perkembangannya ke ASR, streaming TTS, dan sintesis multibahasa, arah PersonaPlex jelas menuju pemrosesan suara streaming
    • Idealnya, struktur PWA + WebRTC di ponsel yang terhubung ke model di PC/Mac akan bagus. Dengan Livekit, sebagian besar bagian rumit sudah teratasi
    • NVIDIA/personaplex sebenarnya memang bekerja secara interaktif
  • Gaya penulisan LLM pada artikelnya terasa terlalu artifisial, jadi saya sempat meragukan kualitas proyeknya

    • Tetapi wajar saja jika para peneliti AI memakai LLM di mana-mana. Kalau seseorang sangat antusias pada AI, tentu mereka akan melakukannya
    • Saya penasaran bagian mana yang terasa seperti tulisan LLM. Diagram mungkin iya, tapi pada teksnya bagian mana yang membuatnya terlihat seperti itu ingin saya tahu
    • Justru menurut saya tulisan buatan AI lebih mudah dibaca. Manusia sering menulis bertele-tele, sedangkan AI menyusun informasi agar mudah dicerna
    • Secara pribadi saya malah lebih tidak suka grafik atau chart yang dibuat AI
  • Saya mencoba menjalankan demo di MacBook M1 Max, tetapi responsnya butuh lebih dari 10 detik dan isinya juga melenceng

    • Sebenarnya keterbatasannya memang bahwa model full-duplex kelas 7B punya tingkat kecerdasan yang rendah sehingga tidak bisa melakukan pemanggilan alat. Ada juga masalah meniru mode suara ChatGPT seperti pencarian web atau membaca tautan
      Tentu saja mungkin tetap berguna untuk kegunaan tertentu, tetapi saya ingin belajar lebih jauh tentang bagian itu
    • Menurut artikel yang dikutip, PersonaPlex bisa mengendalikan gaya percakapan lewat system prompt. Jika dijalankan tanpa prompt, model akan keluar topik, tetapi jika diberi prompt, responsnya jauh lebih konsisten
    • Saya penasaran berapa context size-nya
    • Di GPU setingkat RTX 5070, responsnya lebih cepat daripada manusia
  • Teknologi ini terlihat cukup berbahaya. Artikel terkait: liputan The Guardian

    • Saat memakai LLM seperti konselor, kalau Anda sedikit mengubah input sebelumnya lalu meminta jawaban ulang, langsung terasa betapa bias-nya model itu. Ia tampak seperti manusia, tetapi sebenarnya terlalu bergantung pada input
    • Jika pengguna diedukasi bahwa LLM hanyalah document completer, sebagian besar masalah sepertinya bisa diatasi. Beberapa produk justru menyembunyikan fakta ini agar terlihat lebih manusiawi, tetapi itu malah kontraproduktif
    • Isi artikelnya merangkum risikonya dengan baik. Pernah ada kasus chatbot memanggil pengguna sebagai “cintaku” lalu mendorong bunuh diri, dan ada juga kasus serupa yang membuat Google digugat
  • Sesame yang pernah saya lihat dulu adalah demo full-duplex terbaik. Saya penasaran bagaimana kabarnya sekarang (tautan)

    • Saya juga cukup menikmati unmute.sh
    • Tingkat kematangannya benar-benar sulit dipercaya
  • 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:

    • Qwen3-TTS (teks→suara)
    • Parakeet v2 (suara→teks)
    • Canary v2 (STT/terjemahan multibahasa)
    • Sortformer (speaker diarization)
      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

    • Akan lucu juga kalau diterapkan ke SMS spam. Mengotomatiskan respons ngawur seperti “Karena cuacanya, mesin pencuci piring saya jadi aneh. Tas yoga klorin saya banyak sekali, jadi piring cepat aus” bakal sangat hebat
  • 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

    • MacWhisper sudah mendukung model 10x lebih cepat seperti Parakeet v2. Saya penasaran apakah Anda sudah mencobanya
    • Saya memakai Parakeet V2 di Handy untuk STT, lalu Cerebras gpt-oss-120b untuk post-processing, dan saya puas
    • Model-model yang didukung Handy juga layak dicoba. Kualitasnya memang di bawah Whisper-large, tetapi kecepatannya sangat tinggi
    • Model Parakeet TDT CoreML yang dioptimalkan oleh Fluid Audio adalah yang tercepat yang pernah saya pakai sejauh ini. Ini berkat offloading ke NPU
      tautan model, FluidAudio GitHub
      Komunitas Discord-nya juga aktif, dan diskusi tentang fitur terbaru seperti VAD, TTS, EOU sangat hidup
    • Kombinasi Handy + Parakeet v2 memang luar biasa