3 puan yazan GN⁺ 2026-01-10 | 1 yorum | WhatsApp'ta paylaş
  • Sopro TTS, zero-shot ses klonlama ve streaming üretimi destekleyen, İngilizce odaklı hafif bir metinden konuşmaya dönüştürme modeli
  • 169 milyon parametreye sahip ve CPU'da 0.25 RTF hızında 30 saniyelik sesi yaklaşık 7.5 saniyede üretiyor
  • Yalnızca 3~12 saniyelik referans ses ile konuşmacının sesini klonlayabiliyor; WaveNet tarzı dilated conv ve hafif cross-attention mimarisi kullanıyor
  • Tek bir L40S GPU ile eğitilmiş düşük bütçeli bir proje; veri kalitesi iyileştirilirse performansın daha da artma payı var
  • Streaming ve non-streaming modları, CLI, Python API ve web demosunu desteklediği için geliştirici deneyleri ve entegrasyon açısından kullanışlı

Sopro TTS'ye genel bakış

  • Sopro, Portekizcede “nefes” anlamına geliyor ve hafif bir İngilizce TTS modeli olarak geliştirildi
    • Transformer yerine dilated convolution ve cross-attention birleşimini kullanan bir mimari
    • Tek bir L40S GPU ile eğitilmiş kişisel bir proje
  • Başlıca özellikler
    • 169M parametre, streaming desteği, zero-shot ses klonlama
    • CPU üzerinde 0.25 RTF ile 30 saniyelik sesi 7.5 saniyede üretme
    • 3~12 saniyelik referans ses ile ses klonlama

Kurulum ve çalıştırma

  • Yalnızca minimum bağımlılık sürümleri belirtildiği için ayrı bir ortam oluşturmadan kurulabiliyor
    • Örnek: torch==2.6.0 sürümü M3 CPU'da yaklaşık 3 kat performans artışı sağlıyor
  • Kurulum yöntemleri
    • PyPI: pip install sopro
    • GitHub deposu: git clone sonrası pip install -e .

Kullanım örnekleri

  • CLI çalıştırma örneği
    • Metin, referans ses ve çıktı dosyası belirtilebiliyor
    • --style_strength, --no_stop_head, --stop_threshold, --stop_patience gibi ayrıntılı kontrol parametreleri sunuluyor
  • Python API örneği
    • SoproTTS.from_pretrained("samuel-vitorino/sopro", device="cpu") ile model yükleniyor
    • Hem non-streaming hem de streaming yöntemleri destekleniyor
    • Streaming modunda üretilen ses parçaları sıralı biçimde birleştirilebiliyor

Etkileşimli streaming demosu

  • Kurulumdan sonra uvicorn demo.server:app komutuyla yerel sunucu çalıştırılabiliyor
  • Alternatif olarak Docker ile build edilip çalıştırılabiliyor
    • docker build -t sopro-demo .
    • docker run --rm -p 8000:8000 sopro-demo
  • Tarayıcıda http://localhost:8000 adresine giderek demo görülebiliyor

Dikkat edilmesi gerekenler ve sınırlamalar

  • Çıktı tutarlılığı zayıf olabilir ve parametre ayarı gerekebilir
  • Ses klonlama kalitesi, mikrofon kalitesine ve ortam gürültüsüne büyük ölçüde bağlı
  • Non-streaming sürüm daha yüksek ses kalitesi sunuyor
  • Üretim uzunluğu yaklaşık 32 saniye (400 frame) ile sınırlı; bunun aşılması halinde halüsinatif çıktılar oluşabiliyor
  • torchaudio kullanılırsa ffmpeg gerekiyor; soundfile öneriliyor
  • Eğitim verisi önceden tokenize edilmiş biçimde tutuluyor; ham sesler depolama alanı sorunları nedeniyle silinmiş
  • İleride eğitim kodunun paylaşılması ve çok dilli desteğin genişletilmesi planlanıyor

Eğitim verisi

  • Emilia YODAS, LibriTTS-R, Mozilla Common Voice 22, MLS veri setleri kullanıldı

Referanslar ve temel teknolojiler

  • Mimi Codec (Kyutai), WaveNet, Attentive Stats Pooling, AudioLM, CSM gibi araştırmalar ve kod tabanlarından yararlanıldı

1 yorum

 
GN⁺ 2026-01-10
Hacker News yorumları
  • Harika ve kullanışlı bir proje
    Kişisel olarak Chatterbox-TTS-Server'ın en iyi alternatif olduğunu düşünüyorum
    Hızı yavaş ama ses kalitesi oldukça yüksek

    • Ben IndexTTS2'yi tercih ediyorum
      Bu model ses klonlama ve duygu vektörleri üzerinden manuel duygu kontrolü sunduğu için çok güçlü bir araç gibi geliyor
      Şu anda yürüttüğüm model orkestrasyonu projesinde özellikle faydalı oldu
      Harici bir duygu sınıflandırma modeli, tutarlılığı korumak için LLM'in personasını ve TTS çıktısını aynı anda kontrol ediyor
      Duygu durumuna göre 'hafıza' arama olasılığı da değişiyor; IndexTTS2 kadar ince ayar kontrolü sunabilen TTS neredeyse yok
    • Ancak Chatterbox-TTS'nin çıktı kalitesi çok daha üstün
      Sopro TTS'nin çıktısı GitHub videosuna göre ciddi derecede kötü ve gerçek kullanım için uygun değil
      Buna karşılık Chatterbox şaşırtıcı sonuçlar veriyor
      GPU'm RTX5090 ve 1 saniyelik üretim için yaklaşık 2 saniyelik çalışma süresiyle oldukça hızlı
      Birinci örneğe ve ikinci örneğe bakabilirsiniz. İkincisi, YouTuber ArbitorIan'ın sesinin klonlandığı bir demo
  • Gerçekten harika!
    Ben yerelde Kokoro (82M) kullanıyorum; hem hızlı çalışıyor hem de ses kalitesi mükemmel

    • İyi bir açık kaynak sesli asistan yığını bilen var mı?
      Ben ses etkinliğini ricky0123/vad ile işliyorum, hızlı tanıma için Web Speech API kullanıp ardından ticari bir TTS kullanıyorum
      Açık kaynak tarafında hâlâ yeterince hızlı bir şey bulamadım
    • Tarayıcıda çalışan Kokoro-JS'yi de denedim ama gecikme süresi çok yüksekti ve istediğim dili desteklemiyordu, bu yüzden hayal kırıklığı yarattı
  • "zero-shot"ın ne anlama geldiğini merak etmiştim

    • zero-shot, modeli tek bir istemle (veya dosya biçiminde ek bağlamla) çalıştırma yaklaşımıdır
      few-shot, modele yön vermek için birkaç örnek sunmaktır; multi-shot ise birden çok istem ve düzeltme sürecinden geçmektir
    • Bu durumda, başka ses örnekleri vermeden de iyi bir klon elde edilebildiği anlamına geliyor gibi görünüyor
  • Uzun bir derleme süreci olmadan Mission Impossible seviyesinde ses klonlama yapılmış gibi hissettiriyor
    Bununla ilgili YouTube videosunu ve kelime oyunlu şiiri de paylaşıyorum

  • İngilizce olarak test ettim ve oldukça etkileyiciydi
    düşük bütçeli bir proje için şaşırtıcı sonuçlar verdi ve kullanımı da çok kolaydı

    • Ama yalnızca İngilizce olduğu için diğer dilleri deneyemedim
      Bir Almanca sürümü olsaydı kesinlikle denemek isterdim
  • Kısıtlar düşünülünce sonuçlar oldukça etkileyici
    Daha güçlü bir sürüm (daha az artifact üreten ve daha fazla hesaplama gerektiren) yayınlama planı var mı merak ediyorum
    Genelde Chatterbox kullanıyorum ama bu yüksek kaliteye ulaşırsa iyi bir alternatif olabilir

    • Bu benim yan projem
      Hesaplama maliyeti oldukça yüksek ama topluluk tepkisi iyi olursa daha da geliştirmeyi düşünüyorum
      Bu arada Chatterbox harika bir model ve ilham kaynağı
  • "zero-shot"ın anlamını merak etmiştim

    • Bu tür *-shot terimlerinin aslında anlamsız sektör jargonu olduğunu düşünüyorum
      Big O gösteriminden bile daha keyfi
    • Wikipedia tanımına göre zero-shot, eğitim sırasında görülmemiş sınıfların örneklerini test sırasında tahmin etmeye yönelik problem kurulumudur
      Yani model P(Audio|Voice) koşullu olasılığını öğreniyor ve eğitim sırasında görmediği ses sınıfları için örnekleme yapabiliyorsa bu zero-shot'tur
      Referans ses vermek, model ağırlıklarını değiştirmek değil, bağlam sağlamak anlamına gelir
  • Sesi dinledim ve ses kalitesi o kadar korkunçtu ki şaşırdım
    15 yıl önceki bilgisayar seslerinden bile kötü; insanların neden bunu iyi bulduğunu anlamıyorum
    Birden fazla tarayıcıda test ettim ama sonuç aynıydı

    • Bazı referans sesler kalite düşüşüne yol açabiliyor
      Bu kadar kötüyse başka bir sorun da olabilir, birlikte bakmak isterim
    • Eğer bu örnek demolardaki en iyi sonuçsa, telaffuz bozulması o kadar şiddetliydi ki anında itici geldi
    • Bir an RFK'nin sesi sandım
    • Birden fazla sesi denedim ama üretilen sesler hiç benzemiyordu ve düzgün bir ses de değildi
    • Ben de dinlerken inanmakta zorlandım. 1 dakikadan uzun süre dinlemek zor olacak kadar rahatsız edici bir ses kalitesi vardı
  • Gerçekten harika bir teknoloji
    İleride daha da iyi olacağını düşünüyorum
    Yine de geçici bir önlem olarak bile pürüzlü ses tonunu (razziness) azaltacak basit bir ses son işleme adımı eklenirse iyi olur

  • Bu modellerden herhangi birinin speech-to-speech ses dönüştürücü gibi çalışıp çalışmadığını merak ediyorum
    Yani tek bir sabit ses örneğini (istem) ve gerçek zamanlı giriş ses akışını alıp, giriş sesini istemdeki ton ve tınıya dönüştüren bir yapıdan söz ediyorum
    V-tuber gibi kullanımda istemi sık sık değiştirmek gerekmeyeceği için, tek seferlik bir fine-tuning ile sabit bir tını yerleştirmek de mümkün olabilir

    • Chatterbox TTS bunu "voice cloning" modunda destekliyor
      Ancak akış işleme kısmını kendiniz uygulamanız gerekiyor
      Ses A'yı (stil) ve B'yi (içerik) alıp, A'nın tınısını B'nin telaffuz ve tonlamasıyla birleştiriyor
      Böyle modelleri aslında "TTS"den çok S+STS (speech+style to speech) olarak görmek daha doğru
    • Açık kaynak tarafını bilmiyorum ama ElevenLabs bu fikri uzun zamandır uyguluyor
      Resmî bloglarında ayrıntılı olarak açıklanıyor
    • RVC (Retrieval Voice Conversion) de iyi bir açık kaynak ses dönüştürücü
      Ancak asıl üretici ile geliştiriciler arasında anlaşmazlık olduğu için ana fork'tan kaçınıp İngilizce yönetilen güncel bir fork bulmak daha iyi olur
    • Gerçekte birçok V-tuber bu tür teknolojileri kullandığı için, istikrarlı çözümlerin kesinlikle var olduğunu düşünüyorum