+++新聞:NISQA模型最近已更新為NISQA V2.0。新版本提供了具有更高精度的多維預測,並允許訓練和填充模型。
語音質量預測:
NISQA是語音質量預測的深度學習模型/框架。 NISQA模型權重可用於預測通過通信系統發送的語音樣本的質量(例如電話或視頻通話)。除了整體語音質量外,NISQA還提供了質量尺寸噪音,色彩,不連續性和響度的預測,以更深入地了解質量退化的原因。
TTS自然性預測:
Nisqa-TTS模型權重可用於估計由語音轉換或文本到語音系統(Siri,Alexa等)產生的合成語音的自然性。
培訓/填充:
NISQA可用於訓練具有不同深度學習體系結構的新型單端或雙終端語音質量預測模型,例如CNN或DFF->自我注意力或LSTM->注意力 - >注意或最大化。提供的模型權重也可以應用於對新數據的訓練模型或轉移到不同回歸任務的訓練模型(例如增強語音,說話者相似性估計或情感識別的質量估計)。
語音質量數據集:
我們提供了14,000多種語音樣本,並提供主觀語音質量和語音質量維度標籤。
有關深度學習模型結構,使用過的培訓數據集以及培訓選項的更多信息,請參見NISQA論文和Wiki。
要安裝要求安裝Anaconda,然後使用:
conda env create -f env.yml
這將創建一個名稱為“ Nisqa”的新環境。激活這個環境以進行:
conda activate nisqa
我們提供了使用NISQA預測語音樣本質量,訓練新的語音質量模型並評估訓練有素的語音質量模型的性能的示例。
有三種不同的模型權重,應根據域的不同,應加載適當的權重:
| 模型 | 預測輸出 | 領域 | 文件名 |
|---|---|---|---|
| NISQA(v2.0) | 總體質量,嘈雜,著色,不連續性,響度 | 傳遞的演講 | nisqa.tar |
| Nisqa(v2.0)僅MOS | 總體質量僅(用於填充/轉移學習) | 傳遞的演講 | 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
為了預測CSV表中列出的所有.WAV文件的質量:使用:
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文件(可選為with -unput_dir)。為了加快預測,可以增加pytorch數據加載程序的工人數量和批處理大小(可與-num_workers and -bs進行可選)。如果是立體聲文件,則可以使用MS_CHANNEL來選擇音頻頻道。
要使用模型權重來對新數據集上的模型進行驗證,只需要一個帶有文件名和標籤的CSV文件。培訓配置由YAML文件控制,可以按以下方式啟動:
python run_train.py --yaml config/finetune_nisqa.yaml
如果使用NISQA語料庫,則只需要在YAML文件中更新兩個參數,您就可以使用了:提取的Nisqa_corpus文件夾的data_dir和output_dir ,其中應存儲結果。
如果您使用自己的數據集或想加載NISQA-TTS模型,則需要其他一些更新。
您的CSV文件需要至少包含三列,並具有以下名稱
db帶有每個文件的單個數據集名稱filepath_deg FILEPATH到退化的WAV文件,絕對路徑或相對於data_dir (可以在YAML中更改CSV列名稱)mos (CSV列名稱可以在YAML中更改) finetune_nisqa.yaml需要進行以下更新:
data_dir路徑到達主文件夾,其中包含CSV文件和數據集output_dir路徑到輸出文件夾,具有保存的模型權重和結果pretrained_model模型的文件名,即nisqa_mos_only.tar自然語音或nisqa_tts.tar用於合成語音csv_file的CSV名稱,帶有文件膜和目標標籤csv_deg CSV列名稱包含filepaths(例如filepath_deg )csv_mos_train和csv_mos_val CSV列的目標值(例如mos )csv_db_train和csv_db_val名稱。數據集名稱必須在db列中。有關更高級的培訓選項,請參見YAML配置文件和Wiki中的評論(尚未添加)。一個好的起點是使用Nisqa語料庫以標準配置開始培訓。
NISQA也可以用作培訓具有不同深度學習體系結構的新語音質量模型的框架。一般模型結構如下:
可以跳過框架和時間依賴性模型,例如,在沒有CNN的情況下訓練LSTM模型,該模型使用最後一個時間步驟進行預測。還可以添加第二個時間依賴性階段,例如,對於LSTM自我意見結構。模型結構可以通過YAML配置文件輕鬆控制。 NISQA模型配置的培訓可以從Nisqa語料庫開始,如下所示:
python run_train.py --yaml config/train_nisqa_cnn_sa_ap.yaml
如果使用NISQA語料庫,則僅需要將data_dir更新為YAML文件中的未拉鍊NISQA_CORPUS文件夾和output_dir 。否則,如果應用自定義數據集,請參見上一個列出部分以更新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路徑。除了Pearson的相關性和RMSE外,還計算出一階多項式映射後的RMSE。如果提供了帶有每條條件標籤的CSV文件,則該腳本還將輸出每條條件結果和RMSE*。可選地,可以繪製相關圖。該腳本應返回與Nisqa Paper在Nisqa語料庫上運行時相同的結果。
NISQA語料庫包括14,000多個語音樣本,這些樣本具有模擬(例如編解碼器,數據包損失,背景噪聲)和LIVE(例如手機,Zoom,Skype,WhatsApp)條件。
有關下載鏈接以及數據集中的更多詳細信息,並使用了源語音樣本,請參見Nisqa Corpus Wiki。
NISQA代碼已根據MIT許可獲得許可。
型號權重(Nisqa.tar,Nisqa_mos_only.tar,nisqa_tts.tar)是在創意共享屬性下提供的,nisqa_tts.tar)
Nisqa語料庫是根據所用的源語音和噪聲樣本的原始術語提供的。更多信息可以在Nisqa Corpus Wiki中找到。
版權所有©2021 Gabriel Mittag
www.qu.tu-berlin.de