Implementasi Resmi TSELM: Ekstraksi Pembicara Target menggunakan Token Diskrit dan Model Bahasa.
Untuk merujuk ke kelas model, periksa langsung exp/tselm/model.py. Perhatikan bahwa audio campuran dipotong ke panjang 48080 (3,05sx 16khz) dan pidato referensi dipotong ke 64080 (4,05sx 16khz) untuk pelatihan.
Kami mengusulkan TSELM, jaringan ekstraksi pembicara target baru yang memanfaatkan token terpisah dan model bahasa. TSELM menggunakan beberapa lapisan terpisah dari WavLM sebagai token masukan dan menggabungkan mekanisme perhatian silang untuk mengintegrasikan informasi pembicara target. Model bahasa digunakan untuk menangkap ketergantungan urutan, sementara HiFi-GAN yang dapat diskalakan digunakan untuk merekonstruksi audio dari token. Dengan menerapkan kerugian lintas entropi, TSELM memodelkan distribusi probabilitas token keluaran, sehingga mengubah masalah regresi kompleks pembuatan audio menjadi tugas klasifikasi. Hasil percobaan menunjukkan bahwa TSELM mencapai hasil yang sangat baik dalam kualitas ucapan dan hasil yang sebanding dalam kejelasan ucapan.
requirements.txt
Sebelum menjalankan eksperimen, kita perlu mengunduh model beku yang telah dilatih sebelumnya berikut.
Nama | Link | Hasil |
---|---|---|
WavLM Besar | https://huggingface.co/microsoft/wavlm-large/tree/main | wavlm-besar |
Kmeans | Unduh Pos Pemeriksaan Kmeans | kmeans_ckpt |
HiFiGAN yang Dapat Diskalakan | Unduh Pos Pemeriksaan HiFiGAN | hifigan-wavlm-l1-3-7-18-23-k1000-LibriTTS |
Perhatikan bahwa untuk keluaran WavLM Besar, disarankan untuk mengkloning seluruh repositori atau mengunduh seluruh direktori. Untuk Kmeans dan Scalable HiFiGAN, kita perlu mengekstraknya setelah mendownload.
Konfigurasi pelatihan ditentukan menggunakan paket hyperpyyaml
, yang pada dasarnya merupakan refleksi.
Konfigurasi untuk pelatihan TSELM-L
dapat ditemukan di config/tselm_l.yaml. Sebelum pelatihan, Anda perlu menentukan konfigurasi untuk model pra-pelatihan yang dibekukan dan detail pelatihan lainnya. Detailnya dapat ditemukan di config/tselm_l.yaml dan config/README.md.
Setelah konfigurasi, Anda dapat menjalankannya
# # Train the model using the config
python train.py --config_path ./config/tselm_l.yaml --log ./log --ckpt_path ./ckpt/tselm_l
--config_path
menentukan jalur ke file konfigurasi.--log
menentukan direktori keluaran log. Semua log akan ditempatkan di sini.--ckpt_path
menentukan direktori pos pemeriksaan. Pelatihan dapat dilanjutkan menggunakan jalur pos pemeriksaan yang sama. Setelah pelatihan, model terbaik akan berada di
.
Untuk menyimpulkan model kami di libri2mix testset, misalnya, Anda dapat menjalankannya
# # Generate output audio on libri2mix testset
python inference.py -scp < path_to_libri2mix_test_scp_folder >
-config ./config/tselm_l.yaml
-ckpt < path_to_ckpt >
--output < path_to_output_folder >
-gpus cuda:0 cuda:1 cuda:2 cuda:3
-proc 8
-scp
menentukan jalur ke folder testset libri2mix yang berisi aux_s1.scp
, s1.scp
, dan mix_clean.scp
.-config
menentukan konfigurasi. Konfigurasi ini harus memiliki bidang model
.-ckpt
menentukan pos pemeriksaan model.--output
menentukan direktori keluaran. Audio keluaran akan dikeluarkan ke folder ini. Namanya akan sama dengan nama di file .scp.-gpus
menentukan GPU yang tersedia untuk menjalankan inferensi.-proc
menentukan jumlah total proses untuk menjalankan inferensi secara paralel. Ini akan menggunakan GPU yang disediakan dan membagi proses secara merata di setiap perangkat. Data akan dibagi rata untuk setiap proses. Pos pemeriksaan TSELM-L kami dapat diunduh di sini.
Anda dapat menyimpulkan pada testset libri2mix dengan mengganti -ckpt
dengan jalur ke pos pemeriksaan.
Perhatikan bahwa Anda masih perlu mengunduh model terlatih dan menambahkan folder pos pemeriksaan yang sesuai ke config/tselm_l.yaml.