+++ News: Model NISQA baru -baru ini telah diperbarui ke NISQA V2.0. Versi baru ini menawarkan prediksi multidimensi dengan akurasi yang lebih tinggi dan memungkinkan untuk pelatihan dan finetuning model.
Prediksi kualitas bicara:
NISQA adalah model/kerangka pembelajaran yang mendalam untuk prediksi kualitas bicara. Bobot model NISQA dapat digunakan untuk memprediksi kualitas sampel bicara yang telah dikirim melalui sistem komunikasi (misalnya telepon atau panggilan video). Selain kualitas bicara secara keseluruhan, NISQA juga memberikan prediksi untuk dimensi kualitas, warna , pewarnaan , diskontinuitas , dan kenyaringan untuk memberikan lebih banyak wawasan tentang penyebab degradasi kualitas.
Prediksi kebembusan natural:
Bobot model NISQA-TTS dapat digunakan untuk memperkirakan kealamian pidato sintetis yang dihasilkan oleh konversi suara atau sistem teks-ke-pidato (Siri, Alexa, dll.).
Pelatihan/Finetuning:
NISQA dapat digunakan untuk melatih model prediksi kualitas bicara tunggal atau dua kali lipat dengan arsitektur pembelajaran mendalam yang berbeda, seperti CNN atau DFF-> diri sendiri atau LSTM-> pemecahan perhatian atau pemecahan maksimum. Bobot model yang disediakan juga dapat diterapkan untuk finetune model yang terlatih terhadap data baru atau untuk belajar transfer ke tugas regresi yang berbeda (misalnya estimasi kualitas ucapan yang ditingkatkan, estimasi kesamaan pembicara, atau pengenalan emosi).
Dataset Kualitas Bicara:
Kami menyediakan korpus besar lebih dari 14.000 sampel bicara dengan kualitas bicara subyektif dan label dimensi kualitas bicara.
Informasi lebih lanjut tentang struktur model pembelajaran yang mendalam, dataset pelatihan yang digunakan, dan opsi pelatihan, lihat kertas NISQA dan wiki.
Untuk menginstal persyaratan, instal anaconda dan kemudian gunakan:
conda env create -f env.yml
Ini akan menciptakan lingkungan baru dengan nama "NISQA". Aktifkan lingkungan ini untuk melanjutkan:
conda activate nisqa
Kami memberikan contoh untuk menggunakan NISQA untuk memprediksi kualitas sampel bicara, untuk melatih model kualitas bicara baru, dan untuk mengevaluasi kinerja model kualitas bicara yang terlatih.
Ada tiga bobot model yang berbeda yang tersedia, bobot yang sesuai harus dimuat tergantung pada domain:
| Model | Output prediksi | Domain | Nama file |
|---|---|---|---|
| NISQA (v2.0) | Kualitas keseluruhan, keributan, pewarnaan, diskontinuitas, kenyaringan | Pidato yang ditransmisikan | nisqa.tar |
| NISQA (V2.0) HANYA MOS | Kualitas keseluruhan saja (untuk pembelajaran finetuning/transfer) | Pidato yang ditransmisikan | nisqa_mos_only.tar |
| NISQA-TTS (V1.0) | Kealamian | Pidato yang disintesis | nisqa_tts.tar |
Ada tiga mode yang tersedia untuk memprediksi kualitas bicara melalui argumen baris perintah:
Penting: Pilih " nisqa.tar " untuk memprediksi kualitas sampel ucapan yang ditransmisikan dan " nisqa_tts.tar " untuk memprediksi kealamian sampel ucapan yang disintesis.
Untuk memprediksi kualitas penggunaan file .wav tunggal:
python run_predict.py --mode predict_file --pretrained_model weights/nisqa.tar --deg /path/to/wav/file.wav --output_dir /path/to/dir/with/results
Untuk memprediksi kualitas semua file .wav dalam penggunaan folder:
python run_predict.py --mode predict_dir --pretrained_model weights/nisqa.tar --data_dir /path/to/folder/with/wavs --num_workers 0 --bs 10 --output_dir /path/to/dir/with/results
Untuk memprediksi kualitas semua file .wav yang tercantum dalam tabel CSV Gunakan:
python run_predict.py --mode predict_csv --pretrained_model weights/nisqa.tar --csv_file files.csv --csv_deg column_name_of_filepaths --num_workers 0 --bs 10 --output_dir /path/to/dir/with/results
Hasilnya akan dicetak ke konsol dan disimpan ke file CSV di folder yang diberikan (opsional dengan - -output_dir). Untuk mempercepat prediksi, jumlah pekerja dan ukuran batch dari pytorch Dataloader dapat ditingkatkan (opsional dengan --wum_workers dan - -BS). Dalam hal file stereo --ms_channel dapat digunakan untuk memilih saluran audio.
Untuk menggunakan bobot model untuk memperbaiki model pada dataset baru, hanya file CSV dengan nama file dan label yang diperlukan. Konfigurasi pelatihan dikendalikan dari file YAML dan dapat dimulai sebagai berikut:
python run_train.py --yaml config/finetune_nisqa.yaml
Jika nisqa corpus digunakan, hanya dua argumen yang perlu diperbarui dalam file YAML dan Anda siap untuk pergi: data_dir ke folder NISQA_CORPUS yang diekstraksi dan output_dir , di mana hasilnya harus disimpan.
Jika Anda menggunakan dataset Anda sendiri atau ingin memuat model NISQA-TTS, beberapa pembaruan lain diperlukan.
File CSV Anda perlu berisi setidaknya tiga kolom dengan nama berikut
db dengan nama dataset individual untuk setiap filefilepath_deg FilePath ke file WAV yang terdegradasi, baik jalur absolut atau relatif terhadap data_dir (nama kolom CSV dapat diubah di YAML)mos dengan label target (nama kolom CSV dapat diubah di YAML) finetune_nisqa.yaml perlu diperbarui sebagai berikut:
data_dir ke folder utama, yang berisi file CSV dan datasetoutput_dir Path to output folder dengan bobot dan hasil model yang disimpanpretrained_model dari model pretrained, baik nisqa_mos_only.tar untuk pidato alami atau nisqa_tts.tar untuk pidato yang disintesiscsv_file dari CSV dengan filepath dan label targetcsv_deg CSV yang berisi FilePaths (misalnya filepath_deg )csv_mos_train dan csv_mos_val nama kolom CSV dari nilai target (misalnya mos )csv_db_train dan csv_db_val Nama dataset yang ingin Anda gunakan untuk pelatihan dan validasi. Nama dataset harus ada di kolom db .Lihat komentar di file konfigurasi YAML dan wiki (belum ditambahkan) untuk opsi pelatihan yang lebih canggih. Titik awal yang baik adalah menggunakan NISQA Corpus untuk memulai pelatihan dengan konfigurasi standar.
NISQA juga dapat digunakan sebagai kerangka kerja untuk melatih model kualitas bicara baru dengan arsitektur pembelajaran mendalam yang berbeda. Struktur model umum adalah sebagai berikut:
Model framewise dan waktu-dependensi dapat dilewati, misalnya untuk melatih model LSTM tanpa CNN yang menggunakan langkah terakhir untuk prediksi. Juga tahap ketergantungan waktu kedua dapat ditambahkan, misalnya untuk struktur perhatian LSTM-self. Struktur model dapat dengan mudah dikontrol melalui file konfigurasi YAML. Pelatihan dengan konfigurasi model NISQA standar dapat dimulai dengan NISQA Corpus sebagai berikut:
python run_train.py --yaml config/train_nisqa_cnn_sa_ap.yaml
Jika nisqa corpus digunakan, hanya data_dir yang perlu diperbarui ke folder NISQA_CORPUS yang belum di -zip dan output_dir dalam file YAML. Jika tidak, lihat bagian Finetuning sebelumnya untuk memperbarui file YAML jika dataset khusus diterapkan.
Dimungkinkan juga untuk melatih kombinasi jaringan saraf lainnya, misalnya, untuk melatih model dengan LSTM alih-alih perhatian diri, train_nisqa_cnn_lstm_avg.yaml contoh file konfigurasi disediakan.
Untuk melatih model endapan ganda untuk prediksi kualitas ucapan referensi penuh, file konfigurasi train_nisqa_double_ended.yaml dapat digunakan sebagai contoh. Lihat komentar di file YAML dan wiki (belum ditambahkan) untuk detail lebih lanjut tentang berbagai kemungkinan struktur model dan opsi pelatihan lanjutan.
Model terlatih dapat dievaluasi pada dataset tertentu sebagai berikut (juga dapat digunakan sebagai uji kesesuaian dari instalasi model):
python run_evaluate.py
Sebelum berjalan, opsi dan jalur di dalam skrip Python run_evaluate.py harus diperbarui. Jika nisqa corpus digunakan, hanya jalur data_dir dan output_dir yang perlu disesuaikan. Selain korelasi Pearson dan RMSE, juga RMSE setelah pemetaan polinomial orde pertama dihitung. Jika file CSV dengan label per-kondisi disediakan, skrip juga akan menghasilkan hasil per-kondisi dan RMSE*. Secara opsional, diagram korelasi dapat diplot. Script harus mengembalikan hasil yang sama seperti di koran NISQA ketika dijalankan di nisqa corpus.
NISQA Corpus mencakup lebih dari 14.000 sampel pidato dengan simulasi (misalnya codec, packet-loss, latar belakang) dan kondisi live (misalnya ponsel, zoom, skype, whatsapp).
Untuk tautan unduhan dan detail lebih lanjut tentang set data dan sampel pidato sumber yang digunakan lihat wiki NISQA Corpus.
Kode NISQA dilisensikan di bawah lisensi MIT.
Model bobot (nisqa.tar, nisqa_mos_only.tar, nisqa_tts.tar) disediakan di bawah lisensi Creative Commons Atribution-NonCommercial-Sharealike 4.0 International (CC BY-SA 4.0)
NISQA Corpus disediakan di bawah istilah asli dari sampel pidato dan kebisingan sumber yang digunakan. Informasi lebih lanjut dapat ditemukan di wiki NISQA Corpus.
Hak Cipta © 2021 Gabriel Mittag
www.qu.tu-berlin.de