Summertts digunakan untuk memperingati musim panas yang akan datang dan lewat tahun 2023
menjelaskan
- Summertts adalah program sintesis wicara (TTS) yang dikompilasi secara independen. Ini dapat dijalankan secara lokal tanpa perlu jaringan, dan tidak ada ketergantungan tambahan. Kompilasi satu klik dapat digunakan untuk sintesis pidato Cina dan Inggris.
- Perpustakaan komputasi yang mendasari Summertts menggunakan Eigen, yang merupakan serangkaian fungsi yang ditentukan template. Dalam kebanyakan kasus, ia hanya perlu memasukkan file header, sehingga proyek ini tidak memiliki dependensi lain dan dapat dikompilasi dan dijalankan secara mandiri di lingkungan C ++.
- Proyek ini menggunakan perpustakaan matriks yang disediakan oleh Eigen untuk mengimplementasikan operator jaringan saraf, dan tidak perlu mengandalkan lingkungan operasi NN lainnya seperti Pytorch, TensorFlow, NCNN, dll.
- Proyek ini dikompilasi dan dijalankan di Ubuntu. Platform seperti Linux lainnya seperti Android, Raspberry Pi, dll. Seharusnya tidak memiliki masalah besar. Mereka belum diuji pada jendela dan mungkin memerlukan sedikit perubahan.
- Model proyek ini didasarkan pada vits algoritma sintesis wicara, dan berdasarkan pada rekayasa C ++ dilakukan di atasnya
- Proyek ini berlaku untuk lisensi MIT. Pengembangan, pengguna atau organisasi berdasarkan proyek ini, silakan ikuti lisensi MIT: https://mit-license.org
Perbarui log
- 2024-12-14: Tambahkan informasi lisensi ke lisensi MIT: https://mit-license.org
- 2023-06-16: Diperbarui untuk menambahkan model sintesis suara bahasa Inggris yang lebih cepat: single_speaker_english_fast.bin, atau pada disk jaringan berikut, kecepatannya lebih cepat, dan kualitas suara yang disintesis tidak berkurang secara signifikan:
Tautan: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h Kode ekstraksi: 2d5h - 2023-06-15: Dukung sintesis pengucapan bahasa Inggris murni, dan Anda perlu menyinkronkan kode terbaru. Gunakan file model di disk jaringan berikut: single_speaker_english.bin, dan mensintesis pengucapan bahasa Inggris dengan cara berikut:
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
Jalur disk jaringan adalah sebagai berikut. Sintesis dan penggunaan pengucapan Cina sebelumnya tidak terpengaruh. Perlu dicatat bahwa pembaruan ini hanya mendukung sintesis pengucapan bahasa Inggris murni, dan bahasa Inggris campuran Cina tidak mendukungnya untuk saat ini.
Tautan: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h Kode ekstraksi: 2d5h - 2023-06-09: Model speaker berukuran sedang telah ditambahkan: single_speaker_mid.bin, yang sedikit lebih lambat dari model sebelumnya, tetapi kualitas suara yang disintesis tampaknya lebih baik (saya tidak peka terhadap telinga saya, dan saya merasa lebih baik, mungkin itu adalah efek psikologis: P). Kode tidak perlu diperbarui, saya hanya perlu mengunduh single_speaker_mid.bin di disk jaringan sebelumnya dan menggunakannya.
- 2023-06-08: Modifikasi tes/main.cpp untuk mendukung sintesis Newline dan seluruh teks
- 2023-06-03: Fix memiliki kesalahan dalam versi kemarin. Terima kasih kepada Netizen Telen yang antusias karena memberikan tes dan petunjuk. Hanya pembaruan kode yang diperlukan, dan model tidak perlu diperbarui.
- 2023-06-02: Keakuratan sintesis pengucapan polifonik telah sangat ditingkatkan. Model baru diperlukan di Baidu Netdisk untuk menggunakan pengucapan polifonik yang ditingkatkan dan regularisasi teks (normalisasi teks). Kode yang diperbarui hari ini tidak dapat menggunakan model sebelumnya, jika tidak, itu dapat menyebabkan kerusakan
- 2023-05-30: WetextProcessing terintegrasi sebagai modul regularisasi teks front-end, sangat meningkatkan sintesis pengucapan angka, mata uang, suhu, tanggal, dll.
- 2023-5-23: Penggunaan algoritma baru telah sangat meningkatkan kecepatan sintesis suara dari speaker tunggal.
- 2023-4-21: Penciptaan Awal
Petunjuk Penggunaan
Mengkloning kode proyek ini secara lokal, lebih disukai lingkungan Linux Ubuntu
Unduh model dari alamat disk jaringan baidu berikut dan masukkan ke dalam direktori model proyek ini: tautan: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h kode ekstraksi: 2d5h
Setelah file model ditempatkan, struktur direktori model adalah sebagai berikut:
model/
├── multi_speakers.bin
├── single_speaker_mid.bin
├── single_speaker_english.bin
├── single_speaker_english_fast.bin
└── single_speaker_fast.bin
Masukkan Direktori Bangun dan jalankan perintah berikut:
cmake ..
Membuat
Setelah kompilasi selesai, pelaksana TTS_TEST akan dihasilkan di direktori build.
Jalankan perintah berikut untuk menguji sintesis ucapan Cina (TTS):
./tts_test ../test.txt ../models/single_speaker_fast.bin out.wav
Jalankan perintah berikut untuk menguji sintesis ucapan bahasa Inggris (TTS):
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
Di baris perintah ini:
Parameter pertama adalah jalur ke file teks, yang berisi teks yang perlu disintesis untuk ucapan.
Parameter kedua adalah jalur ke model yang disebutkan di atas. Tunggal dan multi di awal nama file menunjukkan apakah model berisi satu speaker atau beberapa speaker. Model speaker tunggal yang disarankan: single_speaker_fast.bin, kecepatan sintesis lebih cepat dan kualitas suara sintesis juga OK. Parameter ketiga adalah file audio yang disintesis. Setelah program dijalankan, itu dapat dibuka dengan pemain.
Program pengujian di atas diimplementasikan dalam tes/main.cpp, dan antarmuka yang disintesis spesifik didefinisikan dalam include/synthesizertrn.h, sebagai berikut:
int16_t * infer (const string & line, int32_t sid, float lengthscale, int32_t & datalen)
Antarmuka:
Parameter pertama adalah string pidato yang akan disintesis.
Parameter kedua menentukan bahwa ID pembicara digunakan untuk mensintesis pidato. Parameter ini valid untuk model multi-speaker dan ditetapkan ke 0 untuk model speaker tunggal. Jumlah speaker dapat dikembalikan dengan antarmuka int32_t getspeakernum (), dan ID yang valid adalah 0 dan jumlah speaker yang dikembalikan ke antarmuka dikurangi dengan 1.
Panjang parameter ketiga mewakili kecepatan bicara dari pidato sintetis, dan semakin besar nilainya menunjukkan kecepatan bicara lebih lambat.
Teks yang akan disintesis dapat berisi angka dan tanda baca Arab, tetapi karena modul teks regularisasi (TN) dari proyek ini masih sangat kasar, itu akan diabaikan untuk karakter bahasa Inggris. Juga karena modul teks regularisasi (TN) masih sangat kasar, pengucapan karakter polifonik dalam konteks yang berbeda kadang -kadang tidak akurat.
Pengembangan tindak lanjut
- Pelatihan model dan skrip konversi akan dibuka nanti
- Di masa depan, kami akan mencoba melatih dan memberikan model kualitas suara yang lebih baik
Hubungi penulis
- Jika Anda memiliki pertanyaan lebih lanjut atau membutuhkannya, Anda dapat mengirim email ke [email protected] atau menambahkan WeChat: HWANG_2011. Saya akan mencoba yang terbaik untuk membalas.
Lisensi
- Proyek ini berlaku untuk lisensi MIT. Pengembangan, pengguna atau organisasi berdasarkan proyek ini, silakan ikuti lisensi MIT: https://mit-license.org
bersyukur
Proyek ini menggunakan skema berikut dalam hal kode sumber dan algoritma. Terima kasih di sini. Jika ada masalah hukum yang mungkin timbul, silakan hubungi saya tepat waktu untuk mengoordinasikan dan menyelesaikannya.
- Eigen
- Vits (https://github.com/jaywalnut310/vits)
- vits_chinese (https://github.com/uehqzxi/vits_chinese)
- Mb-istft-vits (https://github.com/masayakawamura/mb-istft-vits)
- Wetextprocessing (https://github.com/wenet-e2e/wetextprocessing)
- Glog (https://github.com/google/glog)
- GFLAGS (https://github.com/gflags/gflags)
- OpenFST (https://github.com/kkm000/openfst)
- Karakter Cina ke Pinyin (https://github.com/yangyangwithgnu/hanz2piny)
- CPPJIEBA (https://github.com/yanyiwu/cppjieba)
- g2p_en (https://github.com/kyubyong/g2p)
- English-to-ipa (https://github.com/mphilli/english-to-ipa)
- Model pembicara tunggal Cina dari proyek ini didasarkan pada pelatihan dataset Biaobei open source, model multi-speaker didasarkan pada pelatihan dataset open source Aishell3, dan model pembicara tunggal bahasa Inggris didasarkan pada dataset pidato LJ.