A TensorFlow implementation of Multi-Speaker Tacotron which was introduced on Deep Voice 2 paper by Baidu.
Multi-Speaker 기능을 가진 Tacotron 모델의 TensorFlow 구현입니다. 이 저장소는 Baidu의 Deep Voice 2 논문을 기반으로 구현하였습니다. Multi-Speaker 기능은 선택적으로 사용, 또는 사용하지 않을 수 있으며 만약 Multi-Speaker 기능을 사용하지 않는다면 기존의 Tacotron 모델과 동일합니다.
파이썬 패키지(Requirements)를 설치합니다. 설치는 아래와 같은 명령을 통해 수행 가능합니다.
$ pip install -r requirements.txt
아래와 같이 virtualenv
를 활용하여 더 쉽게 패키지 관리를 할 수도 있습니다. virtualenv
가 이미 설치되어 있다는 가정 하에 아래의 명령을 수행하면 됩니다.
$ virtualenv --system-site-packages -p python3 tacotron-venv
$ source ./tacotron-venv/bin/activate
$ pip install -r requirements.txt
Note: 데이터 세트를 다운로드받기 위한 여유분의 저장 공간이 필요합니다. LJ Speech 데이터 세트를 기준으로 약 80GB 이상의 저장 공간이 필요합니다.
음성 데이터 세트를 다운로드합니다.
이 저장소는 다음의 데이터 세트에 대한 활용을 제공합니다.
데이터 세트를 원하는 위치에 Unpack합니다.
Unpacking 이후에는 디렉토리 구조가 다음과 같아야 합니다.
dataset
├── LJSpeech
├── wavs
├── LJ001-0001.wav (name doesn't matter)
├── LJ001-0002.wav
└── ...
├── metadata.csv
└── README
├── kss
├── 1
├── 1_0000.wav (name doesn't matter)
├── 1_0001.wav
└── ...
├── 2
├── 3
├── 4
├── transcript.txt
└── transcript.v.1.1.txt
├── tfrecord
├── VCTK
├── VCTK-Corpus
├── txt
├── p225
├── p225_001.txt (name doesn't matter)
├── p226_002.txt
└── ...
├── p226
└── ...
├── wav
├── p225
├── p225_001.wav (name doesn't matter)
├── p226_002.wav
└── ...
├── p226
└── ...
├── COPYING
├── NOTE
├── README
└── speaker-info.txt
├── license_text
└── README.txt
└── ...
hyparams.py
의 스크립트에서 Training을 위한 데이터 세트 이름 및 각각의 Path들을 수정하여 줍니다.
dataset_paths
같은 경우는 LJ Speech와 kss의 경우 LJSpeech
및 kss
디렉토리까지 명시해줘야 하며, VCTK 같은 경우는 VCTK-Corpus
디렉토리까지 명시해줘야 합니다.
데이터 세트 전처리를 수행합니다.
$ python preprocess.py
모델 Training을 수행합니다.
$ python train.py
학습된 모델을 이용하여 음성을 생성하기 위해서는 generate.py
를 실행하면 됩니다. hyparams.py
의 for generating
부분을 원하는 경로로 바꿔주고 바로 실행하면 됩니다. Multi-Speaker 기능 사용 여부에 따라서 실행 방식이 달라질 것이지만 사용하는데 어려움이 없을 것입니다.
$ python generate.py
106000 Steps:
Mel Spectrogram Sample
Linear Spectrogram Sample
Attention Alignment Sample
382000 Steps:
Mel Spectrogram Sample
Linear Spectrogram Sample
Attention Alignment Sample