Moshi: Model berbasis suara-teks untuk percakapan real-time
Pengenalan Moshi
- Moshi adalah model berbasis suara-teks untuk percakapan real-time sekaligus kerangka kerja percakapan suara dua arah
- Menggunakan Mimi, codec audio neural streaming mutakhir
- Mimi mengubah audio 24 kHz menjadi 12.5 Hz, dan memprosesnya secara streaming dengan latensi 80 ms sambil mempertahankan bandwidth 1.1 kbps
- Kinerjanya lebih baik daripada codec non-streaming yang sudah ada seperti SpeechTokenizer (50Hz, 4kbps) atau SemantiCodec (50Hz, 1.3kbps)
Cara kerja Moshi
- Moshi memodelkan dua aliran audio: satu milik Moshi, satu lagi milik pengguna
- Saat inferensi, aliran pengguna diambil dari input audio, dan aliran Moshi di-sampling dari output model
- Bersama dua aliran audio ini, Moshi memprediksi token teks yang sesuai dengan suaranya sendiri
- Depth Transformer kecil memodelkan dependensi antar-codebook pada langkah waktu tertentu, dan Temporal Transformer besar dengan 7B parameter memodelkan dependensi temporal
- Secara teoretis Moshi mencapai latensi 160 ms, dan dalam praktiknya memiliki latensi di bawah 200 ms pada GPU L4
Karakteristik Mimi
- Mimi dibangun di atas codec audio neural sebelumnya seperti SoundStream dan EnCodec, dengan menambahkan Transformer pada encoder dan decoder
- Mimi menyesuaikan stride agar lebih mendekati rata-rata frame rate token teks (~3-4 Hz)
- Mimi menggunakan loss distilasi yang menyelaraskan token codebook pertama dengan representasi self-supervised dari WavLM
- Mimi hanya menggunakan adversarial training loss dan feature matching, namun tetap menunjukkan peningkatan besar pada kualitas subjektif di bitrate rendah
Struktur repositori
- Repositori ini memiliki tiga versi stack inferensi Moshi
- Versi Python yang menggunakan PyTorch ada di direktori
moshi/
- Versi Python yang menggunakan MLX untuk Mac seri M ada di direktori
moshi_mlx/
- Versi Rust yang digunakan di produksi ada di direktori
rust/
- Kode demo langsung disediakan di direktori
client/
Model
- Tiga model dirilis
- Codec suara Mimi
- Moshi yang di-fine-tune dengan suara sintetis pria (Moshiko)
- Moshi yang di-fine-tune dengan suara sintetis wanita (Moshika)
- Setiap model tersedia di repositori HuggingFace
- Semua model dirilis dengan lisensi CC-BY 4.0
Persyaratan
- Minimal memerlukan Python 3.10, dan Python 3.12 direkomendasikan
- Untuk persyaratan spesifik, lihat masing-masing direktori backend
- Disediakan perintah instalasi klien PyTorch dan MLX
Python (PyTorch)
- API berbasis PyTorch ada di direktori
moshi
- Menyediakan tokenizer audio streaming (mimi) dan language model (moshi)
- Untuk menjalankan dalam mode interaktif, server harus dijalankan terlebih dahulu
Python (MLX) untuk macOS
- Setelah menginstal
moshi_mlx, Anda dapat menjalankan inferensi lokal
- Antarmuka baris perintah masih dasar dan tidak memiliki fitur echo cancellation
Rust
- Untuk menjalankan server inferensi Rust, gunakan perintah di direktori
rust
- Di macOS, Anda dapat menggunakan
--features metal alih-alih --features cuda
Klien
- Disarankan menggunakan web UI, yang menyediakan fitur echo cancellation tambahan
- Antarmuka baris perintah juga tersedia
Pengembangan
- Anda dapat meng-clone repositori lalu menginstalnya untuk pengembangan
FAQ
- Periksa bagian pertanyaan yang sering diajukan sebelum membuka issue
Lisensi
- Bagian Python menggunakan lisensi MIT, backend Rust menggunakan lisensi Apache
- Kode web client menggunakan lisensi MIT
- Bobot model menggunakan lisensi CC-BY 4.0
Sitasi
- Jika menggunakan Mimi atau Moshi, mohon sitasi makalahnya
Ringkasan GN⁺
- Moshi adalah model suara-teks inovatif untuk percakapan real-time, dengan latensi rendah dan kualitas tinggi
- Codec Mimi lebih efisien daripada codec sebelumnya, dan memaksimalkan performa lewat Transformer
- Dapat digunakan di berbagai platform, dengan beberapa versi seperti PyTorch, MLX, dan Rust
- Sangat berguna bagi pengembang aplikasi percakapan real-time, terutama saat latensi rendah menjadi hal penting
- Proyek lain dengan fungsi serupa antara lain WaveNet dari Google dan Jukebox dari OpenAI
1 komentar
Komentar Hacker News
Komentar pertama
Komentar kedua
Komentar ketiga
Komentar keempat
Komentar kelima
Komentar keenam
Komentar ketujuh
Komentar kedelapan
Komentar kesembilan
Komentar kesepuluh