StarGAN VC(pytorch版)リポジトリの日本語による説明. あとソースコードの微修正.
[Original Paper]
StarGAN-VC: Non-parallel many-to-many voice conversion with star generative adversarial networks.
変換音声はconvertedディレクトリに保存される.
- Python 3.6 (or higher)
- pytorch 1.1.0 (see https://pytorch.org/)
- tensorflow 2.0 (Be careful! Not use tensorflow 1.X)
- librosa
- pyworld
- tensorboard 2.0
- scikit-learn 0.21.3 (or higher)
NOTE:According to some feedbacks, we recommend to use tensorflow version 1.8 exactly. (Tensorflow 1.11 generate nonsense results)
vcc 2016データセットはここからダウンロードできるよ!
Data Share - SUPERSEDED - The Voice Conversion Challenge 2016
https://datashare.is.ed.ac.uk/handle/10283/2042
-
訓練データセット: ここからデータセットZIPファイルをダウンロードVCC training data: source and target evaluation data (7.357Mb)して解凍する.解凍して出てきた
vcc2016_training
をdata
フォルダ内に保存. -
テストデータセット: ここからデータセットZIPファイルをダウンロードVCC training data: evaluation data released to participants during the challenge (3.576Mb)して解凍する.解凍して出てきた
evaluation_all
をdata
フォルダ内に保存.
保存したデータの一部を以下の訓練セットフォルダとテストセットフォルダに保存する.
- 訓練セット:
./data/vcc2016_training
から4人のスピーカ(SF1,SF2,TM1,TM2)を選んで./data/speakers
に保存する. - テストセット
./data/evaluation_all
から4人のスピーカ(SF1,SF2,TM1,TM2)を選んで./data/speakers_test
に保存する.
↓↓ 以下はフォルダ構成をまとめたもの.
data
├── speakers (training set < vcc2016_trainingから4つのフォルダをコピーしてぶち込む)
│ ├── SF1
│ ├── SF2
│ ├── TM1
│ └── TM2
├── speakers_test (testing set < evaluation_allから4つのフォルダをコピーしてぶち込む)
│ ├── SF1
│ ├── SF2
│ ├── TM1
│ └── TM2
├── vcc2016_training (vcc2016_training.zipを解凍したときに出てくるフォルダ)
│ ├── SF1
| ├── SF2
| ├── SF3
│ ├── ...
├── evaluation_all (evaluation_all.zipを解凍したときに出てくるフォルダ)
│ ├── ...
はじめにpreprocess.py
を実行して音声クリップから特徴量(mcep:メルケプストラム,f0:基本周波数,ap:非周期性指標)を抽出する.それらの特徴量は.npy
ファイルにソートして保存される.preprocess.py
の実行コマンドは以下の通り.
python preprocess.py
約5~10分ぐらいかかるよ! テスト時はpreprocessが必要ない!
学習実行時,何エポックごとかにresult_***
ディレクトリに学習データに対する処理結果が保存される.
result_***
にテストデータに対する処理結果(たぶん?)が保存される.実行コマンドは以下の通り.
python main.py
python main.py --mode test --test_iters 200000 --src_speaker TM1 --trg_speaker "['TM1','SF1']"
The network structure shown as follows: