+++ News: รุ่น NISQA เพิ่งได้รับการอัปเดตเป็น NISQA v2.0 เวอร์ชันใหม่นำเสนอการทำนายหลายมิติที่มีความแม่นยำสูงขึ้นและช่วยให้การฝึกอบรมและการปรับรุ่น
การทำนายคุณภาพการพูด:
Nisqa เป็นรูปแบบ/กรอบการเรียนรู้อย่างลึกซึ้งสำหรับการทำนายคุณภาพการพูด น้ำหนักโมเดล NISQA สามารถใช้ในการทำนายคุณภาพของตัวอย่างคำพูดที่ถูกส่งผ่านระบบการสื่อสาร (เช่นโทรศัพท์หรือโทรวิดีโอ) นอกเหนือจากคุณภาพการพูดโดยรวม NISQA ยังให้การคาดการณ์สำหรับมิติคุณภาพเสียง ที่ มีเสียงดังสี ความไม่ต่อเนื่อง และ ความดัง เพื่อให้ข้อมูลเชิงลึกมากขึ้นเกี่ยวกับสาเหตุของการย่อยสลายคุณภาพ
การทำนายความเป็นธรรมชาติ TTS:
น้ำหนักโมเดล NISQA-TTS สามารถใช้ในการประเมิน ความเป็นธรรมชาติ ของคำพูดสังเคราะห์ที่เกิดจากการแปลงเสียงหรือระบบข้อความเป็นคำพูด (Siri, Alexa ฯลฯ )
การฝึกอบรม/finetuning:
NISQA สามารถใช้ในการฝึกอบรมแบบจำลองการทำนายคุณภาพการพูดแบบปลายเดี่ยวหรือสองปลายใหม่ที่มีสถาปัตยกรรมการเรียนรู้ลึกที่แตกต่างกันเช่น CNN หรือ DFF-> การตั้งใจด้วยตนเองหรือ LSTM-> ความสนใจในการเติมความสนใจหรือการเจาะสูงสุด น้ำหนักรุ่นที่ให้ไว้สามารถนำไปใช้กับ Finetune โมเดลที่ผ่านการฝึกอบรมไปสู่ข้อมูลใหม่หรือสำหรับการถ่ายโอนการเรียนรู้ไปยังงานการถดถอยที่แตกต่างกัน (เช่นการประมาณคุณภาพของการพูดที่เพิ่มขึ้นการประมาณความคล้ายคลึงกันของผู้พูดหรือการจดจำอารมณ์)
ชุดข้อมูลคุณภาพการพูด:
เราให้บริการคลังข้อมูลขนาดใหญ่ของตัวอย่างการพูดมากกว่า 14,000 รายการที่มีคุณภาพการพูดแบบอัตนัยและฉลากมิติคุณภาพการพูด
ข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างแบบจำลองการเรียนรู้ลึกชุดข้อมูลการฝึกอบรมที่ใช้และตัวเลือกการฝึกอบรมดูที่กระดาษ Nisqa และวิกิ
ในการติดตั้งข้อกำหนดการติดตั้ง Anaconda แล้วใช้:
conda env create -f env.yml
สิ่งนี้จะสร้างสภาพแวดล้อมใหม่ด้วยชื่อ "Nisqa" เปิดใช้งานสภาพแวดล้อมนี้เพื่อดำเนินการต่อ:
conda activate nisqa
เราให้ตัวอย่างสำหรับการใช้ NISQA เพื่อทำนายคุณภาพของตัวอย่างการพูดเพื่อฝึกอบรมแบบจำลองคุณภาพการพูดใหม่และเพื่อประเมินประสิทธิภาพของแบบจำลองคุณภาพการพูดที่ผ่านการฝึกอบรม
มีน้ำหนักรุ่นที่แตกต่างกันสามแบบควรมีน้ำหนักที่เหมาะสมขึ้นอยู่กับโดเมน:
| แบบอย่าง | เอาต์พุตการทำนาย | โดเมน | ชื่อไฟล์ |
|---|---|---|---|
| Nisqa (v2.0) | คุณภาพโดยรวม, เสียงดัง, สี, ความไม่ต่อเนื่อง, เสียงดัง | คำพูดที่ส่ง | nisqa.tar |
| Nisqa (v2.0) MOS เท่านั้น | คุณภาพโดยรวมเท่านั้น (สำหรับ finetuning/การเรียนรู้การถ่ายโอน) | คำพูดที่ส่ง | nisqa_mos_only.tar |
| nisqa-tts (v1.0) | ความเป็นธรรมชาติ | คำพูดสังเคราะห์ | nisqa_tts.tar |
มีสามโหมดที่สามารถทำนายคุณภาพของการพูดผ่านอาร์กิวเมนต์บรรทัดคำสั่ง:
สำคัญ: เลือก " nisqa.tar " เพื่อทำนายคุณภาพของตัวอย่างคำพูดที่ส่งผ่านและ " nisqa_tts.tar " เพื่อทำนายความเป็นธรรมชาติของตัวอย่างคำพูดสังเคราะห์
เพื่อทำนายคุณภาพของการใช้ไฟล์. wav เดียว:
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
เพื่อทำนายคุณภาพของไฟล์. wav ทั้งหมดในการใช้โฟลเดอร์:
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
เพื่อทำนายคุณภาพของไฟล์. wav ทั้งหมดที่แสดงในการใช้ตาราง CSV:
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
ผลลัพธ์จะถูกพิมพ์ลงในคอนโซลและบันทึกลงในไฟล์ CSV ในโฟลเดอร์ที่กำหนด (เป็นทางเลือกด้วย -OUTPUT_DIR) เพื่อเพิ่มความเร็วในการทำนายจำนวนคนงานและขนาดแบทช์ของ Pytorch Dataloader สามารถเพิ่มขึ้นได้ (เป็นทางเลือกด้วย -NUM_WORKERS และ -BES) ในกรณีของไฟล์สเตอริโอ -MS_CHANNEL สามารถใช้เพื่อเลือกช่องสัญญาณเสียง
ในการใช้น้ำหนักรุ่นเพื่อ finetune โมเดลบนชุดข้อมูลใหม่จำเป็นต้องใช้ไฟล์ CSV ที่มีชื่อไฟล์และฉลากเท่านั้น การกำหนดค่าการฝึกอบรมถูกควบคุมจากไฟล์ YAML และสามารถเริ่มต้นได้ดังนี้:
python run_train.py --yaml config/finetune_nisqa.yaml
หากใช้ Nisqa Corpus มีเพียงสองอาร์กิวเมนต์ที่ต้องอัปเดตในไฟล์ YAML และคุณพร้อมที่จะไป: data_dir ไปยังโฟลเดอร์ NISQA_CORPUS ที่แยกออกมาและ output_dir ซึ่งควรเก็บผลลัพธ์ไว้
หากคุณใช้ชุดข้อมูลของคุณเองหรือต้องการโหลดโมเดล NISQA-TTS จำเป็นต้องมีการอัปเดตอื่น ๆ
ไฟล์ CSV ของคุณต้องมีคอลัมน์อย่างน้อยสามคอลัมน์พร้อมชื่อต่อไปนี้
db พร้อมชื่อชุดข้อมูลแต่ละตัวสำหรับแต่ละไฟล์filepath_deg filepath ไปยังไฟล์ WAV ที่เสื่อมโทรมไม่ว่าจะเป็นเส้นทางสัมบูรณ์หรือสัมพันธ์กับ data_dir (ชื่อคอลัมน์ CSV สามารถเปลี่ยนได้ใน YAML)mos ที่มีป้ายกำกับเป้าหมาย (ชื่อคอลัมน์ CSV สามารถเปลี่ยนได้ใน Yaml) ต้องได้รับการปรับปรุง finetune_nisqa.yaml ดังนี้:
data_dir ไปยังโฟลเดอร์หลักซึ่งมีไฟล์ CSV และชุดข้อมูลoutput_dir ไปยังโฟลเดอร์เอาท์พุทด้วยน้ำหนักและผลลัพธ์ที่บันทึกไว้pretrained_model ชื่อไฟล์ของโมเดล pretrained ทั้ง nisqa_mos_only.tar สำหรับการพูดตามธรรมชาติหรือ nisqa_tts.tar สำหรับการพูดสังเคราะห์csv_file ของ CSV ที่มี filepaths และฉลากเป้าหมายcsv_deg CSV ที่มี filePaths (เช่น filepath_deg )csv_mos_train และ csv_mos_val CSV ชื่อคอลัมน์ของค่าเป้าหมาย (เช่น mos )csv_db_train และ csv_db_val ชื่อของชุดข้อมูลที่คุณต้องการใช้สำหรับการฝึกอบรมและการตรวจสอบ ชื่อชุดข้อมูลจะต้องอยู่ในคอลัมน์ dbดูความคิดเห็นในไฟล์การกำหนดค่า YAML และ Wiki (ยังไม่ได้เพิ่ม) สำหรับตัวเลือกการฝึกอบรมขั้นสูงเพิ่มเติม จุดเริ่มต้นที่ดีคือการใช้ Nisqa Corpus เพื่อให้การฝึกอบรมเริ่มต้นด้วยการกำหนดค่ามาตรฐาน
Nisqa ยังสามารถใช้เป็นกรอบในการฝึกอบรมแบบจำลองคุณภาพการพูดใหม่ด้วยสถาปัตยกรรมการเรียนรู้ลึกที่แตกต่างกัน โครงสร้างแบบจำลองทั่วไปมีดังนี้:
แบบจำลองเฟรมเวสและการพึ่งพาเวลาสามารถข้ามได้เช่นการฝึกอบรมโมเดล LSTM โดยไม่ต้องใช้ CNN ที่ใช้ขั้นตอนสุดท้ายสำหรับการทำนาย นอกจากนี้ยังสามารถเพิ่มขั้นตอนการพึ่งพาอาศัยกันครั้งที่สองเช่นโครงสร้าง LSTM-Self-Attention โครงสร้างโมเดลสามารถควบคุมได้อย่างง่ายดายผ่านไฟล์กำหนดค่า YAML การฝึกอบรมด้วยการกำหนดค่าโมเดล NISQA มาตรฐานสามารถเริ่มต้นได้ด้วย NISQA Corpus ดังนี้:
python run_train.py --yaml config/train_nisqa_cnn_sa_ap.yaml
หากใช้ Nisqa Corpus เฉพาะ data_dir จะต้องได้รับการอัปเดตไปยังโฟลเดอร์ NISQA_CORPUS ที่ถูกซิปซิปและ output_dir ในไฟล์ YAML มิฉะนั้นให้ดูส่วน Finetuning ก่อนหน้าสำหรับการอัปเดตไฟล์ YAML หากใช้ชุดข้อมูลที่กำหนดเอง
นอกจากนี้ยังเป็นไปได้ที่จะฝึกอบรมการรวมกันอื่น ๆ ของเครือข่ายประสาทเช่นการฝึกอบรมแบบจำลองด้วย LSTM แทนที่จะเป็นความตั้งใจของตนเอง train_nisqa_cnn_lstm_avg.yaml ตัวอย่างไฟล์กำหนดค่า
ในการฝึกอบรมแบบจำลอง สองครั้ง สำหรับการทำนายคุณภาพการพูดเต็มการอ้างอิงเต็มรูปแบบการกำหนดค่าการกำหนดค่า train_nisqa_double_ended.yaml สามารถใช้เป็นตัวอย่างได้ ดูความคิดเห็นในไฟล์ YAML และ Wiki (ยังไม่ได้เพิ่ม) สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับโครงสร้างโมเดลที่เป็นไปได้ที่แตกต่างกันและตัวเลือกการฝึกอบรมขั้นสูง
แบบจำลองที่ผ่านการฝึกอบรมสามารถประเมินได้ในชุดข้อมูลที่กำหนดดังนี้ (สามารถใช้เป็นการทดสอบความสอดคล้องของการติดตั้งแบบจำลอง):
python run_evaluate.py
ก่อนที่จะทำงานตัวเลือกและเส้นทางภายในสคริปต์ Python run_evaluate.py ควรได้รับการปรับปรุง หากใช้คลังข้อมูล NISQA จะต้องปรับเส้นทาง data_dir และ output_dir เท่านั้น นอกจากความสัมพันธ์ของเพียร์สันและ RMSE แล้วยังมีการคำนวณ RMSE หลังจากคำนวณการทำแผนที่พหุนามลำดับแรก หากมีไฟล์ CSV ที่มีฉลากต่อเงื่อนไขสคริปต์จะส่งออกผลลัพธ์ต่อเงื่อนไขและ RMSE* สามารถวางแผนไดอะแกรมสหสัมพันธ์ได้ สคริปต์ควรส่งคืนผลลัพธ์เดียวกันกับในกระดาษ Nisqa เมื่อมันทำงานบนคลังข้อมูล Nisqa
Nisqa Corpus มีตัวอย่างการพูดมากกว่า 14,000 ตัวอย่างที่มีการจำลอง (เช่นตัวแปลงสัญญาณ, แพ็คเก็ต-การสูญเสีย, เสียงรบกวน) และสด (เช่นโทรศัพท์มือถือ, ซูม, skype, whatsapp) เงื่อนไข
สำหรับลิงค์ดาวน์โหลดและรายละเอียดเพิ่มเติมเกี่ยวกับชุดข้อมูลและตัวอย่างคำพูดที่ใช้แล้วดู Nisqa Corpus Wiki
รหัส NISQA ได้รับอนุญาตภายใต้ใบอนุญาต MIT
น้ำหนักแบบจำลอง (nisqa.tar, nisqa_mos_only.tar, nisqa_tts.tar) มีให้ภายใต้ใบอนุญาตครีเอทีฟคอมมอน
Nisqa Corpus มีให้ภายใต้เงื่อนไขดั้งเดิมของตัวอย่างคำพูดและเสียงรบกวนที่ใช้แล้ว ข้อมูลเพิ่มเติมสามารถพบได้ใน Nisqa Corpus Wiki
ลิขสิทธิ์© 2021 Gabriel Mittag
www.qu.tu-berlin.de