Dukungan Gemini 3.1 Flash Live + Tantangan MiniCPM-o 4.5 vLLM — Kisah Pengembangan AI Suara Real-time S2S Naia OS Sejak itu, saya tidak dapat mengunggah pembaruan artikel untuk sementara waktu.
Banyak hal terjadi selama ini. Nextain telah mengambil alih operasional portal Kristen Korea (www.onmam.com) dan sedang mendiskusikan dukungan untuk penerapan AI, dan layanan Naia juga akan mendapatkan momentum setelah terpilih dalam proyek pemerintah Korea. Tampaknya kami akan dapat memperkenalkan avatar Naia yang asli, bukan hanya avatar dasar dari Vroid Hub.
Dan di akhir artikel sebelumnya, saya menulis bahwa saya pikir situasinya akan lebih mudah karena saya akan meminjam kartu grafis minggu depan, dan janji itu akhirnya bisa saya tepati sekarang. Di lingkungan dua RTX 3090, kami telah menyelesaikan verifikasi operasi awal untuk mem-porting MiniCPM-o 4.5 ke vllm-omni dan menghubungkannya ke klien Naia, termasuk percakapan bahasa Inggris real-time dan referensi audio (kloning suara).
Sebagai catatan, kami adalah yang pertama yang mengunggah MiniCPM-o 4.5 ke vllm-omni, dan ada juga orang-orang di luar negeri yang penasaran seberapa jauh perkembangannya. Ada upaya dari orang lain di > #1182 di upstream, tetapi belum pernah di-merge, dan kami juga telah mengerjakannya di jalur terpisah. Kami sudah mencapai tingkat yang cukup fungsional, dan sekarang sedang dalam tahap penataan agar dapat diterima oleh maintainer upstream.
Mengapa MiniCPM-o 4.5 Menjadi Target?
Seperti yang saya tulis di artikel sebelumnya, untuk meringkasnya lagi, model omni yang dapat dijalankan oleh individu dengan satu RTX 3090, sekaligus mendukung referensi audio (kloning suara) dan fine-tuning, saat ini MiniCPM-o 4.5 adalah satu-satunya yang praktis.
- GPT-4o / Gemini Live — Khusus cloud, bobot tidak publik, tidak dapat di-fine-tune
- Moshi — Open-source dan full-duplex sangat baik, namun sebagian besar bahasa Inggris/Prancis + komunitas tidak aktif
- Qwen3-Omni-30B — Karena 30B, tidak muat dalam satu kartu 24 GB tanpa kuantisasi, dan output suara rusak jika di-kuantisasi
- MiniCPM-o 4.5 — 9B (gabungan Whisper-medium + Qwen3-8B + CosyVoice2 + SigLip2), berjalan dengan satu kartu 24 GB, kloning suara dengan referensi audio, dan dapat di-fine-tune
Namun, kurangnya dukungan bahasa Korea masih menjadi kelemahan dan mungkin menjadi area di mana kami dapat berkontribusi. Oleh karena itu, dalam AI Champion kali ini, kami telah mengajukan diri untuk melakukan fine-tuning bahasa Korea vLLM-omni dan layanan VTuber menggunakan Naia-Memory dengan nama tim "Mengingatmu". Kami tidak dapat mengajukan diri dalam kategori 'domestik' karena tidak ada model omni dengan tingkat yang kami inginkan.
"Siapa yang tidak ingin memiliki VTuber AI yang mengingat saya dan berbicara dengan suara saya sendiri di PC saya?" Untuk mewujudkan hal ini, kami percaya teknologi-teknologi berikut diperlukan, dan kami sedang fokus pada teknologi-teknologi tersebut.
- Model Omni yang Berjalan Secara Lokal — Bukan pipeline STT/LLM/TTS, melainkan speech-to-speech end-to-end. Pendekatan pipeline memiliki latensi kumulatif dan kehilangan intonasi yang terlalu besar. → MiniCPM-o 4.5
- Referensi Audio (Kloning Suara) — "Bicaralah dengan suara ini" Sekali didengarkan, percakapan akan disintesis dengan nada suara tersebut. → Kloning berbasis spk_emb dari CosyVoice2
- Memori Jangka Panjang — Sistem memori yang mengingat pengguna dan tidak direset setiap sesi. → Naia Memory yang sedang kami kembangkan secara terpisah (sistem memori terinspirasi ilmu saraf 4 tingkat)
- Bahasa Korea — Ketiga hal di atas harus berfungsi dalam bahasa Korea untuk penggunaan sehari-hari. → Fine-tuning CosyVoice2 bahasa Korea (data AIHub telah diperoleh, akan segera dimulai setelah dukungan GPU tersedia)
Dan ada juga jalur lain yang akan segera kami ungkapkan. naia-sing — Anda mungkin sudah bisa menebak dari namanya. Nantikan! Di bawah ini, kami juga akan membagikan demo aktual dan detail teknis tambahan.
Demo 1 — Percakapan di Klien Naia
Mohon maaf jika bahasa Inggris saya kurang bagus dalam video demo.
Ini adalah video yang menguji percakapan dengan mem-porting MiniCPM 4.5-o ke vllm-omni dan menghubungkannya ke aplikasi desktop Naia. Perangkat kerasnya adalah RTX-3090 ×2 (2-way), bf16 tanpa kuantisasi. Sesuai dengan karakteristik model omni (S2S, speech-to-speech end-to-end), alur percakapan yang lancar dan ekspresi emosi yang alami tetap hidup. Saat ini mendukung bahasa Inggris dan Mandarin.
Demo 2 — Halaman Demo MiniCPM-o + Referensi Audio
Ini adalah fork dari halaman demo resmi MiniCPM-o 4.5 yang terhubung ke backend vllm-omni. Ini mencakup contoh operasi referensi audio (kloning suara). Ketika file WAV diunggah, respons akan disintesis dengan nada dan intonasi suara tersebut. Di sisi server, dengan cache LRU kunci SHA-256 untuk menghindari perhitungan ulang referensi yang sama, hampir tidak ada overhead tambahan setelah respons pertama.
Ringkasan Implementasi
Kami bekerja di tiga repositori.
| Repo | Peran |
|---|---|
nextain/vllm-omni | Fork vllm-omni — Modul model MiniCPM-o 4.5 + pipeline 3-tahap Thinker→Talker→Code2Wav + penambahan kloning suara (session.update.ref_audio) |
nextain/MiniCPM-o-Demo-forvLLM-omni | Fork dari demo PyTorch resmi — Penambahan mode backend=vllm_omni, memungkinkan input/verifikasi langsung URL vllm-omni di halaman audio-duplex |
nextain/naia-os | Aplikasi desktop Naia — Penambahan bidang MiniCpmOConfig.refAudio sebagai first-class, AudioContext → 16 kHz mono → encoder WAV base64 di browser (Tauri webview) |
Klien Naia langsung terhubung ke /v1/realtime (kompatibel dengan OpenAI Realtime API) dari vllm-omni tanpa melalui gateway demo. Audio PCM16 16 kHz dialirkan melalui WebSocket, dan respons diterima sebagai PCM16 mono 24 kHz. Seluruh pekerjaan dilakukan dengan Claude Code. Mulai dari kode model, YAML konfigurasi stage, stage_input_processor, proxy backend demo, hingga klien TypeScript Naia + encoder WAV + vitest.
- Naia sedang dalam perombakan total. Sebagian dari Naia-os kemungkinan akan menjadi struktur dengan backend CLI yang fleksibel sebagai naia-agent, dan akan digabungkan dengan Naia-memory dan Naia-ADK.
Namun, AI Slop Masih Ada
Di artikel sebelumnya, saya menulis bahwa "tujuan dari pekerjaan ini adalah eksperimen untuk mewujudkan ekosistem Open-source AI-native, di mana AI dapat berkontribusi dengan benar pada open-source tanpa 'ai slop'", dan saat ini bagian tersebut masih yang paling sulit, dan setelah pemeriksaan akhir, masalah kembali muncul. Namun, saya ingin membagikannya sesegera mungkin, jadi saya menulis postingan ini sebelum menyelesaikan masalah tersebut.
Selama beberapa hari terakhir, saya menjalankan agen AI lain sebagai peninjau antagonis sebanyak 4 kali. Pada putaran pertama, ada 2 BLOCKER + 13 MAJOR. Salah satunya adalah kebohongan yang jelas seperti "Klien contoh tidak berfungsi — backend berbasis input audio tetapi ditulis sebagai text-driven". Pada putaran kedua, 1 MAJOR (contoh menggunakan audioop stdlib yang dihapus di Python 3.13). Pada putaran ketiga dan keempat, lulus bersih. Memenuhi aturan kami (2 kali bersih berturut-turut). Namun, tidak berhenti di situ, saya menjalankannya sekali lagi dari perspektif maintainer vllm-project, dan hasilnya masih sama.
- 3 BLOCKER:
- Perubahan invariant cross-cutting (whitelist→blacklist) di
chunk_transfer_adapter.pyuntuk fungsionalitas model tunggal prompt_len_overridekhusus untuk MiniCPM-o tetapi terletak di shared infra- Saluran samping
chat_template_kwargs.ref_audiomelanggar lapisan — ada preseden bidang first-class di sebelahnya
- Perubahan invariant cross-cutting (whitelist→blacklist) di
- 5 MAJOR + 8 MINOR
Meskipun aturan internal kami terpenuhi, menurut standar maintainer eksternal, ini tidak akan di-merge pada putaran pertama. Selain itu, upstream/main telah diperbarui lagi setelah merge-base fork kami, sehingga pekerjaan merging tambahan sedang berlangsung.
Pekerjaan Selanjutnya
- Perbaikan BLOCKER/MAJOR dari Perspektif Upstream — Sedang berlangsung
- Merge upstream/main + Penyelesaian Konflik — Segera
- Pengajuan PR — Setelah 2 hal di atas selesai. Keputusan antara PR tunggal vs. 2 PR terpisah (modul model / kloning suara) masih ditunda
- Fine-tuning Bahasa Korea — Model itu sendiri. Hambatan terbesar adalah CosyVoice2 (backbone Code2Wav) belum dilatih dalam bahasa Korea. Saat ini, pembuatan teks bahasa Korea normal, tetapi sintesis suara terdengar rusak.
Pekerjaan selanjutnya akan kami rangkum dan bagikan lagi. Kami akan menunjukkan bahwa AI juga dapat berkontribusi pada open-source. Komentar atau GitHub Issue sangat kami sambut.
Repositori
Naia: https://naia.nextain.io