音声波形生成モデルNeural source-filterに敵対的学習を導入し,ダイナミクスの改善と音声品質の向上を行った. b-NSFをGeneratorに,DiscriminatorにMelGANのMulti-scale Discriminatorを採用した.
- 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
本研究ではLJSpeech Datasetを使用した.
dataset
現状のハイパーパラメータはサンプリングレートが16kHzである必要があるため,
downsample_lj.py
を実行して,LJSpeech Datasetの音声を22.05kHzから16kHzへと
ダウンサンプリングする.引数はソースコード参照
div_dataset.py
を用いて,データセットを学習・検証・テストデータへと分割する.
分割は,ファイル名をテキストファイルに保存,必要に応じてそのテキストファイルに記載の音声ファイルを読み込む.
引数はソースコード参照
ネットワークでメルスペクトログラム・基本周波数の標準化を行うため,calc_data_mean_std.py
で,
学習データの平均・標準偏差を計算,pklファイルへと保存する.
pklファイルのパスを,config.json
のmean_std_path
に入力する.
引数はソースコード参照
train.py
でNSF-GANの学習を行う.ハイパーパラメータはconfig.json
で設定を行う.
引数はソースコード参照
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
テストデータの自然音声をデータセットから抽出する.主観評価実験などで実際の音声データが必要な場合に用いる