+++ニュース:NISQAモデルは最近、NISQA V2.0に更新されました。新しいバージョンは、より高い精度で多次元予測を提供し、モデルのトレーニングと微調整を可能にします。
音声品質の予測:
NISQAは、音声品質予測のための深い学習モデル/フレームワークです。 NISQAモデルの重みを使用して、通信システム(電話やビデオ通話など)を介して送信された音声サンプルの品質を予測できます。全体的な音声品質に加えて、NISQAは品質の騒音、色、不連続性、音声の品質の予測も提供し、品質の悪化の原因についてより多くの洞察を与えます。
TTS自然さの予測:
NISQA-TTSモデルの重みを使用して、音声変換またはテキストからスピーチシステム(Siri、Alexaなど)によって生成される合成音声の自然さを推定できます。
トレーニング/微調整:
NISQAは、CNNやDFFなどのさまざまな深い学習アーキテクチャを使用して、新しいシングルエンドまたは二重エンドの音声品質予測モデルをトレーニングするために使用できます。提供されたモデルの重みは、訓練されたモデルを新しいデータに向けて微調整したり、異なる回帰タスク(スピーカーの類似性推定、または感情認識の強化、スピーカーの類似性推定、または感情認識の品質推定)への転送学習のために適用することもできます。
音声品質データセット:
主観的な音声品質と音声品質の次元ラベルを持つ14,000を超える音声サンプルの大きなコーパスを提供します。
ディープラーニングモデル構造、使用済みトレーニングデータセット、およびトレーニングオプションの詳細については、NISQAペーパーとWikiを参照してください。
要件をインストールするには、Anacondaをインストールしてから使用します。
conda env create -f env.yml
これにより、「nisqa」という名前の新しい環境が作成されます。この環境をアクティブにして続行します。
conda activate nisqa
NISQAを使用して、音声サンプルの品質を予測し、新しい音声品質モデルを訓練し、訓練された音声品質モデルのパフォーマンスを評価するための例を提供します。
利用可能な3つの異なるモデルの重みがあります。ドメインに応じて、適切な重みをロードする必要があります。
| モデル | 予測出力 | ドメイン | ファイル名 |
|---|---|---|---|
| nisqa(v2.0) | 全体的な品質、騒々しさ、着色、不連続性、大音量 | 送信されたスピーチ | nisqa.tar |
| Nisqa(V2.0)MOSのみ | 全体的な品質のみ(Finetuning/Transfer Learningの場合) | 送信されたスピーチ | nisqa_mos_only.tar |
| nisqa-tts(v1.0) | 自然さ | 合成された音声 | nisqa_tts.tar |
コマンドライン引数を介して音声の質を予測するために利用できる3つのモードがあります。
重要: 「 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ファイルに保存されます(Optional with -output_dir)。予測をスピードアップするために、Pytorch Dataloaderの労働者の数とバッチサイズを増やすことができます(-num_workersおよび-bsでオプション)。ステレオファイルの場合、-MS_CHANNELを使用してオーディオチャネルを選択できます。
モデルの重みを使用して、新しいデータセットでモデルを微調整するには、ファイルとラベルを備えたCSVファイルのみが必要です。トレーニング構成はYAMLファイルから制御され、次のように開始できます。
python run_train.py --yaml config/finetune_nisqa.yaml
NISQAコーパスを使用する場合、YAMLファイルで更新する必要がある2つの引数のみが必要であり、抽出されたNISQA_CORPUSフォルダーへのdata_dirと、結果を保存する必要があるoutput_dir 。
独自のデータセットを使用する場合、またはNISQA-TTSモデルをロードする場合は、他の更新が必要です。
CSVファイルは、次の名前の少なくとも3つの列を含める必要があります
dbfilepath_deg filepathは、絶対パスまたはdata_dirに対する絶対パスまたは関連のいずれかの劣化した波状ファイルに(csv列名をyamlで変更できます)mos (CSV列名はYAMLで変更できます) finetune_nisqa.yamlは、次のように更新する必要があります。
data_dirパスoutput_dirモデルの重みと結果を保存した出力フォルダーへのパスpretrained_model処理されたモデルのファイル名、自然発話のためのnisqa_mos_only.tarのいずれか、合成された音声のnisqa_tts.tarのいずれかcsv_file名csv_deg csv列名( filepath_degなど)csv_mos_trainおよびcsv_mos_val csvターゲット値の列名( mos :csv_db_trainおよびcsv_db_val名。データセット名はdb列にある必要があります。より高度なトレーニングオプションについては、YAML構成ファイルとWiki(まだ追加されていない)のコメントを参照してください。良い出発点は、NISQAコーパスを使用して標準構成からトレーニングを開始することです。
NISQAは、さまざまな深い学習アーキテクチャで新しい音質品質モデルをトレーニングするためのフレームワークとして使用することもできます。一般的なモデル構造は次のとおりです。
たとえば、予測に最後のステップを使用するCNNなしでLSTMモデルをトレーニングするために、フレームワイズおよび時間依存モデルをスキップできます。また、LSTM自己攻撃構造の場合、2回目の時間依存段階を追加できます。モデル構造は、YAML構成ファイルを介して簡単に制御できます。標準のNISQAモデル構成を使用したトレーニングは、次のようにNISQAコーパスで開始できます。
python run_train.py --yaml config/train_nisqa_cnn_sa_ap.yaml
NISQAコーパスを使用する場合、 data_dirのみをyamlファイルの未zip nisqa_corpusフォルダーとoutput_dirに更新する必要があります。それ以外の場合は、カスタムデータセットが適用されている場合は、YAMLファイルを更新する前のFinetuningセクションを参照してください。
また、たとえば、ニューラルネットワークの他の組み合わせをトレーニングすることも、自己attentionの代わりに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コーパスには、シミュレートされた14,000を超える音声サンプルが含まれています(コード、パケットロス、バックグラウンドノイズ)、ライブ(携帯電話、ズーム、Skype、WhatsApp、WhatsAppなど)のライブ(例:携帯電話、ズーム、Skype、WhatsApp)が含まれています。
ダウンロードリンクとデータセットの詳細と使用済みソース音声サンプルについては、Nisqa Corpus Wikiを参照してください。
NISQAコードは、MITライセンスに基づいてライセンスされています。
モデルの重み(nisqa.tar、nisqa_mos_only.tar、nisqa_tts.tar)は、クリエイティブコモンズの帰属noncommercial-sharealike 4.0 International(CC by-nc-sa 4.0)ライセンスの下で提供されます
NISQAコーパスは、使用済みのソース音声およびノイズサンプルの元の用語の下で提供されます。詳細については、Nisqa Corpus Wikiをご覧ください。
Copyright©2021 Gabriel Mittag
www.qu.tu-berlin.de