1 puan yazan GN⁺ 2024-09-20 | 1 yorum | WhatsApp'ta paylaş

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

 
GN⁺ 2024-09-20
Hacker News görüşleri
  • Birinci görüş

    • Gecikme çok düşük; açık kaynak bir model için büyük bir başarı
    • Son dönemdeki çok başarılı LLM’lere kıyasla yanıt kalitesi daha düşük
    • 2019’daki LLM’leri hatırlatıyor
    • Ses tarafında yeterince iyi iş çıkarmışlar, ancak yanıt kalitesine daha fazla odaklanmaları gerekiyor
  • İkinci görüş

    • YouTube’da birkaç ay öncesine ait eğlenceli bir demo buldum
    • Şimdiye kadar kesinlikle iyileşmiştir
  • Üçüncü görüş

    • Gerçek zamanlı ses -> LLM -> ses çıktısı çözümü geliştiriyorum
    • Streaming neural audio codec en ilginç kısım
    • Ürün açısından, doğrudan LLM’e bağlamaktansa bir araç/işlev çağrısı aşaması gerekiyor
    • tincans geliştirmesi sona ermiş olsa da, bu yönde ilerleme potansiyeli büyük
  • Dördüncü görüş

    • Moshi, CC-BY lisansı ile sunuluyor
    • Yakın zamanda Apache v2 ile yayımlanan benzer bir 7b model de var
  • Beşinci görüş

    • iPad’deki a-shell terminalinde TTS arayüzü sunmanın pratik bir yolu olup olmadığını merak ediyorum
  • Altıncı görüş

    • Son dönemde ses destekli LM alanında çok ilerleme oldu
    • İlgili projeler arasında LLaMA-Omni ve mini-omni var
  • Yedinci görüş

    • Inference sunucusu Rust ile yazılmış ve huggingface’in Candle crate’ini kullanıyor
    • Moshi yazarlarından biri Candle’ın ana yazarlarından biri
    • Candle tabanlı bir inference stack kuruyorum
  • Sekizinci görüş

    • Denediğimde anında yanıt veriyor, ancak asıl soruya cevabı daha sonra veriyor
    • Bazen döngüye girebiliyor
  • Dokuzuncu görüş

    • Gecikme yaklaşık 200ms ile çok düşük
    • 7B transformer model kullandığı için çok akıllı sayılmaz
    • Daha büyük model kullanılırsa gecikme artabilir
    • Sistem mimarisinde ara aşama yanıtları verecek bir yönteme ihtiyaç var
  • Onuncu görüş

    • Yanıt hızı etkileyici, ancak yanıtların kalitesi öyle değil
    • Moshi ile yapılmış bir konuşma örneği sunuyor
    • "2019" şeklinde yanlış bir yanıt veriyor
    • COVID-19 hakkında yanlış bilgi veriyor