3 poin oleh GN⁺ 2026-01-10 | 1 komentar | Bagikan ke WhatsApp
  • Sopro TTS adalah model text-to-speech ringan berbasis bahasa Inggris yang mendukung kloning suara zero-shot dan generasi streaming
  • Memiliki 169 juta parameter, dan di CPU dapat menghasilkan audio 30 detik dalam sekitar 7,5 detik dengan kecepatan 0,25 RTF
  • Hanya dengan audio referensi berdurasi 3–12 detik, model ini dapat menyalin suara pembicara, serta menggunakan arsitektur dilated conv bergaya WaveNet dan cross-attention ringan
  • Proyek berbiaya rendah yang dilatih dengan satu GPU L40S, dengan ruang peningkatan performa jika kualitas data ditingkatkan
  • Mendukung mode streaming dan non-streaming, serta CLI, Python API, dan demo web, sehingga sangat berguna untuk eksperimen dan integrasi oleh developer

Gambaran umum Sopro TTS

  • Sopro berarti ‘napas’ dalam bahasa Portugis, dan dikembangkan sebagai model TTS bahasa Inggris yang ringan
    • Menggabungkan dilated convolution dan cross-attention alih-alih Transformer
    • Berupa proyek individu yang dilatih dengan satu GPU L40S
  • Fitur utama
    • 169M parameter, dukungan streaming, kloning suara zero-shot
    • 0,25 RTF di CPU, menghasilkan audio 30 detik dalam 7,5 detik
    • Dapat melakukan kloning suara dari audio referensi berdurasi 3–12 detik

Instalasi dan menjalankan

  • Hanya menentukan versi dependensi minimum, sehingga bisa diinstal tanpa membuat environment terpisah
    • Contoh: versi torch==2.6.0 memberikan peningkatan performa sekitar 3x pada CPU M3
  • Cara instalasi
    • PyPI: pip install sopro
    • Repositori GitHub: setelah git clone, jalankan pip install -e .

Contoh penggunaan

  • Contoh menjalankan via CLI
    • Bisa menentukan teks, audio referensi, dan file output
    • Menyediakan parameter kontrol detail seperti --style_strength, --no_stop_head, --stop_threshold, --stop_patience
  • Contoh Python API
    • Memuat model dengan SoproTTS.from_pretrained("samuel-vitorino/sopro", device="cpu")
    • Mendukung non-streaming dan streaming
    • Dalam mode streaming, chunk audio yang dihasilkan bisa digabung secara berurutan

Demo streaming interaktif

  • Setelah instalasi, jalankan server lokal dengan perintah uvicorn demo.server:app
  • Atau bisa build dan jalankan dengan Docker
    • docker build -t sopro-demo .
    • docker run --rm -p 8000:8000 sopro-demo
  • Demo dapat diakses di browser melalui http://localhost:8000

Hal yang perlu diperhatikan dan keterbatasan

  • Ada kemungkinan konsistensi output kurang stabil, sehingga perlu penyesuaian parameter
  • Kualitas kloning suara sangat bergantung pada kualitas mikrofon dan kebisingan sekitar
  • Versi non-streaming memberikan kualitas audio yang lebih baik
  • Panjang generasi dibatasi sekitar 32 detik (400 frame), dan jika melebihi dapat muncul output halusinatif
  • Menggunakan torchaudio memerlukan ffmpeg, disarankan memakai soundfile
  • Data pelatihan berbentuk sudah ditokenisasi sebelumnya, sementara audio asli dibuang karena masalah ruang penyimpanan
  • Disebutkan ada rencana untuk merilis kode pelatihan dan memperluas dukungan multibahasa

Data pelatihan

  • Menggunakan dataset Emilia YODAS, LibriTTS-R, Mozilla Common Voice 22, MLS

Referensi dan teknologi dasar

  • Memanfaatkan riset dan basis kode seperti Mimi Codec (Kyutai), WaveNet, Attentive Stats Pooling, AudioLM, CSM

1 komentar

 
GN⁺ 2026-01-10
Komentar Hacker News
  • Proyek yang keren dan berguna
    Secara pribadi, saya pikir Chatterbox-TTS-Server adalah alternatif terbaik
    Memang lambat, tapi kualitas suaranya cukup tinggi

    • Saya lebih suka IndexTTS2
      Model ini sangat kuat karena mendukung kloning suara dan kontrol emosi manual lewat vektor emosi
      Ini sangat berguna dalam proyek orkestrasi model yang sedang saya kerjakan
      Model klasifikasi emosi eksternal mengendalikan persona LLM dan keluaran TTS secara bersamaan untuk menjaga konsistensi
      Probabilitas pencarian “memori” juga berubah sesuai keadaan emosi, dan hampir tidak ada TTS lain yang memungkinkan kontrol sehalus IndexTTS2
    • Namun kualitas keluaran Chatterbox-TTS jauh lebih unggul
      Berdasarkan video GitHub, keluaran Sopro TTS sangat buruk dan tidak layak dipakai dalam praktik
      Sebaliknya, Chatterbox menghasilkan hasil yang mengagumkan
      GPU saya RTX5090, dan runtime-nya sangat cepat, sekitar 2 detik untuk menghasilkan 1 detik audio
      Anda bisa melihat contoh pertama dan contoh kedua. Yang kedua adalah demo kloning suara YouTuber ArbitorIan
  • Keren sekali!
    Saya memakai Kokoro (82M) secara lokal, dan performanya cepat serta kualitas suaranya juga luar biasa

    • Adakah yang tahu stack asisten suara open source yang bagus?
      Saya menangani aktivasi suara dengan ricky0123/vad, lalu memakai Web Speech API untuk pengenalan cepat dan TTS komersial
      Sejauh ini saya belum menemukan opsi open source yang cukup cepat
    • Saya juga pernah mencoba Kokoro-JS yang berjalan di browser, tapi latensinya terlalu tinggi dan tidak mendukung bahasa yang saya inginkan, jadi agak mengecewakan
  • Saya penasaran apa arti “zero-shot

    • zero-shot adalah cara menjalankan model dengan satu prompt saja, atau dengan konteks tambahan dalam bentuk file
      few-shot berarti memberi beberapa contoh untuk mengarahkan model, sedangkan multi-shot berarti melalui beberapa kali prompt dan proses revisi
    • Dalam konteks ini, tampaknya artinya Anda bisa mendapatkan kloning yang bagus tanpa harus memberikan sampel suara lain
  • Rasanya seperti berhasil membuat kloning suara level Mission Impossible tanpa kompilasi panjang
    Saya juga membagikan video YouTube terkait dan puisi permainan bahasa

  • Saya mencobanya dalam bahasa Inggris dan cukup terkesan
    Untuk proyek beranggaran rendah, hasilnya mengejutkan dan sangat mudah digunakan

    • Tapi karena hanya untuk bahasa Inggris, saya tidak bisa mencoba bahasa lain
      Kalau ada versi bahasa Jerman, saya pasti ingin mencobanya
  • Hasilnya cukup mengesankan jika mempertimbangkan keterbatasannya
    Saya penasaran apakah ada rencana merilis versi yang lebih kuat, dengan artefak lebih sedikit namun kebutuhan komputasi lebih besar
    Saya biasanya memakai Chatterbox, tetapi kalau ini berkembang menjadi berkualitas tinggi, sepertinya bisa menjadi alternatif yang bagus

    • Ini adalah proyek sampingan saya
      Biaya komputasinya cukup mahal, tetapi jika respons komunitas bagus, saya berniat mengembangkannya lebih jauh
      Sebagai catatan, Chatterbox adalah model yang hebat sekaligus sumber inspirasi
  • Saya penasaran dengan arti “zero-shot”

    • Menurut saya, istilah *-shot seperti ini pada dasarnya adalah jargon industri yang nyaris tak bermakna
      Bahkan lebih sewenang-wenang daripada notasi Big O
    • Menurut definisi Wikipedia, zero-shot adalah pengaturan masalah di mana saat pengujian dilakukan prediksi terhadap sampel dari kelas yang belum pernah dilihat saat pelatihan
      Artinya, jika model mempelajari probabilitas bersyarat P(Audio|Voice) dan dapat melakukan sampling untuk kelas suara yang tidak terlihat selama pelatihan, maka itu termasuk zero-shot
      Memberikan audio referensi bukan berarti mengubah bobot model, melainkan memberikan konteks
  • Saya mendengarkan audionya dan terkejut karena kualitas suaranya sangat mengerikan
    Bahkan lebih buruk daripada suara komputer 15 tahun lalu, dan saya tidak paham kenapa orang-orang bilang ini bagus
    Saya sudah mengujinya di beberapa browser dan hasilnya sama

    • Beberapa suara referensi mungkin bisa menyebabkan penurunan kualitas
      Kalau separah itu, mungkin ada masalah lain, jadi saya ingin ikut melihatnya
    • Jika sampel ini adalah yang terbaik dalam demo, maka distorsi pengucapannya sangat parah sampai langsung terasa mengganggu
    • Sekilas saya kira itu suara RFK
    • Saya mencoba beberapa suara, tetapi audio yang dihasilkan sama sekali tidak mirip dan bahkan bukan suara yang layak
    • Saya juga sulit mempercayainya saat mendengarnya. Kualitas suaranya tidak enak didengar sampai saya sulit bertahan lebih dari 1 menit
  • Teknologi yang sangat keren
    Ke depannya sepertinya akan jadi lebih baik
    Namun setidaknya sebagai solusi sementara, akan bagus jika ditambahkan post-processing audio sederhana untuk mengurangi suara serak kasar (razziness)

  • Saya penasaran apakah ada model seperti ini yang bekerja dalam bentuk pengubah suara speech-to-speech
    Maksudnya, model menerima satu sampel suara tetap (prompt) dan aliran audio input real-time, lalu mengubah suara input menjadi nada dan timbre dari prompt
    Untuk kasus seperti V-tuber, prompt tidak perlu sering diganti, jadi mungkin saja menerapkan timbre tetap lewat satu kali fine-tuning

    • Chatterbox TTS mendukung ini dalam mode “voice cloning”
      Hanya saja, pemrosesan streaming harus diimplementasikan sendiri
      Model ini menerima audio A (gaya) dan B (konten), lalu menggabungkan timbre dari A dengan pengucapan dan intonasi dari B
      Model seperti ini sebenarnya lebih tepat disebut S+STS (speech+style to speech) daripada “TTS”
    • Saya tidak tahu yang open source, tetapi ElevenLabs sudah lama menerapkan ide ini
      Dijelaskan lebih detail di blog resminya
    • RVC (Retrieval Voice Conversion) juga merupakan pengubah suara open source yang bagus
      Namun karena ada konflik antara pembuat asli dan para pengembang, sebaiknya hindari fork utama dan cari fork terbaru yang dikelola dalam bahasa Inggris
    • Banyak V-tuber memang memakai teknologi seperti ini, jadi tampaknya pasti ada solusi yang stabil