- LLaMA-Omni adalah model suara-bahasa berbasis Llama-3.1-8B-Instruct yang menerima instruksi suara sebagai input dan menghasilkan respons teks serta suara secara bersamaan
- Tujuan utamanya adalah interaksi suara berlatensi rendah dan berkualitas tinggi; menurut README, latensi dapat turun hingga serendah 226 ms
- Model ini dilatih dalam kurang dari 3 hari hanya dengan 4 GPU, dan dijalankan menggunakan
Llama-3.1-8B-Omni,Whisper-large-v3, serta HiFi-GAN vocoder berbasis unit - Demo Gradio memiliki struktur yang menjalankan controller, web server, dan model worker secara terpisah; karena pemutaran audio streaming di Gradio tidak stabil, pemutaran otomatis tidak diaktifkan
- Kodenya berlisensi Apache-2.0, tetapi modelnya khusus untuk tujuan riset akademik; penggunaan komersial dilarang dan perlu menghubungi pihak terkait untuk lisensi komersial terpisah
Apa yang dilakukan LLaMA-Omni
- LLaMA-Omni adalah model suara-bahasa berbasis Llama-3.1-8B-Instruct
- Menerima instruksi suara sebagai input dan menghasilkan respons teks serta respons suara secara bersamaan
- Menargetkan interaksi suara berlatensi rendah dan respons berkualitas tinggi; berdasarkan sorotan di README, latensinya serendah 226 ms
- Makalah terkait tersedia di arXiv:2409.06666
Model dan dataset yang dirilis
- Model tersedia di Hugging Face, ModelScope, Wisemodel, dan Replicate
- Dataset dirilis sebagai Multiturn-Speech-Conversations
- Dalam pembaruan Mei 2025,
InstructS2S-200Kyang telah ditingkatkan dirilis, diperluas menjadi percakapan multi-turn, dan warna suara input juga dibuat lebih beragam
Pembaruan terbaru
- Pada Mei 2025, LLaMA-Omni 2 diterima di konferensi utama ACL 2025
- Pada April 2025, LLaMA-Omni2 dirilis
- Ini adalah seri model bahasa suara dengan parameter dari 0,5B hingga 32B
- Meningkatkan kualitas respons dan kualitas generasi suara
- Pada Januari 2025, LLaMA-Omni diterima di ICLR 2025
Alur instalasi dan eksekusi
- Instalasi dilakukan dengan mengkloning repositori lalu memasang paket di lingkungan conda Python 3.10
- Setelah memasang
pip==24.0, jalankanpip install -e .
- Setelah memasang
- Dependensi tambahan fairseq dan flash-attn harus dipasang
- Quick start membutuhkan tiga komponen persiapan
- Unduh model
Llama-3.1-8B-Omni - Unduh model
Whisper-large-v3 - Unduh HiFi-GAN vocoder berbasis unit dan
config.json
- Unduh model
Demo Gradio dan inferensi lokal
- Demo Gradio terdiri dari tiga proses
- controller:
omni_speech.serve.controller - Gradio web server:
omni_speech.serve.gradio_web_server - model worker:
omni_speech.serve.model_worker
- controller:
- Setelah demo dijalankan, Anda dapat berinteraksi dengan
LLaMA-3.1-8B-Omnidilocalhost:8000 - Karena pemutaran audio streaming di Gradio tidak stabil, hanya sintesis audio streaming yang diimplementasikan, dan pemutaran otomatis tidak diaktifkan
- Inferensi lokal dijalankan dengan menyusun file instruksi suara sesuai format
omni_speech/infer/examples, lalu menjalankanbash omni_speech/infer/run.sh omni_speech/infer/examples
Lisensi dan batasan penggunaan
- Kode dirilis dengan Apache-2.0 License
- Model hanya dapat digunakan untuk tujuan riset akademik, dan penggunaan komersial dilarang
- Dalam lingkungan akademik, penggunaan, modifikasi, dan distribusi diperbolehkan, tetapi makalah asli harus dikutip
- Untuk pertanyaan penggunaan komersial atau memperoleh lisensi komersial, hubungi
fengyang@ict.ac.cn
Proyek dasar dan sitasi
- Codebase didasarkan pada LLaVA
- Sebagian kode terkait encoder suara dan adapter suara dipinjam dari SLAM-LLM
- Jika bermanfaat untuk riset, makalah
LLaMA-Omni: Seamless Speech Interaction with Large Language Modelsharus dikutip - Pertanyaan dapat diajukan melalui GitHub issue atau ke
fangqingkai21b@ict.ac.cn
1 komentar
Pendapat di Hacker News
Apakah model ini juga bisa mengeluarkan suara yang tidak bisa direpresentasikan sebagai teks? Misalnya permintaan seperti “coba tirukan suara ayam”
Tapi apakah ia bisa melakukan keduanya: mengucapkan kata “kukuruyuk” dan benar-benar membuat suara berkokok/berketuk?
Saya belum begitu paham apa keunggulan atau potensi model seperti ini dibanding pendekatan yang menambahkan speech recognition/speech synthesis ke model teks murni
Jika modelnya makin canggih, apakah poin utamanya adalah mampu menafsirkan atau menghasilkan hal-hal seperti intonasi, ritme, dan emosi yang hilang dalam sintesis suara?
Model speech recognition bisa salah mengenali kata, tetapi audio LLM mungkin bisa memahami kata sebenarnya berkat konteks yang luas. Model speech synthesis harus menebak intonasi sehingga bisa benar-benar keliru, tetapi audio LLM dapat belajar secara alami nada seperti apa yang harus digunakan. Misalnya jika itu berupa interupsi, ia bisa memakai nada yang lebih tinggi
Untuk interupsi saja, sistem speech recognition/synthesis biasanya bergantung pada voice activity detection dan heuristik untuk memutuskan kapan berbicara, sehingga banyak aturannya baru berbicara setelah pengguna berhenti bicara. Audio LLM bisa belajar percakapan alami, cara tidak mengambil terlalu banyak jatah waktu bicara, dan cara berbicara bersama beberapa orang
Audio LLM juga bisa membuat musik atau suara, atau memberi tahu lagu apa yang sedang disenandungkan. Ada banyak kemungkinan baru
Namun alasan saya mengatakan “bisa belajar” adalah karena dibutuhkan data pelatihan yang baik. Sejauh yang saya tahu, sebagian besar model seperti ini saat ini dilatih dengan mengubah dataset teks umum menjadi speech synthesis, jadi pada dasarnya tidak lebih baik dari sistem speech recognition/synthesis biasa. Itu bagus untuk membuktikan arsitekturnya, tetapi tidak menunjukkan seluruh kemampuannya
Kemampuan berbicara cepat atau lambat saja sudah merupakan hal yang tidak bisa dilakukan sistem speech synthesis tradisional. Secara teori, ia juga bisa memberi tahu apakah pelafalan saya tepat, mengulang pelafalan saya yang salah, lalu memperdengarkan pelafalan yang benar untuk mengoreksinya
Saya belum melihat pengujian yang benar-benar memadai tentang seberapa baik advanced voice mode OpenAI melakukan hal ini, jadi belum tahu, tetapi saya ingin mencobanya sendiri. Kalau model suara lain juga mencapai level ini, sepertinya akan luar biasa sebagai alat belajar bahasa
Salah satu faktor besarnya adalah latensi yang muncul karena batching. Sulit untuk memotong agen dengan benar, sehingga percakapan nyata jadi terasa lebih canggung. Dan benar, multimodal lebih memahami. Namun saya belum pernah melihat analisis tentang pengenalan emosi; saya penasaran apakah ada yang pernah melihat analisis tentang kemampuan GPT-O ini
Selain itu, mungkin ada keunggulan sampingan seperti latensi jawaban yang lebih baik, diarization pembicara yang lebih baik, dan respons yang lebih baik terhadap jeda dalam percakapan
Bahkan kalau ditulis “Really?” atau “Really!”, masih ada ruang interpretasi. Agar antarmuka suara benar-benar berhasil, diperlukan momen seperti ketika pencarian sebelum Google yang kacau berubah dengan hadirnya Google; jika inti momen itu adalah menafsirkan dan menghasilkan intonasi, ritme, dan emosi, maka membuat model seperti ini cukup masuk akal
Apakah ada alat menjalankan model seperti Ollama, LM Studio, atau llama.cpp yang mendukung ini?
Jadi ini bukan arsitektur speech recognition → LLM → speech synthesis? Kalau saya berteriak dengan suara Chewbacca sebagai input, apakah model akan mengenalinya sebagai input yang tidak masuk akal, atau akan menafsirkannya sebagai kata-kata sembarang seperti speech recognition yang buruk?
Rasanya ini bekerja lebih baik terutama pada bahasa tonal
Suara speech synthesis di klip demo terdengar sangat mirip dengan Ellen McLain, yaitu pengisi suara Valve
https://en.m.wikipedia.org/wiki/Ellen_McLain
Kecepatannya terlihat cukup bagus. Baru-baru ini saya mencoba chat suara lokal dengan LMStudio + AnythingLLM, tetapi masih sedikit lebih lambat dari yang saya inginkan, dan suara PiperTTS lebih baik daripada ini
Tidak buruk untuk pelatihan 3 hari. Kualitas output suara masih perlu dipoles lagi, tetapi menarik melihat apa yang akan berubah jika pelatihannya ditambah
Saya berharap ada kode pelatihan atau fine-tuning. Untuk penggunaan komersial, fine-tuning suara tampaknya menjadi kebutuhan utama
Apakah hanya saya yang merasa kepercayaan jadi jauh berkurang kalau README repositori GitHub mencantumkan grafik tren bintang yang bodoh itu?
Apakah ada demo yang menunjukkan performanya?