Skip to content

mitsu-h/NSF-GAN

Repository files navigation

NSF-GAN

音声波形生成モデルNeural source-filterに敵対的学習を導入し,ダイナミクスの改善と音声品質の向上を行った. b-NSFをGeneratorに,DiscriminatorにMelGANのMulti-scale Discriminatorを採用した.

論文

参考にしたソースコード

Requirements

  • tqdm==4.45.0
  • matplotlib==3.1.0
  • pyworld==0.2.8
  • librosa==0.7.2
  • numpy==1.16.4
  • torch==1.7.0
  • torch_summary==1.4.5
  • docopt==0.6.2
  • Pillow==8.1.2
  • torchsummary==1.5.1

Usage

音声データのダウンロード

本研究ではLJSpeech Datasetを使用した.
dataset

サンプリングレートの変換

現状のハイパーパラメータはサンプリングレートが16kHzである必要があるため, downsample_lj.pyを実行して,LJSpeech Datasetの音声を22.05kHzから16kHzへと ダウンサンプリングする.引数はソースコード参照

学習データの分割

div_dataset.pyを用いて,データセットを学習・検証・テストデータへと分割する. 分割は,ファイル名をテキストファイルに保存,必要に応じてそのテキストファイルに記載の音声ファイルを読み込む. 引数はソースコード参照

学習データの平均・標準偏差の算出

ネットワークでメルスペクトログラム・基本周波数の標準化を行うため,calc_data_mean_std.pyで, 学習データの平均・標準偏差を計算,pklファイルへと保存する.
pklファイルのパスを,config.jsonmean_std_pathに入力する. 引数はソースコード参照

学習

train.pyでNSF-GANの学習を行う.ハイパーパラメータはconfig.jsonで設定を行う. 引数はソースコード参照

tensorboardによる可視化

config.json記載のlog_event_pathにtensorboardのログを出力しているので,以下で学習の確認を行う.

tensorboard --logdir=<log_event_path>

従来法の学習

train_h_sinc_nsf.pyで従来法であるH-sinc-NSFの学習を行う. ハイパーパラメータはconfig_h_sinc_nsf.jsonで設定を行う.

###テストデータの推論 inference.pyで,分割したテストデータのメルスペクトログラム,基本周波数を入力とした合成音をすべて出力する 引数はソースコード参照

##その他ソースコード

  • calc_db.py
    音声のダイナミクスを定量評価するために,指定のフォルダ内にある全音声のRMSで算出した音圧レベルの平均を出力する.
  • cp_txt_list.py
    テストデータの自然音声をデータセットから抽出する.主観評価実験などで実際の音声データが必要な場合に用いる

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages