Moshi: Gerçek Zamanlı Konuşmalar için Ses-Metin Tabanlı Model
Moshi'ye giriş
- Moshi, gerçek zamanlı konuşmalar için ses-metin tabanlı bir model ve çift yönlü sesli konuşma çerçevesidir
- Son teknoloji bir akışlı sinirsel ses codec'i olan Mimi'yi kullanır
- Mimi, 24 kHz sesi 12.5 Hz'e dönüştürür; bant genişliğini 1.1 kbps seviyesinde tutarken 80 ms gecikmeyle akışlı olarak işler
- Mevcut akışsız codec'ler olan SpeechTokenizer (50Hz, 4kbps) ve SemantiCodec'e (50Hz, 1.3kbps) göre daha iyi performans gösterir
Moshi nasıl çalışır
- Moshi iki ses akışını modeller: biri Moshi, diğeri kullanıcı içindir
- Çıkarım sırasında kullanıcının akışı ses girişinden alınır, Moshi'nin akışı ise model çıktısından örneklenir
- Bu iki ses akışıyla birlikte Moshi, kendi konuşmasına karşılık gelen metin token'larını tahmin eder
- Küçük bir Depth Transformer, verilen zaman adımında codebook'lar arasındaki bağımlılıkları modeller; büyük 7B parametreli Temporal Transformer ise zamansal bağımlılıkları modeller
- Moshi teorik olarak 160 ms gecikmeye ulaşır; pratikte ise L4 GPU üzerinde 200 ms'nin altında gecikmeye sahiptir
Mimi'nin özellikleri
- Mimi, SoundStream ve EnCodec gibi önceki sinirsel ses codec'lerini temel alır ve encoder ile decoder'a Transformer ekler
- Mimi, stride'ı metin token'larının ortalama kare hızıyla (~3-4 Hz) daha uyumlu olacak şekilde ayarlar
- Mimi, ilk codebook token'ını WavLM'nin self-supervised gösterimiyle hizalayan bir distillation loss kullanır
- Mimi, yalnızca adversarial training loss ve feature matching kullanmasına rağmen düşük bitrate'te öznel kalite açısından büyük iyileşme gösterir
Depo yapısı
- Bu depoda Moshi çıkarım yığınının üç sürümü bulunur
- PyTorch kullanan Python sürümü
moshi/ dizinindedir
- M serisi Mac'ler için MLX kullanan Python sürümü
moshi_mlx/ dizinindedir
- Prodüksiyonda kullanılan Rust sürümü
rust/ dizinindedir
- Canlı demo kodu
client/ dizininde sağlanır
Modeller
- Üç model yayınlanmıştır
- Ses codec'i Mimi
- Erkek sentetik sesi için fine-tune edilmiş Moshi (Moshiko)
- Kadın sentetik sesi için fine-tune edilmiş Moshi (Moshika)
- Her model HuggingFace deposunda sunulur
- Tüm modeller CC-BY 4.0 lisansı altında yayınlanmıştır
Gereksinimler
- En az Python 3.10 gereklidir, Python 3.12 önerilir
- Belirli gereksinimler için ilgili backend dizinlerine bakın
- PyTorch ve MLX istemcisi için kurulum komutları sağlanır
Python (PyTorch)
- PyTorch tabanlı API
moshi dizininde bulunur
- Akışlı ses tokenizer'ı (mimi) ve dil modeli (moshi) sağlar
- Etkileşimli modda çalıştırmak için sunucuyu başlatmak gerekir
Python (MLX) for macOS
moshi_mlx kurulduktan sonra yerel çıkarım çalıştırılabilir
- Komut satırı arayüzü temeldir ve echo cancellation özelliği yoktur
Rust
- Rust çıkarım sunucusunu çalıştırmak için
rust dizininde komutlar kullanılır
- macOS'ta
--features cuda yerine --features metal kullanılabilir
İstemci
- Web UI kullanılması önerilir; ek echo cancellation özellikleri sunar
- Komut satırı arayüzü de sağlanır
Geliştirme
- Depoyu clone ederek kurulum yapabilir ve geliştirme yapabilirsiniz
SSS
- Issue açmadan önce sık sorulan sorular bölümünü kontrol edin
Lisans
- Python bölümü MIT lisanslıdır, Rust backend ise Apache lisanslıdır
- Web istemcisi kodu MIT lisanslıdır
- Model ağırlıkları CC-BY 4.0 lisanslıdır
Atıf
- Mimi veya Moshi kullanıyorsanız makaleyi alıntılayın
GN⁺ özeti
- Moshi, gerçek zamanlı konuşmalar için düşük gecikme ve yüksek kalite sunan yenilikçi bir ses-metin modelidir
- Mimi codec'i, mevcut codec'lere göre daha verimlidir ve Transformer ile performansı en üst düzeye çıkarır
- Farklı platformlarda kullanılabilir; PyTorch, MLX ve Rust gibi çeşitli sürümler sunar
- Gerçek zamanlı konuşma uygulamaları geliştirenler için çok kullanışlıdır; özellikle düşük gecikmenin kritik olduğu durumlarda uygundur
- Benzer işlevlere sahip diğer projeler arasında Google'ın WaveNet'i ve OpenAI'nin Jukebox'ı bulunur
1 yorum
Hacker News görüşleri
Birinci görüş
İkinci görüş
Üçüncü görüş
Dördüncü görüş
Beşinci görüş
Altıncı görüş
Yedinci görüş
Sekizinci görüş
Dokuzuncu görüş
Onuncu görüş