5 poin oleh GN⁺ 2024-01-02 | 1 komentar | Bagikan ke WhatsApp
  • Menargetkan masalah Zero-shot TTS yang bekerja dengan mengkloning warna suara pembicara hanya dari audio referensi singkat dan membuatnya berbicara dalam berbagai bahasa, tanpa pelatihan tambahan per pembicara
  • Intinya adalah arsitektur yang memisahkan kloning warna suara dari kontrol bahasa dan gaya; base speaker TTS membuat emosi, aksen, ritme, jeda, dan intonasi, lalu tone color converter menerapkan warna suara pembicara referensi
  • Memungkinkan kloning zero-shot cross-lingual bahkan tanpa data pelatihan multi-pembicara berskala besar untuk bahasa baru; pelatihan menggunakan 30 ribu kalimat untuk base TTS dan 20 ribu orang/300 ribu sampel audio untuk converter
  • Implementasi keseluruhan memakai struktur feed-forward tanpa komponen autoregresif atau difusi; versi yang dioptimalkan mencapai performa 12× real-time pada satu GPU A10G dan membutuhkan 85 ms untuk menghasilkan audio 1 detik
  • Kode sumber dan bobot model telah dirilis; OpenVoice disediakan sebagai mesin suara MyShell.ai kepada lebih dari 2 juta orang di seluruh dunia, dan versi internalnya digunakan puluhan juta kali dari Mei hingga Oktober 2023

Masalah kloning suara instan yang ditargetkan OpenVoice

  • Kloning suara instan (IVC) adalah TTS yang mengkloning suara pembicara tertentu hanya dari audio referensi singkat, dan juga disebut Zero-shot TTS karena bekerja tanpa pelatihan tambahan per pembicara
  • Kegunaannya luas, mulai dari produksi konten media, chatbot yang dipersonalisasi, hingga interaksi multimodal antara manusia dan komputer atau model bahasa besar
  • Pendekatan yang ada masing-masing memiliki batasan dalam hal kecepatan, kontrol, dan skalabilitas bahasa
    • Pendekatan autoregresif seperti VALLE dan XTTS mengkloning warna suara dengan mengondisikan pada acoustic token atau speaker embedding dari suara referensi, tetapi sulit memanipulasi gaya seperti emosi, aksen, ritme, jeda, dan intonasi secara fleksibel
    • Pendekatan non-autoregresif seperti YourTTS dan Voicebox memiliki kecepatan inferensi tinggi, tetapi tidak dapat mengontrol parameter gaya selain warna suara secara fleksibel
    • Kloning suara cross-lingual yang ada biasanya membutuhkan dataset MSML yang mencakup banyak pembicara untuk tiap bahasa, sehingga sulit menambahkan bahasa baru
  • OpenVoice menangani tiga tujuan sekaligus
    • Mengkloning warna suara pembicara referensi sambil mengontrol emosi, aksen, ritme, jeda, dan intonasi secara terpisah
    • Melakukan kloning cross-lingual bahkan ketika bahasa pembicara referensi atau bahasa yang dihasilkan tidak ada dalam data pelatihan MSML
    • Menyediakan inferensi real-time yang cepat tanpa penurunan kualitas dalam lingkungan komersial berskala besar

Arsitektur yang memisahkan warna suara dan gaya

  • Gagasan inti OpenVoice adalah tidak membuat satu model besar mempelajari warna suara, bahasa, dan gaya sekaligus, melainkan membaginya menjadi subtugas yang lebih mudah
  • base speaker TTS model menangani bahasa dan gaya
    • Dapat menggunakan model TTS satu pembicara atau multi-pembicara
    • VITS dapat dimodifikasi agar memasukkan style/language embedding ke text encoder dan duration predictor
    • InstructTTS dapat menerima prompt gaya
    • Model komersial seperti Microsoft TTS juga dapat digunakan untuk menentukan emosi, jeda, dan cara artikulasi lewat SSML
    • Manusia juga dapat langsung membacakan teks dengan gaya dan bahasa yang diinginkan untuk membuat base voice
    • Dalam implementasi terbuka, VITS digunakan secara default
  • tone color converter mengubah suara base speaker menjadi warna suara pembicara referensi
    • Encoder adalah 1D convolutional neural network yang menerima short-time Fourier transformed spectrum dari suara base speaker sebagai input
    • Tone color extractor adalah 2D convolutional neural network yang mengekstrak satu vektor berisi informasi warna suara dari mel-spectrogram
    • Normalizing flow membuat representasi yang mempertahankan bahasa dan gaya sambil menghapus informasi warna suara dari suara base
    • Representasi ini disejajarkan pada sumbu waktu dengan feature berbasis IPA
    • Inverse flow memasukkan vektor warna suara pembicara referensi sebagai kondisi untuk menerapkan warna suara baru pada feature map
    • HiFi-GAN menghasilkan raw waveform akhir
  • Model keseluruhan dalam implementasi terbuka bekerja secara feed-forward tanpa komponen autoregresif
  • Metode ekstraksi unit berbasis HuBERT memiliki masalah karena menghapus bukan hanya informasi warna suara, tetapi juga emosi dan aksen
  • Metode lain yang membangun information bottleneck untuk mempertahankan hanya isi ujaran tidak dapat sepenuhnya menghapus warna suara
  • Kebaruan OpenVoice terletak pada framework yang memisahkan kontrol gaya/bahasa dari kloning warna suara, bukan pada penemuan submodule individual

Data pelatihan dan tujuan pelatihan

  • Pelatihan base speaker TTS menggunakan data dari 4 pembicara
    • 1 pembicara bahasa Inggris Amerika, 1 pembicara bahasa Inggris Britania, 1 pembicara bahasa Mandarin, dan 1 pembicara bahasa Jepang
    • Total 30 ribu kalimat, dengan panjang kalimat rata-rata 7 detik
    • Data bahasa Inggris dan Mandarin memiliki label klasifikasi emosi
  • VITS yang dimodifikasi memasukkan emotion categorical embedding, language categorical embedding, dan speaker id ke text encoder, duration predictor, dan flow layer
  • Base model yang telah dilatih dapat mengubah aksen dan bahasa dengan mengganti base speaker, serta membaca teks input dengan emosi berbeda
  • Dalam eksperimen data pelatihan tambahan, ritme, jeda, dan intonasi juga dapat dipelajari dengan cara yang sama seperti emosi
  • Pelatihan tone color converter menggunakan 300 ribu sampel audio dari 20 ribu orang
    • Sekitar 180 ribu sampel bahasa Inggris
    • Sekitar 60 ribu sampel bahasa Mandarin
    • Sekitar 60 ribu sampel bahasa Jepang
    • Dataset ini disebut dataset MSML
  • Tujuan pelatihan converter ada dua
    • Menggunakan mel-spectrogram loss dan HiFi-GAN loss agar encoder-decoder menghasilkan suara yang natural
    • Melatih flow layer agar menghapus informasi warna suara semaksimal mungkin dari audio feature
  • Pelatihan penghapusan warna suara mengubah teks menjadi urutan IPA phoneme, lalu membuat text content feature dengan learnable embedding dan transformer encoder, menyejajarkannya dengan audio feature menggunakan dynamic time warping, dan meminimalkan KL-divergence
  • Flow layer dirancang agar tidak menghapus informasi selain warna suara dengan tidak memberinya informasi gaya atau bahasa sebagai kondisi
  • Karena flow layer memiliki struktur invertible, ketika proses inverse dijalankan dengan informasi warna suara baru sebagai kondisi, warna suara pembicara referensi dapat dimasukkan kembali ke konten dan gaya yang sama

Hasil eksperimen dan batasan yang diamati

  • Evaluasi kloning suara sulit dibandingkan secara objektif dalam bentuk angka karena tiap studi berbeda dalam training set, test set, dan kondisi evaluasi Mean Opinion Score
  • Evaluasi OpenVoice berfokus pada analisis kinerja kualitatif internal dan penyediaan sampel audio publik, bukan perbandingan angka dengan metode yang ada
  • Test set kloning warna suara mencakup pembicara referensi dari selebritas, karakter gim, dan individu anonim
    • Mencakup suara unik yang sangat ekspresif bersama sampel yang netral dalam distribusi suara manusia
    • Mengkloning warna suara referensi dan menghasilkan suara dalam berbagai bahasa dan aksen pada kombinasi 4 base speaker dan beberapa pembicara referensi
  • Evaluasi kontrol gaya membuat korpus 1 ribu sampel dengan berbagai gaya menggunakan base speaker model dan Microsoft TTS SSML, lalu mengubahnya ke warna suara referensi
    • Emosi, aksen, ritme, jeda, dan intonasi terjaga dengan baik
    • Dalam kasus yang jarang, emosi sedikit menjadi netral
    • Masalah ini berkurang jika tone color embedding vector untuk kalimat tertentu diganti dengan vektor rata-rata yang diperoleh dari beberapa kalimat beremosi berbeda oleh base speaker yang sama
  • Kloning cross-lingual bekerja secara near zero-shot untuk bahasa yang tidak ada dalam dataset MSML
    • Warna suara pembicara referensi dapat dikloning meski bahasa pembicara referensi tidak ada dalam dataset MSML
    • Meski bahasa yang akan dihasilkan tidak ada dalam dataset MSML, jika base speaker TTS mendukung bahasa tersebut, ia dapat berbicara dalam bahasa itu dengan warna suara referensi
    • Namun, base speaker untuk bahasa tersebut tetap diperlukan
  • Dalam eksperimen kecepatan, OpenVoice yang dioptimalkan mencapai performa 12× real-time pada satu GPU A10G, termasuk base speaker model dan tone converter
    • Dibutuhkan 85 ms untuk menghasilkan audio 1 detik
    • Berdasarkan analisis penggunaan GPU, batas atas diperkirakan sekitar 40× real-time, tetapi peningkatan ini dibiarkan sebagai pekerjaan mendatang
  • Penggunaan IPA penting untuk konversi warna suara cross-lingual
    • IPA adalah kamus fonem terpadu lintas bahasa, sehingga memungkinkan flow layer membuat representasi yang netral terhadap bahasa
    • Dalam eksperimen dengan kamus fonem lain, muncul kecenderungan salah mengucapkan sebagian fonem dari bahasa yang tidak ada dalam pelatihan
    • Meski audio input akurat, kemungkinan audio output bermasalah atau terdengar seperti bukan penutur asli menjadi lebih besar

Materi publik dan status penggunaan

  • OpenVoice merilis kode sumber dan model terlatih untuk reproduksi riset dan penelitian lanjutan
  • Hasil kualitatif dapat dilihat di OpenVoice demo
  • Demo terperinci dibagi ke dalam kategori berikut
  • Sebelum dirilis, versi internalnya digunakan puluhan juta kali oleh pengguna di seluruh dunia dari Mei hingga Oktober 2023
  • MyShell.ai menggunakan OpenVoice sebagai backend kloning suara instan, dan platform tersebut mengalami peningkatan pengguna ratusan kali lipat
  • Saat ini OpenVoice disediakan sebagai mesin suara MyShell.ai kepada lebih dari 2 juta orang di seluruh dunia

1 komentar

 
GN⁺ 2024-01-02
Komentar Hacker News
  • Bagus karena penulis membuatnya mudah langsung dicoba, tetapi untuk penggunaan kloning suara umum hasilnya kurang cocok
    Saya menyuruhnya membaca paragraf pertama Wikipedia tentang sebuah buku lalu menghasilkan kalimat berikutnya, dan di telinga saya suaranya jelas terdengar seperti buatan komputer
    Sampel audio: https://storage.googleapis.com/dalle-party/sample.mp3
    Suara hasil kloning (dikonversi ke mp3): https://storage.googleapis.com/dalle-party/output_en_default...
    Saya hanya menginstal paket dengan pip, memasukkan sampel audio, lalu menjalankan demo_part1.ipynb, dan di laptop 3070 Ti / 8GB prosesnya selesai hampir seketika

    • Di README juga tertulis bahwa ini adalah implementasi open-source yang mendekati performa teknologi kloning suara internal mereka, dan versi online myshell.ai lebih baik dalam kualitas audio, kemiripan hasil kloning, kealamian ucapan, dan efisiensi komputasi
    • Terima kasih untuk contoh nyatanya; di telinga saya juga terdengar cukup seperti suara hasil generasi
      Saya penasaran seberapa jauh kualitasnya akan membaik jika diberi lebih banyak data suara asli
    • Dari situs web dan contohnya, tampaknya cukup jelas bahwa ini disusun untuk membuat suara animasi yang bergaya
    • Dari pengalaman memakai alat lain seperti xtts, untuk mendapatkan hasil terbaik memang benar-benar dibutuhkan sampel suara kelas studio
  • Saya penasaran apakah ini, atau Eleven Labs, bisa dipakai untuk membuat model suara yang dapat dipasang ke TTS di ponsel Android
    Saya punya teman yang kelumpuhan laring, jadi dia sering berkomunikasi dengan mengetik di ponsel atau laptop kecil
    Akan sangat bagus jika kami bisa mengambil suaranya dari rekaman lama dan mengembalikan sedikit suara “miliknya”

    • Bisa melihat solusi seperti Acapela [0], SpeakUnique [1], dan VOCALiD [2]
      Tapi saya tidak yakin apakah ada solusi untuk Android
      Saya baru-baru ini melihat video tentang suara kustom yang dibuat Google untuk pasien ALS, tetapi tidak bisa menemukannya lagi secara online
      Di Android, pembuatan suara kustom belum tersedia, tetapi iOS 17 terbaru mendukung pembuatan suara personal
      ModelTalker [3] tampaknya merupakan proyek riset jangka panjang untuk pembuatan suara kustom bagi orang dengan gangguan bicara, dan karena TTS-nya tampak mendukung Android, itu bisa menjadi pilihan lain
      [0] https://www.acapela-group.com/
      [1] https://www.speakunique.co.uk/
      [2] https://vocalid.ai/
      [3] https://www.modeltalker.org/
    • Sayangnya untuk saat ini belum bisa
      Saya pernah berkontribusi ke TTS di Google dan juga sempat mengerjakan sisi Android; di iOS fitur ini sudah tertanam
      Tidak ada manajer produk Google yang lebih kuat daripada “sesuatu yang baru saja dirilis Apple”, jadi ini justru bisa menjadi tanda yang memberi harapan
      Sekarang saya sedang mengerjakan inferensi on-device lintas platform; Anda bisa melihat FONNX di GitHub, dan ini salah satu dari 100 hal yang akan terus terlintas di pikiran saya, jadi kalau nanti ada waktu saya akan menghubungi
      Edit: apakah aplikasi Android dengan keyboard dan tombol “speak” yang memanggil API Eleven Labs sudah cukup layak untuk dicoba?
  • GitHub: https://github.com/myshell-ai/OpenVoice
    Checkpoint: hxxps://myshell-public-repo-hosting.s3.amazonaws.com/checkpoints_1226.zip
    Saya menonaktifkan tautan checkpoint karena saya kurang nyaman dengan tautan yang langsung menuju file zip yang di-host di Amazon
    Saya juga belum meninjau apa isi file tersebut

  • Saya suka makalah ini
    Rasanya seperti berkata, “inilah yang kami lakukan, dan kami ingin membantu orang lain juga bisa melakukannya”
    Khususnya bagian “Remark on Novelty” sangat bagus; di sana dijelaskan bahwa kontribusi OpenVoice bukanlah menemukan submodul baru dalam arsitektur model, melainkan kerangka kerja yang memisahkan kontrol gaya suara dan bahasa dari kloning timbre
    Mereka tidak berusaha melebih-lebihkan kontribusinya sendiri

  • Contoh: https://research.myshell.ai/open-voice
    Terlihat cukup mengesankan

  • Lisensinya adalah Creative Commons Attribution-NonCommercial 4.0 International License, jadi penggunaan komersial dilarang, dan tertulis bahwa MyShell dapat mendeteksi apakah audio dihasilkan oleh OpenVoice, baik dengan watermark maupun tanpa watermark
    Kalau begitu ini bukan “open”, dan orang juga tidak bisa menghasilkan uang darinya, bukan?

    • Itu tetap open, hanya definisinya berbeda dari definisi Anda
      Karena Anda bisa melihat kodenya, memakainya, dan memodifikasinya sesuka hati, menurut saya ini cukup terbuka
    • Tidak bisa menghasilkan uang
      Tentu saja penipu yang tidak peduli dengan lisensi nonkomersial tetap bisa
  • Meski tidak terlalu dipromosikan, dan saya juga tidak tahu apakah Apple masih terus mengembangkannya, iOS punya fitur kloning suara bernama Personal Voice
    Perlu sekitar 15 menit untuk melatihnya dengan suara sendiri, lalu butuh beberapa jam untuk diproses secara on-device saat perangkat terkunci
    Bisa dipakai untuk panggilan telepon dan FaceTime, dan saya tidak tahu apakah bisa juga dipakai di tempat lain
    Akan bagus kalau bisa dipakai juga untuk TTS biasa

    • Ini adalah fitur aksesibilitas untuk orang-orang yang sedang kehilangan suara atau berisiko kehilangannya
      Karena ada penyebutan bahwa ini bisa dipakai di telepon atau FaceTime, kesannya terdengar seperti konversi suara-ke-suara, tetapi sebenarnya ini hanya untuk TTS
      Karena bukan konversi suara-ke-suara, ini tidak bisa mempertahankan sinyal yang membuatnya terasa seperti suara asli, seperti karakteristik gagap atau prosodi
  • Beberapa hari lalu saya menelepon salah satu bank ritel besar di Inggris, dan mereka masih saja menyarankan saya mendaftar ke program bodoh “suara saya adalah kata sandi saya
    Di tahap perkembangan AI seperti sekarang, ini terasa seperti kecerobohan belaka

    • Fidelity Investments melakukan hal yang lebih buruk sekitar seminggu lalu
      Mereka meminta saya menjawab beberapa pertanyaan, lalu memberi tahu bahwa saya baru saja didaftarkan ke program identifikasi suara
      Sekarang membatalkannya jadi satu lagi hal yang masuk daftar tugas
      Rasanya seperti semua perusahaan mempromosikan orang-orang paling bodoh ke posisi manajerial
    • Investec, ya? Sepertinya saya juga perlu menelepon dan menonaktifkannya
  • Pikiran pertama saya adalah bahwa penggunaan tidak bermoral dan kriminal untuk kloning suara akan jauh lebih banyak daripada penggunaan yang sah, dan sekarang pun sudah begitu

    • Hal pertama yang terlintas adalah anonimitas
      Anda bisa membuat video YouTube tanpa memakai suara asli, tetapi tetap mempertahankan intonasi dan penekanan personal yang tidak bisa dilakukan suara TTS AI
      Atau ini bisa dipakai dalam pengembangan game indie
      Dengan belajar dasar-dasar akting suara untuk mengurangi kekakuan, Anda bisa memerankan semua karakter sendiri dengan berbagai suara
    • Saya penasaran penggunaan sah seperti apa dan seberapa banyak yang sudah dipertimbangkan
    • Bagaimana jika penggunaan komersial nantinya menjadi lebih banyak daripada penggunaan ilegal?
      YouTube akan memungkinkan orang mendengar bahasa yang dilokalkan dengan suara pembuat aslinya
    • Saya tidak setuju
      Kita seharusnya tidak menerima suara sebagai sarana autentikasi
      Penggunaan paling umum kemungkinan akan menjadi pembuatan seni dan konten secara terprogram tanpa pengisi suara
      Begitu pipeline video atau model 3D dan transformasi per frame sudah cukup matang untuk membuatnya tampak realistis, kemungkinan besar aktor pun hampir tidak lagi dibutuhkan
    • Cukup bicarakan lebih dulu dengan orang-orang terdekat, lalu tetapkan kata sandi rahasia untuk dipakai dalam situasi seperti terjebak dalam keadaan darurat dan perlu ditransfer uang
      Beberapa bank memakai autentikasi suara saat menelepon, dan Anda harus meminta secara langsung untuk keluar darinya