Tortoise adalah program teks-ke-unggun yang dibangun dengan prioritas berikut:
Repo ini berisi semua kode yang diperlukan untuk menjalankan TTS kura -kura dalam mode inferensi.
Colab adalah cara termudah untuk mencobanya. Saya telah menyusun buku catatan yang dapat Anda gunakan di sini: https://colab.research.google.com/drive/1wvvqpqwidbuvewwounglpghu3hg_cbr?usp=sharing
Jika Anda ingin menggunakan ini di komputer Anda sendiri, Anda harus memiliki GPU NVIDIA.
Pertama, instal pytorch menggunakan instruksi ini: https://pytorch.org/get-started/locally/. Di Windows, saya sangat merekomendasikan menggunakan jalur instalasi Conda. Saya telah diberitahu bahwa jika Anda tidak melakukan ini, Anda akan menghabiskan banyak waktu mengejar masalah ketergantungan.
Selanjutnya, pasang kura -kura dan ketergantungannya:
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
python setup.py install Jika Anda menggunakan Windows, Anda juga perlu menginstal PysoundFile: conda install -c conda-forge pysoundfile
Script ini memungkinkan Anda untuk berbicara satu frasa dengan satu atau lebih suara.
python tortoise/do_tts.py --text " I'm going to speak this " --voice random --preset fastSkrip ini menyediakan alat untuk membaca teks dalam jumlah besar.
python tortoise/read.py --textfile < your text to be read > --voice randomIni akan memecah TextFile menjadi kalimat, dan kemudian mengubahnya menjadi berbicara satu per satu. Ini akan menghasilkan serangkaian klip yang diucapkan saat dihasilkan. Setelah semua klip dihasilkan, itu akan menggabungkannya menjadi satu file dan output itu juga.
Terkadang kura -kura mengacaukan output. Anda dapat menghasilkan kembali klip buruk apa pun dengan menjalankan ulang read.py dengan argumen-regenerate.
Kura -kura dapat digunakan secara terprogram, seperti itu:
reference_clips = [ utils . audio . load_audio ( p , 22050 ) for p in clips_paths ]
tts = api . TextToSpeech ()
pcm_audio = tts . tts_with_preset ( "your text here" , voice_samples = reference_clips , preset = 'fast' )Kura-kura secara khusus dilatih untuk menjadi model multi-speaker. Ini mencapai hal ini dengan berkonsultasi dengan klip referensi.
Klip referensi ini adalah rekaman pembicara yang Anda berikan untuk memandu pembuatan bicara. Klip ini digunakan untuk menentukan banyak sifat output, seperti nada dan nada suara, kecepatan berbicara, dan bahkan cacat berbicara seperti lisp atau gagap. Klip referensi juga digunakan untuk menentukan aspek terkait non-suara dari output audio seperti volume, latar belakang noise, kualitas perekaman dan reverb.
Saya telah menyertakan fitur yang secara acak menghasilkan suara. Suara -suara ini tidak benar -benar ada dan akan acak setiap kali Anda menjalankannya. Hasilnya cukup menarik dan saya sarankan Anda bermain -main dengannya!
Anda dapat menggunakan suara acak dengan meneruskan 'acak' sebagai nama suara. Kura -kura akan mengurus sisanya.
Untuk yang ada di ruang ML: ini dibuat dengan memproyeksikan vektor acak ke ruang laten pengkondisian suara.
Repo ini dilengkapi dengan beberapa suara yang sudah dikemas sebelumnya. Suara -suara yang diapit dengan "Train_" berasal dari set pelatihan dan berkinerja jauh lebih baik daripada yang lain. Jika tujuan Anda adalah pidato berkualitas tinggi, saya sarankan Anda memilih salah satunya. Jika Anda ingin melihat apa yang dapat dilakukan kura-kura untuk meniru zero-shot, lihat yang lain.
Untuk menambahkan suara baru ke kura -kura, Anda harus melakukan hal berikut:
Seperti disebutkan di atas, klip referensi Anda memiliki dampak mendalam pada output kura -kura. Berikut ini adalah beberapa tips untuk memilih klip yang bagus:
Kura -kura terutama merupakan model decoder autoregresif yang dikombinasikan dengan model difusi. Keduanya memiliki banyak tombol yang dapat diubah yang telah saya abstrak demi kemudahan penggunaan. Saya melakukan ini dengan menghasilkan ribuan klip menggunakan berbagai permutasi pengaturan dan menggunakan metrik untuk realisme suara dan kejelasan untuk mengukur efeknya. Saya telah menetapkan default ke pengaturan keseluruhan terbaik yang dapat saya temukan. Untuk kasus penggunaan khusus, mungkin efektif untuk bermain dengan pengaturan ini (dan sangat mungkin saya melewatkan sesuatu!)
Pengaturan ini tidak tersedia dalam skrip normal yang dikemas dengan kura -kura. Namun, mereka tersedia di API. Lihat api.tts untuk daftar lengkap.
Beberapa orang telah menemukan bahwa dimungkinkan untuk melakukan rekayasa cepat dengan kura -kura! Misalnya, Anda dapat membangkitkan emosi dengan memasukkan hal -hal seperti "Saya benar -benar sedih," sebelum teks Anda. Saya telah membangun sistem redaksi otomatis yang dapat Anda gunakan untuk memanfaatkan ini. Ia bekerja dengan mencoba mereduksi teks apa pun di prompt yang dikelilingi oleh tanda kurung. Misalnya, prompt "[Saya sangat sedih,] tolong beri saya makan." hanya akan mengucapkan kata -kata "tolong beri saya makan" (dengan nada suara yang menyedihkan).
Kura -kura menelan klip referensi dengan memberi makan mereka secara individual melalui submodel kecil yang menghasilkan titik laten, kemudian mengambil rata -rata dari semua laten yang diproduksi. Eksperimen yang saya lakukan telah mengindikasikan bahwa laten titik ini cukup ekspresif, mempengaruhi segala sesuatu dari nada hingga tingkat berbicara hingga kelainan bicara.
Ini cocok untuk beberapa trik yang rapi. Misalnya, Anda dapat menggabungkan feed dua suara yang berbeda untuk kura -kura dan itu akan menghasilkan apa yang menurutnya "rata -rata" dari kedua suara itu terdengar seperti.
Gunakan skrip get_conditioning_latents.py untuk mengekstrak laten pengkondisian untuk suara yang telah Anda instal. Script ini akan membuang laten ke file acar .pth. File akan berisi tuple tunggal, (autoregressive_latent, difusion_latent).
Atau, gunakan API.TextTospeech.get_conditioning_latents () untuk mengambil laten.
Setelah Anda bermain dengan mereka, Anda dapat menggunakannya untuk menghasilkan pidato dengan membuat subdirektori dalam suara/ dengan satu file ".pth" yang berisi laten pengkondisian acar sebagai tuple (autoregressive_latent, difusion_latent).
Karena kekhawatiran bahwa model ini mungkin disalahgunakan, saya telah membangun classifier yang menceritakan kemungkinan bahwa klip audio berasal dari kura -kura.
Klasifikasi ini dapat dijalankan di komputer mana pun, penggunaan adalah sebagai berikut:
python tortoise/is_this_from_tortoise.py --clip=<path_to_suspicious_audio_file>
Model ini memiliki akurasi 100% pada isi hasil/ dan suara/ folder dalam repo ini. Tetap saja, perlakukan classifier ini sebagai "sinyal kuat". Pengklasifikasi dapat dibodohi dan juga bukan tidak mungkin bagi classifier ini untuk menunjukkan positif palsu.
TTS kura -kura terinspirasi oleh Dalle Openai, diterapkan pada data ucapan dan menggunakan dekoder yang lebih baik. Ini terdiri dari 5 model terpisah yang bekerja bersama: https://nonint.com/2022/04/25/tortoise-architectural-design-doc/