Copy disabled (too large)
Download .txt
Showing preview only (12,859K chars total). Download the full file to get everything.
Repository: r9y9/gantts
Branch: master
Commit: fb1e75fa9cab
Files: 28
Total size: 12.3 MB
Directory structure:
gitextract_31fi3jc2/
├── .github/
│ └── stale.yml
├── .gitignore
├── .gitmodules
├── .travis.yml
├── LICENSE.md
├── README.md
├── data/
│ └── .gitignore
├── evaluation_tts.py
├── evaluation_vc.py
├── gantts/
│ ├── __init__.py
│ ├── models.py
│ ├── multistream.py
│ └── seqloss.py
├── generated/
│ └── .gitignore
├── hparams.py
├── notebooks/
│ ├── Test RNN VC.ipynb
│ ├── Test TTS.ipynb
│ └── Test VC.ipynb
├── prepare_features_tts.py
├── prepare_features_vc.py
├── release.sh
├── setup.py
├── tests/
│ └── test_gantts.py
├── tox.ini
├── train.py
├── train_gan.sh
├── tts_demo.sh
└── vc_demo.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 60
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 7
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- roadmap
- bug
- design
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: true
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: true
# Label to use when marking as stale
staleLabel: wontfix
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
only: issues
================================================
FILE: .gitignore
================================================
checkpoints*
log
gantts/version.py
# Created by https://www.gitignore.io
### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.cache
nosetests.xml
coverage.xml
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# PyBuilder
target/
### IPythonNotebook ###
# Temporary data
.ipynb_checkpoints/
### SublimeText ###
# cache files for sublime text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
# workspace files are user-specific
*.sublime-workspace
# project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using SublimeText
# *.sublime-project
# sftp configuration file
sftp-config.json
### Emacs ###
# -*- mode: gitignore; -*-
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*
# Org-mode
.org-id-locations
*_archive
# flymake-mode
*_flymake.*
# eshell files
/eshell/history
/eshell/lastdir
# elpa packages
/elpa/
# reftex files
*.rel
# AUCTeX auto folder
/auto/
# cask packages
.cask/
### Vim ###
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
*.un~
Session.vim
.netrwhist
*~
### C++ ###
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
### OSX ###
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Linux ###
*~
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
================================================
FILE: .gitmodules
================================================
[submodule "nnmnkwii_gallery"]
path = nnmnkwii_gallery
url = https://github.com/r9y9/nnmnkwii_gallery
================================================
FILE: .travis.yml
================================================
language: python
python:
- "2.7"
- "3.6"
notifications:
email: false
before_install:
- sudo apt-get update
- if [["$TRAVIS_PYTHON_VERSION" == "2.7"]]; then
wget http://repo.continuum.io/miniconda/Miniconda-3.8.3-Linux-x86_64.sh -O miniconda.sh;
else
wget http://repo.continuum.io/miniconda/Miniconda3-3.8.3-Linux-x86_64.sh -O miniconda.sh;
fi
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- hash -r
- conda config --set always_yes yes --set changeps1 no
- conda update -q conda
# Useful for debugging any issues with conda
- conda config --add channels pypi
- conda info -a
- deps='pip numpy scipy cython nose'
- conda create -q -n test-environment "python=$TRAVIS_PYTHON_VERSION" $deps
- source activate test-environment
- conda install pytorch -c soumith
- pip install codecov flake8
install:
- pip install -e ".[test]"
script:
- nosetests -v -w tests/
================================================
FILE: LICENSE.md
================================================
The tacotron_pytorch package is licensed under the MIT "Expat" License:
> Copyright (c) 2017: Ryuichi Yamamoto.
>
> Permission is hereby granted, free of charge, to any person obtaining
> a copy of this software and associated documentation files (the
> "Software"), to deal in the Software without restriction, including
> without limitation the rights to use, copy, modify, merge, publish,
> distribute, sublicense, and/or sell copies of the Software, and to
> permit persons to whom the Software is furnished to do so, subject to
> the following conditions:
>
> The above copyright notice and this permission notice shall be
> included in all copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: README.md
================================================
# GAN TTS
[](https://travis-ci.org/r9y9/gantts)
[](https://pypi.python.org/pypi/gantts)
[](https://zenodo.org/badge/latestdoi/105146494)
PyTorch implementation of Generative adversarial Networks (GAN) based text-to-speech (TTS) and voice conversion (VC).
1. [Saito, Yuki, Shinnosuke Takamichi, and Hiroshi Saruwatari. "Statistical Parametric Speech Synthesis Incorporating Generative Adversarial Networks." IEEE/ACM Transactions on Audio, Speech, and Language Processing (2017).](http://ieeexplore.ieee.org/abstract/document/8063435/)
2. [Shan Yang, Lei Xie, Xiao Chen, Xiaoyan Lou, Xuan Zhu, Dongyan Huang, Haizhou Li, "
Statistical Parametric Speech Synthesis Using Generative Adversarial Networks Under A Multi-task Learning Framework", arXiv:1707.01670, Jul 2017.](https://arxiv.org/abs/1707.01670)
## Generated audio samples
Audio samples are available in the Jupyter notebooks at the link below:
- [Voice conversion (en, MLP)](http://nbviewer.jupyter.org/github/r9y9/gantts/blob/master/notebooks/Test%20VC.ipynb)
- [Voice conversion (en, RNN)](http://nbviewer.jupyter.org/github/r9y9/gantts/blob/master/notebooks/Test%20RNN%20VC.ipynb)
- [Text-to-speech synthesis (en, MLP)](http://nbviewer.jupyter.org/github/r9y9/gantts/blob/master/notebooks/Test%20TTS.ipynb)
- [Text-to-speech synthesis (ja, MLP)](http://nbviewer.jupyter.org/gist/r9y9/185a56417cee27d9f785b8caf1c9f5ec)
## Notes on hyper parameters
- `adversarial_streams`, which represents streams (mgc, lf0, vuv, bap) to be used to compute adversarial loss, is a very speech quality sensitive parameter. Computing adversarial loss on mgc features (except for first few dimensions) seems to be working good.
- If `mask_nth_mgc_for_adv_loss` > 0, first `mask_nth_mgc_for_adv_loss` dimension for mgc will be ignored for computing adversarial loss. As described in [saito2017asja](http://sython.org/papers/ASJ/saito2017asja.pdf), I confirmed that using 0-th (and 1-th) mgc for computing adversarial loss affects speech quality. From my experience, `mask_nth_mgc_for_adv_loss` = 1 for mgc order 25, `mask_nth_mgc_for_adv_loss` = 2 for mgc order 59 are working to me.
- F0 extracted by WORLD will be spline interpolated. Set `f0_interpolation_kind` to "slinear" if you want frist-order spline interpolation, which is same as Merlin's default.
- Set `use_harvest` to True if you want to use Harvest F0 estimation algorithm. If False, Dio and StoneMask are used to estimate/refine F0.
- If you see `cuda runtime error (2) : out of memory`, try smaller batch size. https://github.com/r9y9/gantts/issues/3
### Notes on [2]
Though I haven't got improvements over Saito's approach [1] yet, but the GAN-based models described in [2] should be achieved by the following configurations:
- Set `generator_add_noise` to True. This will enable generator to use Gaussian noise as input. Linguistic features are concatenated with the noise vector.
- Set `discriminator_linguistic_condition` to True. The discriminator uses linguistic features as condition.
## Requirements
- [PyTorch](http://pytorch.org/) >= v0.2.0
- [TensorFlow](https://www.tensorflow.org/) (just for `tf.contrib.training.HParams`)
- [nnmnkwii](https://github.com/r9y9/nnmnkwii)
- [PyWorld](https://github.com/JeremyCCHsu/Python-Wrapper-for-World-Vocoder)
- https://github.com/taolei87/sru (if you want to try SRU-based models)
- Python
## Installation
Please install PyTorch, TensorFlow and SRU (if needed) first. Once you have those, then
```
git clone --recursive https://github.com/r9y9/gantts && cd gantts
pip install -e ".[train]"
```
should install all other dependencies.
## Repository structure
- **gantts/**: Network definitions, utilities for working on sequence-loss optimization.
- **prepare_features_vc.py**: Acoustic feature extraction script for voice conversion.
- **prepare_features_tts.py**: Linguistic/duration/acoustic feature extraction script for TTS.
- **train.py**: GAN-based training script. This is written to be generic so that can be used for training voice conversion models as well as text-to-speech models (duration/acoustic).
- **train_gan.sh**: Adversarial training wrapper script for `train.py`.
- **hparams.py**: Hyper parameters for VC and TTS experiments.
- **evaluation_vc.py**: Evaluation script for VC.
- **evaluation_tts.py**: Evaluation script for TTS.
Feature extraction scripts are written for CMU ARCTIC dataset, but can be easily adapted for other datasets.
## Run demos
### Voice conversion (en)
`vc_demo.sh` is a `clb` to `clt` voice conversion demo script. Before running the script, please download wav files for `clb` and `slt` from [CMU ARCTIC](http://festvox.org/cmu_arctic/) and check that you have all data in a directory as follows:
```
> tree ~/data/cmu_arctic/ -d -L 1
/home/ryuichi/data/cmu_arctic/
├── cmu_us_awb_arctic
├── cmu_us_bdl_arctic
├── cmu_us_clb_arctic
├── cmu_us_jmk_arctic
├── cmu_us_ksp_arctic
├── cmu_us_rms_arctic
└── cmu_us_slt_arctic
```
Once you have downloaded datasets, then:
```
./vc_demo.sh ${experimental_id} ${your_cmu_arctic_data_root}
```
e.g.,
```
./vc_demo.sh vc_gan_test ~/data/cmu_arctic/
```
Model checkpoints will be saved at `./checkpoints/${experimental_id}` and audio samples
are saved at `./generated/${experimental_id}`.
### Text-to-speech synthesis (en)
`tts_demo.sh` is a self-contained TTS demo script. The usage is:
```
./tts_demo.sh ${experimental_id}
```
This will download `slt_arctic_full_data` used in Merlin's demo, perform feature extraction, train models and synthesize audio samples for eval/test set. `${experimenta_id}` can be arbitrary string, for example,
```
./tts_demo.sh tts_test
```
Model checkpoints will be saved at `./checkpoints/${experimental_id}` and audio samples
are saved at `./generated/${experimental_id}`.
## Hyper paramters
See ``hparams.py``.
## Monitoring training progress
```
tensorboard --logdir=log
```
## References
- [Yuki Saito, Shinnosuke Takamichi, Hiroshi Saruwatari, "Statistical Parametric Speech Synthesis Incorporating Generative Adversarial Networks", arXiv:1709.08041 [cs.SD], Sep. 2017](https://arxiv.org/abs/1709.08041)
- [Yuki Saito, Shinnosuke Takamichi, and Hiroshi Saruwatari, "Training algorithm to deceive anti-spoofing verification for DNN-based text-to-speech synthesis," IPSJ SIG Technical Report, 2017-SLP-115, no. 1, pp. 1-6, Feb., 2017. (in Japanese)](http://sython.org/papers/SIG-SLP/saito201702slp.pdf)
- [Yuki Saito, Shinnosuke Takamichi, and Hiroshi Saruwatari, "Voice conversion using input-to-output highway networks," IEICE Transactions on Information and Systems, Vol.E100-D, No.8, pp.1925--1928, Aug. 2017](https://www.jstage.jst.go.jp/article/transinf/E100.D/8/E100.D_2017EDL8034/_article)
- https://www.slideshare.net/ShinnosukeTakamichi/dnnantispoofing
- https://www.slideshare.net/YukiSaito8/Saito2017icassp
## Notice
The repository doesn't try to reproduce same results reported in their papers because 1) data is not publically available and 2). hyper parameters are highly depends on data. Instead, I tried same ideas on different data with different hyper parameters.
================================================
FILE: data/.gitignore
================================================
*
!.gitignore
================================================
FILE: evaluation_tts.py
================================================
# coding: utf-8
"""Evaluation script for GAN-based text-to-speech synthesis.
usage: evaluation_vc.py [options] <acoustic_checkpoint> <duration_checkpoint> \
<data_dir> <labels_dir> <outputs_dir>
options:
--fs=<fs> Sampling frequency [default: 16000].
--disable-duraton-gen Disable duration generation.
--post-filter Apply Merlin's post filter to spectral features.
-h, --help Show this help message and exit.
"""
from docopt import docopt
import numpy as np
import torch
from torch import nn
from torch.autograd import Variable
from scipy.io import wavfile
import pyworld
import pysptk
import sys
import os
from os.path import splitext, join, abspath, basename, exists
from nnmnkwii import preprocessing as P
from nnmnkwii import paramgen
from nnmnkwii.datasets import FileSourceDataset, FileDataSource
from nnmnkwii.io import hts
from nnmnkwii.frontend import merlin as fe
from nnmnkwii.postfilters import merlin_post_filter
import gantts
from gantts.multistream import multi_stream_mlpg, get_static_features
from gantts.multistream import get_static_stream_sizes, select_streams
from gantts.seqloss import MaskedMSELoss, sequence_mask
from hparams import tts_acoustic as hp_acoustic
from hparams import tts_duration as hp_duration
from train import NPYDataSource
use_cuda = torch.cuda.is_available()
binary_dict, continuous_dict = hts.load_question_set(hp_acoustic.question_path)
def gen_parameters(y_predicted, Y_mean, Y_std, mge_training=True):
mgc_dim, lf0_dim, vuv_dim, bap_dim = hp_acoustic.stream_sizes
mgc_start_idx = 0
lf0_start_idx = mgc_dim
vuv_start_idx = lf0_start_idx + lf0_dim
bap_start_idx = vuv_start_idx + vuv_dim
windows = hp_acoustic.windows
ty = "acoustic"
# MGE training
if mge_training:
# Split acoustic features
mgc = y_predicted[:, :lf0_start_idx]
lf0 = y_predicted[:, lf0_start_idx:vuv_start_idx]
vuv = y_predicted[:, vuv_start_idx]
bap = y_predicted[:, bap_start_idx:]
# Perform MLPG on normalized features
mgc = paramgen.mlpg(mgc, np.ones(mgc.shape[-1]), windows)
lf0 = paramgen.mlpg(lf0, np.ones(lf0.shape[-1]), windows)
bap = paramgen.mlpg(bap, np.ones(bap.shape[-1]), windows)
# When we use MGE training, denormalization should be done after MLPG.
mgc = P.inv_scale(mgc, Y_mean[ty][:mgc_dim // len(windows)],
Y_std[ty][:mgc_dim // len(windows)])
lf0 = P.inv_scale(lf0, Y_mean[ty][lf0_start_idx:lf0_start_idx + lf0_dim // len(windows)],
Y_std[ty][lf0_start_idx:lf0_start_idx + lf0_dim // len(windows)])
bap = P.inv_scale(bap, Y_mean[ty][bap_start_idx:bap_start_idx + bap_dim // len(windows)],
Y_std[ty][bap_start_idx:bap_start_idx + bap_dim // len(windows)])
vuv = P.inv_scale(vuv, Y_mean[ty][vuv_start_idx], Y_std[ty][vuv_start_idx])
else:
# Denormalization first
y_predicted = P.inv_scale(y_predicted, Y_mean, Y_std)
# Split acoustic features
mgc = y_predicted[:, :lf0_start_idx]
lf0 = y_predicted[:, lf0_start_idx:vuv_start_idx]
vuv = y_predicted[:, vuv_start_idx]
bap = y_predicted[:, bap_start_idx:]
# Perform MLPG
Y_var = Y_std[ty] * Y_std[ty]
mgc = paramgen.mlpg(mgc, Y_var[:lf0_start_idx], windows)
lf0 = paramgen.mlpg(lf0, Y_var[lf0_start_idx:vuv_start_idx], windows)
bap = paramgen.mlpg(bap, Y_var[bap_start_idx:], windows)
return mgc, lf0, vuv, bap
def gen_waveform(y_predicted, Y_mean, Y_std, post_filter=False, coef=1.4,
fs=16000, mge_training=True):
alpha = pysptk.util.mcepalpha(fs)
fftlen = fftlen = pyworld.get_cheaptrick_fft_size(fs)
frame_period = hp_acoustic.frame_period
# Generate parameters and split streams
mgc, lf0, vuv, bap = gen_parameters(y_predicted, Y_mean, Y_std, mge_training)
if post_filter:
mgc = merlin_post_filter(mgc, alpha, coef=coef)
spectrogram = pysptk.mc2sp(mgc, fftlen=fftlen, alpha=alpha)
aperiodicity = pyworld.decode_aperiodicity(bap.astype(np.float64), fs, fftlen)
f0 = lf0.copy()
f0[vuv < 0.5] = 0
f0[np.nonzero(f0)] = np.exp(f0[np.nonzero(f0)])
generated_waveform = pyworld.synthesize(f0.flatten().astype(np.float64),
spectrogram.astype(np.float64),
aperiodicity.astype(np.float64),
fs, frame_period)
# Convert range to int16
generated_waveform = generated_waveform / \
np.max(np.abs(generated_waveform)) * 32767
# return features as well to compare natural/genearted later
return generated_waveform, mgc, lf0, vuv, bap
def _generator_input(hp, x, seed=None):
if seed is not None:
torch.manual_seed(seed)
if hp.generator_add_noise:
z = torch.rand(x.size(0), x.size(1), hp.generator_noise_dim)
z = Variable(z)
return torch.cat((x, z), -1)
return x
def gen_duration(label_path, duration_model, X_min, X_max, Y_mean, Y_std):
# Linguistic features for duration
hts_labels = hts.load(label_path)
duration_linguistic_features = fe.linguistic_features(
hts_labels,
binary_dict, continuous_dict,
add_frame_features=hp_duration.add_frame_features,
subphone_features=hp_duration.subphone_features).astype(np.float32)
# Apply normali--post-filterzation
ty = "duration"
duration_linguistic_features = P.minmax_scale(
duration_linguistic_features,
X_min[ty], X_max[ty], feature_range=(0.01, 0.99))
# Apply models
duration_model.eval()
# Apply model
x = Variable(torch.from_numpy(duration_linguistic_features)).float()
xl = len(x)
x = x.view(1, -1, x.size(-1))
x = _generator_input(hp_duration, x)
x = x.cuda() if use_cuda else x
duration_predicted = duration_model(x, [xl]).data.cpu().numpy()
duration_predicted = duration_predicted.reshape(-1, duration_predicted.shape[-1])
# Apply denormalization
duration_predicted = P.inv_scale(duration_predicted, Y_mean[ty], Y_std[ty])
duration_predicted = np.round(duration_predicted)
# Set minimum state duration to 1
# print(duration_predicted)
duration_predicted[duration_predicted <= 0] = 1
hts_labels.set_durations(duration_predicted)
return hts_labels
def tts_from_label(models, label_path, X_min, X_max, Y_mean, Y_std,
post_filter=False,
apply_duration_model=True, coef=1.4, fs=16000,
mge_training=True):
duration_model, acoustic_model = models["duration"], models["acoustic"]
if use_cuda:
duration_model = duration_model.cuda()
acoustic_model = acoustic_model.cuda()
# Predict durations
if apply_duration_model:
duration_modified_hts_labels = gen_duration(
label_path, duration_model, X_min, X_max, Y_mean, Y_std)
else:
duration_modified_hts_labels = hts.load(label_path)
# Linguistic features
linguistic_features = fe.linguistic_features(
duration_modified_hts_labels,
binary_dict, continuous_dict,
add_frame_features=hp_acoustic.add_frame_features,
subphone_features=hp_acoustic.subphone_features)
# Trim silences
indices = duration_modified_hts_labels.silence_frame_indices()
linguistic_features = np.delete(linguistic_features, indices, axis=0)
# Apply normalization
ty = "acoustic"
linguistic_features = P.minmax_scale(
linguistic_features, X_min[ty], X_max[ty], feature_range=(0.01, 0.99))
# Predict acoustic features
acoustic_model.eval()
x = Variable(torch.from_numpy(linguistic_features)).float()
xl = len(x)
x = x.view(1, -1, x.size(-1))
x = _generator_input(hp_duration, x)
x = x.cuda() if use_cuda else x
acoustic_predicted = acoustic_model(x, [xl]).data.cpu().numpy()
acoustic_predicted = acoustic_predicted.reshape(-1, acoustic_predicted.shape[-1])
return gen_waveform(acoustic_predicted, Y_mean, Y_std, post_filter,
coef=coef, fs=fs, mge_training=mge_training)
def load_checkpoint(model, optimizer, checkpoint_path):
print("Load checkpoint from: {}".format(checkpoint_path))
checkpoint = torch.load(checkpoint_path)
model.load_state_dict(checkpoint["state_dict"])
if optimizer is not None:
optimizer.load_state_dict(checkpoint["optimizer"])
def get_lab_files(data_dir, label_dir, test=False):
if test:
files = NPYDataSource(join(data_dir, "X_acoustic"), test=True).collect_files()
else:
files = NPYDataSource(join(data_dir, "X_acoustic"), train=False).collect_files()
lab_files = list(map(
lambda f: join(label_dir, splitext(basename(f))[0] + ".lab"), files))
return lab_files
def get_wav_files(data_dir, wav_dir, test=False):
if test:
files = NPYDataSource(join(data_dir, "X_acoustic"), test=True).collect_files()
else:
files = NPYDataSource(join(data_dir, "X_acoustic"), train=False).collect_files()
wav_files = list(map(
lambda f: join(wav_dir, splitext(basename(f))[0] + ".wav"), files))
return wav_files
if __name__ == "__main__":
args = docopt(__doc__)
print("Command line args:\n", args)
acoustic_checkpoint = args["<acoustic_checkpoint>"]
duration_checkpoint = args["<duration_checkpoint>"]
data_dir = args["<data_dir>"]
labels_dir = args["<labels_dir>"]
outputs_dir = args["<outputs_dir>"]
post_filter = args["--post-filter"]
disable_duration_gen = args["--disable-duraton-gen"]
fs = int(args["--fs"])
# Collect stats and create models
X_min = {}
X_max = {}
Y_mean = {}
Y_var = {}
Y_std = {}
models = {"acoustic": {}, "duration": {}}
for typ in ["acoustic", "duration"]:
X_min[typ] = np.load(join(data_dir, "X_{}_data_min.npy".format(typ)))
X_max[typ] = np.load(join(data_dir, "X_{}_data_max.npy".format(typ)))
Y_mean[typ] = np.load(join(data_dir, "Y_{}_data_mean.npy".format(typ)))
Y_var[typ] = np.load(join(data_dir, "Y_{}_data_var.npy".format(typ)))
Y_std[typ] = np.sqrt(Y_var[typ])
hp = hp_acoustic if typ == "acoustic" else hp_duration
if hp.generator_params["in_dim"] is None:
D = X_min[typ].shape[-1]
if hp.generator_add_noise:
D = D + hp.generator_noise_dim
hp.generator_params["in_dim"] = D
if hp.generator_params["out_dim"] is None:
hp.generator_params["out_dim"] = Y_mean[typ].shape[-1]
models[typ] = getattr(gantts.models, hp.generator)(**hp.generator_params)
checkpoint_path = duration_checkpoint if hp == hp_duration \
else acoustic_checkpoint
load_checkpoint(models[typ], None, checkpoint_path)
print(models)
# Generate samples for
# 1. Evaluation set
# 2. Test set
eval_dir = join(outputs_dir, "eval")
test_dir = join(outputs_dir, "test")
if not exists(eval_dir):
os.makedirs(eval_dir)
if not exists(test_dir):
os.makedirs(test_dir)
eval_lab_files = get_lab_files(data_dir, labels_dir, test=False)
test_lab_files = get_lab_files(data_dir, labels_dir, test=True)
for dst_dir, files in [(eval_dir, eval_lab_files), (test_dir, test_lab_files)]:
for label_path in files:
print(dst_dir, label_path)
name = splitext(basename(label_path))[0]
dst_path = join(dst_dir, name + ".wav")
waveform, mgc, lf0, vuv, bap = tts_from_label(
models, label_path, X_min, X_max, Y_mean, Y_std,
apply_duration_model=not disable_duration_gen,
post_filter=post_filter, fs=fs)
wavfile.write(dst_path, fs, waveform.astype(np.int16))
sys.exit(0)
================================================
FILE: evaluation_vc.py
================================================
# coding: utf-8
"""Evaluation script for GAN-based VC models.
usage: evaluation_vc.py [options] <checkpoint> <data_dir> <wav_dir> <outputs_dir>
options:
-h, --help Show this help message and exit
--diffvc Enable DIFF VC.
"""
from docopt import docopt
import numpy as np
import torch
from torch import nn
from torch.autograd import Variable
from scipy.io import wavfile
import pysptk
from pysptk.synthesis import Synthesizer, MLSADF
import pyworld
import sys
import os
from os.path import splitext, join, abspath, basename, exists
from nnmnkwii import preprocessing as P
from nnmnkwii.paramgen import unit_variance_mlpg_matrix
from nnmnkwii.datasets import FileSourceDataset, FileDataSource
import gantts
from gantts.multistream import multi_stream_mlpg, get_static_features
from gantts.multistream import get_static_stream_sizes, select_streams
from gantts.seqloss import MaskedMSELoss, sequence_mask
from hparams import vc as hp
from train import NPYDataSource
def test_vc_from_path(model, x, fs, data_mean, data_std, diffvc=True):
model.eval()
hop_length = int(fs * (hp.frame_period * 0.001))
x = x.astype(np.float64)
f0, timeaxis = pyworld.dio(x, fs, frame_period=hp.frame_period)
f0 = pyworld.stonemask(x, f0, timeaxis, fs)
spectrogram = pyworld.cheaptrick(x, f0, timeaxis, fs)
aperiodicity = pyworld.d4c(x, f0, timeaxis, fs)
alpha = pysptk.util.mcepalpha(fs)
mc = pysptk.sp2mc(spectrogram, order=hp.order, alpha=alpha)
c0, mc = mc[:, 0], mc[:, 1:]
static_dim = mc.shape[-1]
mc = P.modspec_smoothing(mc, fs / hop_length, cutoff=50)
mc = P.delta_features(mc, hp.windows).astype(np.float32)
T = mc.shape[0]
inputs = mc[:, :static_dim].copy()
# Normalization
mc_scaled = P.scale(mc, data_mean, data_std)
mc_scaled = Variable(torch.from_numpy(mc_scaled))
lengths = [len(mc_scaled)]
# Add batch axis
mc_scaled = mc_scaled.view(1, -1, mc_scaled.size(-1))
# For MLPG
R = unit_variance_mlpg_matrix(hp.windows, T)
R = torch.from_numpy(R)
# Apply model
if model.include_parameter_generation():
# Case: models include parameter generation in itself
# Mulistream features cannot be used in this case
y_hat, y_hat_static = model(mc_scaled, R, lengths=lengths)
else:
# Case: generic models (can be sequence model)
assert hp.has_dynamic_features is not None
y_hat = model(mc_scaled, lengths=lengths)
y_hat_static = multi_stream_mlpg(
y_hat, R, hp.stream_sizes, hp.has_dynamic_features)
mc_static_pred = y_hat_static.data.cpu().numpy().reshape(-1, static_dim)
# Denormalize
mc_static_pred = P.inv_scale(
mc_static_pred, data_mean[:static_dim], data_std[:static_dim])
outputs = mc_static_pred.copy()
if diffvc:
mc_static_pred = mc_static_pred - mc[:, :static_dim]
mc = np.hstack((c0[:, None], mc_static_pred))
if diffvc:
mc[:, 0] = 0 # remove power coefficients
engine = Synthesizer(MLSADF(order=hp.order, alpha=alpha),
hopsize=hop_length)
b = pysptk.mc2b(mc.astype(np.float64), alpha=alpha)
waveform = engine.synthesis(x, b)
else:
fftlen = pyworld.get_cheaptrick_fft_size(fs)
spectrogram = pysptk.mc2sp(
mc.astype(np.float64), alpha=alpha, fftlen=fftlen)
waveform = pyworld.synthesize(
f0, spectrogram, aperiodicity, fs, hp.frame_period)
return waveform, inputs, outputs
def load_checkpoint(model, optimizer, checkpoint_path):
print("Load checkpoint from: {}".format(checkpoint_path))
checkpoint = torch.load(checkpoint_path)
model.load_state_dict(checkpoint["state_dict"])
if optimizer is not None:
optimizer.load_state_dict(checkpoint["optimizer"])
def get_wav_files(data_dir, wav_dir, test=False):
if test:
files = NPYDataSource(join(data_dir, "X"), test=True).collect_files()
else:
files = NPYDataSource(join(data_dir, "X"), train=False).collect_files()
wav_files = list(map(
lambda f: join(wav_dir, splitext(basename(f))[0] + ".wav"), files))
return wav_files
if __name__ == "__main__":
args = docopt(__doc__)
print("Command line args:\n", args)
checkpoint_path = args["<checkpoint>"]
data_dir = args["<data_dir>"]
wav_dir = args["<wav_dir>"]
outputs_dir = args["<outputs_dir>"]
diffvc = args["--diffvc"]
# Collect stats
data_mean = np.load(join(data_dir, "data_mean.npy"))
data_var = np.load(join(data_dir, "data_var.npy"))
data_std = np.sqrt(data_var)
if hp.generator_params["in_dim"] is None:
hp.generator_params["in_dim"] = data_mean.shape[-1]
if hp.generator_params["out_dim"] is None:
hp.generator_params["out_dim"] = data_mean.shape[-1]
# Model
model = getattr(gantts.models, hp.generator)(**hp.generator_params)
load_checkpoint(model, None, checkpoint_path)
print(model)
# Generate samples for
# 1. Evaluation set
# 2. Test set
eval_dir = join(outputs_dir, "eval")
test_dir = join(outputs_dir, "test")
if not exists(eval_dir):
os.makedirs(eval_dir)
if not exists(test_dir):
os.makedirs(test_dir)
eval_files = get_wav_files(data_dir, wav_dir, test=False)
test_files = get_wav_files(data_dir, wav_dir, test=True)
for dst_dir, files in [(eval_dir, eval_files), (test_dir, test_files)]:
for path in files:
print(dst_dir, path)
name = splitext(basename(path))[0]
dst_path = join(dst_dir, name + ".wav")
fs, x = wavfile.read(path)
waveform, _, _ = test_vc_from_path(
model, x, fs, data_mean, data_std, diffvc=diffvc)
wavfile.write(dst_path, fs, waveform.astype(np.int16))
sys.exit(0)
================================================
FILE: gantts/__init__.py
================================================
# coding: utf-8
from __future__ import with_statement, print_function, absolute_import
from .version import __version__
from gantts import models
================================================
FILE: gantts/models.py
================================================
# coding: utf-8
import torch
from torch import nn
from torch.autograd import Variable
import numpy as np
from nnmnkwii.autograd import unit_variance_mlpg
class AbstractModel(object):
"""Interface for VC and TTS models
"""
def include_parameter_generation(self):
"""Whether model includes parameter generation or not.
"""
return False
class In2OutHighwayNet(AbstractModel, nn.Module):
"""Input-to-Output Highway Networks for voice conversion.
Trying to replicate the model described in the following paper:
https://www.jstage.jst.go.jp/article/transinf/E100.D/8/E100.D_2017EDL8034/
.. note::
Since model architecture itself includes parameter generation, we cannot
simply use the model for multi-stream features (e.g., in TTS, acoustic
features often consist multiple features; mgc, f0, vuv and bap.)
"""
def __init__(self, in_dim=118, out_dim=118, static_dim=118 // 2,
num_hidden=3, hidden_dim=512, dropout=0.5):
super(In2OutHighwayNet, self).__init__()
self.static_dim = static_dim
self.relu = nn.LeakyReLU(inplace=True)
self.sigmoid = nn.Sigmoid()
# Transform gate (can be deep?)
self.T = nn.Linear(static_dim, static_dim)
# Hidden layers
in_sizes = [in_dim] + [hidden_dim] * (num_hidden - 1)
out_sizes = [hidden_dim] * num_hidden
self.H = nn.ModuleList(
[nn.Linear(in_size, out_size) for (in_size, out_size)
in zip(in_sizes, out_sizes)])
self.last_linear = nn.Linear(hidden_dim, out_dim)
self.dropout = nn.Dropout(dropout)
def include_parameter_generation(self):
return True
def forward(self, x, R, lengths=None):
# Add batch axis
x = x.unsqueeze(0) if x.dim() == 2 else x
x_static = x[:, :, :self.static_dim]
# T(x)
Tx = self.sigmoid(self.T(x_static))
# G(x)
for layer in self.H:
x = self.dropout(self.relu(layer(x)))
x = self.last_linear(x)
Gx = unit_variance_mlpg(R, x)
# y^ = x + T(x) * G(x)
return x, x_static + Tx * Gx
class In2OutRNNHighwayNet(AbstractModel, nn.Module):
def __init__(self, in_dim=118, out_dim=118, static_dim=118 // 2,
num_hidden=3, hidden_dim=512, bidirectional=False, dropout=0.5):
super(In2OutRNNHighwayNet, self).__init__()
self.static_dim = static_dim
self.num_direction = 2 if bidirectional else 1
self.relu = nn.LeakyReLU(inplace=True)
self.sigmoid = nn.Sigmoid()
# Transform gate (can be deep?)
self.T = nn.Linear(static_dim, static_dim)
# Recurrent hidden layers
self.lstm = nn.LSTM(in_dim, hidden_dim, num_hidden, batch_first=True,
bidirectional=bidirectional, dropout=dropout)
self.hidden2out = nn.Linear(hidden_dim * self.num_direction, out_dim)
self.dropout = nn.Dropout(dropout)
def include_parameter_generation(self):
return True
def forward(self, x, R, lengths=None):
# Add batch axis
x = x.unsqueeze(0) if x.dim() == 2 else x
x_static = x[:, :, :self.static_dim]
# T(x)
Tx = self.sigmoid(self.T(x_static))
# Pack padded sequence for CuDNN
if isinstance(lengths, Variable):
lengths = lengths.data.cpu().long().numpy()
if lengths is not None:
inputs = nn.utils.rnn.pack_padded_sequence(
x, lengths, batch_first=True)
else:
inputs = x
# G(x)
output, _ = self.lstm(inputs)
if lengths is not None:
output, _ = nn.utils.rnn.pad_packed_sequence(output, batch_first=True)
output = self.hidden2out(output)
Gx = unit_variance_mlpg(R, output)
# y^ = x + T(x) * G(x)
return x, x_static + Tx * Gx
class MLP(AbstractModel, nn.Module):
def __init__(self, in_dim=118, out_dim=1, num_hidden=2, hidden_dim=256,
dropout=0.5, last_sigmoid=True, bidirectional=None):
# bidirectional is dummy
super(MLP, self).__init__()
in_sizes = [in_dim] + [hidden_dim] * (num_hidden - 1)
out_sizes = [hidden_dim] * num_hidden
self.layers = nn.ModuleList(
[nn.Linear(in_size, out_size) for (in_size, out_size)
in zip(in_sizes, out_sizes)])
self.last_linear = nn.Linear(hidden_dim, out_dim)
self.relu = nn.LeakyReLU(inplace=True)
self.sigmoid = nn.Sigmoid()
self.dropout = nn.Dropout(dropout)
self.last_sigmoid = last_sigmoid
def forward(self, x, lengths=None):
for layer in self.layers:
x = self.dropout(self.relu(layer(x)))
x = self.last_linear(x)
return self.sigmoid(x) if self.last_sigmoid else x
# needs https://github.com/taolei87/sru
class SRURNN(AbstractModel, nn.Module):
def __init__(self, in_dim=118, out_dim=118, num_hidden=2, hidden_dim=256,
bidirectional=False, dropout=0, last_sigmoid=False,
use_relu=0, rnn_dropout=0.0):
super(SRURNN, self).__init__()
from cuda_functional import SRU
self.num_direction = 2 if bidirectional else 1
self.gru = SRU(in_dim, hidden_dim, num_hidden,
bidirectional=bidirectional, dropout=dropout,
use_relu=use_relu, rnn_dropout=rnn_dropout)
self.hidden2out = nn.Linear(hidden_dim * self.num_direction, out_dim)
self.sigmoid = nn.Sigmoid()
self.last_sigmoid = last_sigmoid
def forward(self, sequence, lengths):
# Batch first -> Time first
sequence = sequence.transpose(0, 1)
output, _ = self.gru(sequence)
# Time first -> Batch first
output = output.transpose(0, 1)
output = self.hidden2out(output)
return self.sigmoid(output) if self.last_sigmoid else output
class GRURNN(AbstractModel, nn.Module):
def __init__(self, in_dim=118, out_dim=118, num_hidden=2, hidden_dim=256,
bidirectional=False, dropout=0, last_sigmoid=False):
super(GRURNN, self).__init__()
self.num_direction = 2 if bidirectional else 1
self.gru = nn.LSTM(in_dim, hidden_dim, num_hidden, batch_first=True,
bidirectional=bidirectional, dropout=dropout)
self.hidden2out = nn.Linear(hidden_dim * self.num_direction, out_dim)
self.sigmoid = nn.Sigmoid()
self.last_sigmoid = last_sigmoid
def forward(self, sequence, lengths):
if isinstance(lengths, Variable):
lengths = lengths.data.cpu().long().numpy()
sequence = nn.utils.rnn.pack_padded_sequence(
sequence, lengths, batch_first=True)
output, _ = self.gru(sequence)
output, _ = nn.utils.rnn.pad_packed_sequence(output, batch_first=True)
output = self.hidden2out(output)
return self.sigmoid(output) if self.last_sigmoid else output
class LSTMRNN(AbstractModel, nn.Module):
def __init__(self, in_dim=118, out_dim=118, num_hidden=2, hidden_dim=256,
bidirectional=False, dropout=0, last_sigmoid=False):
super(LSTMRNN, self).__init__()
self.num_direction = 2 if bidirectional else 1
self.lstm = nn.LSTM(in_dim, hidden_dim, num_hidden, batch_first=True,
bidirectional=bidirectional, dropout=dropout)
self.hidden2out = nn.Linear(hidden_dim * self.num_direction, out_dim)
self.sigmoid = nn.Sigmoid()
self.last_sigmoid = last_sigmoid
def forward(self, sequence, lengths):
if isinstance(lengths, Variable):
lengths = lengths.data.cpu().long().numpy()
sequence = nn.utils.rnn.pack_padded_sequence(
sequence, lengths, batch_first=True)
output, _ = self.lstm(sequence)
output, _ = nn.utils.rnn.pad_packed_sequence(output, batch_first=True)
output = self.hidden2out(output)
return self.sigmoid(output) if self.last_sigmoid else output
================================================
FILE: gantts/multistream.py
================================================
# coding: utf-8
# Utils for multi-stream features
import torch
from torch import nn
from torch.autograd import Variable
import numpy as np
from nnmnkwii.autograd import unit_variance_mlpg
from nnmnkwii import preprocessing as P
def recompute_delta_features(Y, Y_data_mean, Y_data_std,
windows,
stream_sizes=[180, 3, 1, 3],
has_dynamic_features=[True, True, False, True]):
start_indices = np.hstack(([0], np.cumsum(stream_sizes)[:-1]))
end_indices = np.cumsum(stream_sizes)
static_stream_sizes = get_static_stream_sizes(
stream_sizes, has_dynamic_features, len(windows))
for start_idx, end_idx, static_size, has_dynamic in zip(
start_indices, end_indices, static_stream_sizes, has_dynamic_features):
if has_dynamic:
y_static = Y[:, start_idx:start_idx + static_size]
Y[:, start_idx:end_idx] = P.delta_features(y_static, windows)
return Y
def select_streams(inputs, stream_sizes=[60, 1, 1, 1],
streams=[True, True, True, True]):
ret = []
start_indices = np.hstack(([0], np.cumsum(stream_sizes)[:-1]))
for start_idx, size, enabled in zip(
start_indices, stream_sizes, streams):
if not enabled:
continue
ret.append(inputs[:, :, start_idx:start_idx + size])
return torch.cat(ret, dim=-1)
def get_static_stream_sizes(stream_sizes, has_dynamic_features, num_windows):
"""Get static dimention for each feature stream.
"""
static_stream_sizes = np.array(stream_sizes)
static_stream_sizes[has_dynamic_features] = \
static_stream_sizes[has_dynamic_features] / num_windows
return static_stream_sizes
def get_static_features(inputs, num_windows, stream_sizes=[180, 3, 1, 3],
has_dynamic_features=[True, True, False, True],
streams=[True, True, True, True]):
"""Get static features from static+dynamic features.
"""
_, _, D = inputs.size()
if stream_sizes is None or (len(stream_sizes) == 1 and has_dynamic_features[0]):
return inputs[:, :, :D // num_windows]
if len(stream_sizes) == 1 and not has_dynamic_features[0]:
return inputs
# Multi stream case
ret = []
start_indices = np.hstack(([0], np.cumsum(stream_sizes)[:-1]))
for start_idx, size, v, enabled in zip(
start_indices, stream_sizes, has_dynamic_features, streams):
if not enabled:
continue
if v:
static_features = inputs[:, :, start_idx:start_idx + size // num_windows]
else:
static_features = inputs[:, :, start_idx:start_idx + size]
ret.append(static_features)
return torch.cat(ret, dim=-1)
def multi_stream_mlpg(inputs, R,
stream_sizes=[180, 3, 1, 3],
has_dynamic_features=[True, True, False, True],
streams=[True, True, True, True]):
"""Split streams and do apply MLPG if stream has dynamic features.
"""
if R is None:
num_windows = 1
else:
num_windows = R.size(1) / R.size(0)
B, T, D = inputs.size()
if D != sum(stream_sizes):
raise RuntimeError("You probably have specified wrong dimention params.")
# Straem indices for static+delta features
# [0, 180, 183, 184]
start_indices = np.hstack(([0], np.cumsum(stream_sizes)[:-1]))
# [180, 183, 184, 187]
end_indices = np.cumsum(stream_sizes)
# Stream sizes for static features
# [60, 1, 1, 1]
static_stream_sizes = get_static_stream_sizes(
stream_sizes, has_dynamic_features, num_windows)
# [0, 60, 61, 62]
static_stream_start_indices = np.hstack(
([0], np.cumsum(static_stream_sizes)[:-1]))
# [60, 61, 62, 63]
static_stream_end_indices = np.cumsum(static_stream_sizes)
ret = []
for in_start_idx, in_end_idx, out_start_idx, out_end_idx, v, enabled in zip(
start_indices, end_indices, static_stream_start_indices,
static_stream_end_indices, has_dynamic_features, streams):
if not enabled:
continue
x = inputs[:, :, in_start_idx:in_end_idx]
y = unit_variance_mlpg(R, x) if v else x
ret.append(y)
return torch.cat(ret, dim=-1)
================================================
FILE: gantts/seqloss.py
================================================
# coding: utf-8
import torch
from torch import nn
from torch.autograd import Variable
import numpy as np
def sequence_mask(sequence_length, max_len=None):
if max_len is None:
max_len = sequence_length.data.max()
batch_size = sequence_length.size(0)
seq_range = torch.arange(0, max_len).long()
seq_range_expand = seq_range.unsqueeze(0).expand(batch_size, max_len)
seq_range_expand = Variable(seq_range_expand)
if sequence_length.is_cuda:
seq_range_expand = seq_range_expand.cuda()
seq_length_expand = sequence_length.unsqueeze(1) \
.expand_as(seq_range_expand)
return (seq_range_expand < seq_length_expand).float()
# Adapted from:
# https://github.com/facebookresearch/loop/blob/master/model.py
class MaskedMSELoss(nn.Module):
def __init__(self):
super(MaskedMSELoss, self).__init__()
self.criterion = nn.MSELoss(reduction="sum")
def forward(self, input, target, lengths=None, mask=None, max_len=None):
if lengths is None and mask is None:
raise RuntimeError("Should provide either lengths or mask")
# (B, T, 1)
if mask is None:
mask = sequence_mask(lengths, max_len).unsqueeze(-1)
# (B, T, D)
mask_ = mask.expand_as(input)
loss = self.criterion(input * mask_, target * mask_)
return loss / mask.sum()
================================================
FILE: generated/.gitignore
================================================
*
!.gitignore
================================================
FILE: hparams.py
================================================
# coding: utf-8
import tensorflow as tf
import numpy as np
from os.path import join, dirname
def hparams_debug_string(params):
values = params.values()
hp = [' %s: %s' % (name, values[name]) for name in sorted(values)]
return 'Hyperparameters:\n' + '\n'.join(hp)
# Hyper parameters for voice conversion
vc = tf.contrib.training.HParams(
name="vc",
# Acoustic features
order=59,
frame_period=5,
windows=[
(0, 0, np.array([1.0])),
(1, 1, np.array([-0.5, 0.0, 0.5])),
(1, 1, np.array([1.0, -2.0, 1.0])),
],
stream_sizes=[59 * 3],
has_dynamic_features=[True],
adversarial_streams=[True],
# In vc, 0-th coefficients are masked in feature extraction stage.
mask_nth_mgc_for_adv_loss=0,
# Generator
# For RNN VC, use In2OutRNNHighwayNet
generator_add_noise=False,
generator_noise_dim=200,
generator="In2OutHighwayNet",
generator_params={
"in_dim": None,
"out_dim": None,
"num_hidden": 3,
"hidden_dim": 512,
# "bidirectional": True,
"static_dim": 59,
"dropout": 0.5,
},
optimizer_g="Adagrad",
optimizer_g_params={
"lr": 0.01,
"weight_decay": 0,
},
# Discriminator
discriminator_linguistic_condition=False,
discriminator="MLP",
discriminator_params={
"in_dim": 59,
"out_dim": 1,
"num_hidden": 2,
"hidden_dim": 256,
"dropout": 0.5,
"last_sigmoid": True,
},
optimizer_d="Adagrad",
optimizer_d_params={
"lr": 0.01,
"weight_decay": 0,
},
# This should be overrided
nepoch=200,
# LR schedule
lr_decay_schedule=False,
lr_decay_epoch=10,
# Datasets and data loader
batch_size=20,
num_workers=1,
pin_memory=True,
cache_size=1200,
)
# Hyper paramters for TTS duration model
tts_duration = tf.contrib.training.HParams(
name="duration",
# Linguistic features
use_phone_alignment=False,
subphone_features=None,
add_frame_features=False,
question_path=join(dirname(__file__), "nnmnkwii_gallery", "data",
"questions-radio_dnn_416.hed"),
# Duration features
windows=[
(0, 0, np.array([1.0])),
],
stream_sizes=[5],
has_dynamic_features=[False],
recompute_delta_features=False,
# Streams used for computing adversarial loss
adversarial_streams=[True],
mask_nth_mgc_for_adv_loss=0,
# Generator
generator="SRURNN",
generator_add_noise=False,
generator_noise_dim=200,
generator_params={
"in_dim": None, # None wil be set automatically
"out_dim": None,
"num_hidden": 6,
"hidden_dim": 512,
"bidirectional": True,
"dropout": 0.0,
"use_relu": 1,
"rnn_dropout": 0.2,
"last_sigmoid": False,
},
optimizer_g="Adam",
optimizer_g_params={
"lr": 0.001,
"betas": (0.5, 0.9),
"weight_decay": 0,
},
# Discriminator
discriminator_linguistic_condition=True,
discriminator="MLP",
discriminator_params={
"in_dim": None, # None wil be set automatically
"out_dim": 1,
"num_hidden": 3,
"hidden_dim": 256,
# "bidirectional": True,
"dropout": 0.0,
"last_sigmoid": True,
},
optimizer_d="Adam",
optimizer_d_params={
"lr": 0.001,
"betas": (0.5, 0.9),
"weight_decay": 0,
},
# This should be overrided
nepoch=200,
# LR schedule
lr_decay_schedule=False,
lr_decay_epoch=25,
# Datasets and data loader
batch_size=32,
num_workers=1,
pin_memory=True,
cache_size=1200,
)
# Hyper paramters for TTS acoustic model
tts_acoustic = tf.contrib.training.HParams(
name="acoustic",
# Linguistic
use_phone_alignment=False,
subphone_features="full",
add_frame_features=True,
question_path=join(dirname(__file__), "nnmnkwii_gallery", "data",
"questions-radio_dnn_416.hed"),
# Acoustic features
order=59,
frame_period=5,
f0_floor=71.0,
f0_ceil=700,
use_harvest=True, # If False, use dio and stonemask
windows=[
(0, 0, np.array([1.0])),
(1, 1, np.array([-0.5, 0.0, 0.5])),
(1, 1, np.array([1.0, -2.0, 1.0])),
],
f0_interpolation_kind="quadratic",
mod_spec_smoothing=True,
mod_spec_smoothing_cutoff=50, # Hz
recompute_delta_features=False,
# Stream info
# (mgc, lf0, vuv, bap)
stream_sizes=[180, 3, 1, 3],
has_dynamic_features=[True, True, False, True],
# Streams used for computing adversarial loss
# NOTE: you should probably change discriminator's `in_dim`
# if you change the adv_streams
adversarial_streams=[True, False, False, False],
# Don't set the value > 0 unless you are sure what you are doing
# mask 0 to n-th mgc for adversarial loss
# e.g, for n=2, 0-th and 1-th mgc coefficients will be masked
mask_nth_mgc_for_adv_loss=2,
# Generator
generator_add_noise=False,
generator_noise_dim=200,
generator="SRURNN",
generator_params={
"in_dim": None, # None wil be set automatically
"out_dim": None,
"num_hidden": 6,
"hidden_dim": 512,
"bidirectional": True,
"dropout": 0.2,
"use_relu": 1,
"rnn_dropout": 0.2,
"last_sigmoid": False,
},
optimizer_g="Adagrad",
optimizer_g_params={
"lr": 0.01,
"weight_decay": 1e-7,
},
# Discriminator
discriminator_linguistic_condition=True,
discriminator="MLP",
discriminator_params={
"in_dim": None, # None wil be set automatically
"out_dim": 1,
"num_hidden": 3,
"hidden_dim": 256,
"dropout": 0.5,
"last_sigmoid": True,
},
optimizer_d="Adagrad",
optimizer_d_params={
"lr": 0.01,
"weight_decay": 1e-7,
},
# This should be overrided
nepoch=200,
# LR schedule
lr_decay_schedule=False,
lr_decay_epoch=25,
# Datasets and data loader
batch_size=20,
num_workers=1,
pin_memory=True,
cache_size=1200,
)
================================================
FILE: notebooks/Test RNN VC.ipynb
================================================
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The effects of adversarial training in voice conversion\n",
"\n",
"Minimum generation error (MGE) training vs Adversarial training. Generated audio samples are available at the middle of the notebook.\n",
"\n",
"Code: https://github.com/r9y9/gantts\n",
"\n",
"### Refereneces\n",
"\n",
"- [Yuki Saito, Shinnosuke Takamichi, Hiroshi Saruwatari, \"Statistical Parametric Speech Synthesis Incorporating Generative Adversarial Networks\", arXiv:1709.08041 [cs.SD], Sep. 2017](https://arxiv.org/abs/1709.08041)\n",
"- [Yuki Saito, Shinnosuke Takamichi, and Hiroshi Saruwatari, \"Training algorithm to deceive anti-spoofing verification for DNN-based text-to-speech synthesis,\" IPSJ SIG Technical Report, 2017-SLP-115, no. 1, pp. 1-6, Feb., 2017. (in Japanese)](http://sython.org/papers/SIG-SLP/saito201702slp.pdf)\n",
"- [Yuki Saito, Shinnosuke Takamichi, and Hiroshi Saruwatari, \"Voice conversion using input-to-output highway networks,\" IEICE Transactions on Information and Systems, Vol.E100-D, No.8, pp.1925--1928, Aug. 2017](https://www.jstage.jst.go.jp/article/transinf/E100.D/8/E100.D_2017EDL8034/_article)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"rcParams[\"figure.figsize\"] = (16,5)\n",
"\n",
"import sys\n",
"sys.path.insert(0, \"..\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import torch\n",
"\n",
"from scipy.io import wavfile\n",
"import pysptk\n",
"from pysptk.synthesis import Synthesizer, MLSADF\n",
"import pyworld\n",
"from os.path import join, basename\n",
"\n",
"from nnmnkwii import preprocessing as P\n",
"from nnmnkwii.paramgen import unit_variance_mlpg_matrix\n",
"\n",
"import gantts\n",
"from hparams import vc as hp\n",
"\n",
"import librosa\n",
"import librosa.display\n",
"import IPython\n",
"from IPython.display import Audio"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data_dir = \"../data/cmu_arctic_vc/\"\n",
"clb_wav_dir = \"/home/ryuichi/data/cmu_arctic/cmu_us_clb_arctic/wav/\"\n",
"slt_wav_dir = \"/home/ryuichi/data/cmu_arctic/cmu_us_slt_arctic/wav/\"\n",
"\n",
"data_mean = np.load(join(data_dir, \"data_mean.npy\"))\n",
"data_var = np.load(join(data_dir, \"data_var.npy\"))\n",
"data_std = np.sqrt(data_var)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"if hp.generator_params[\"in_dim\"] is None:\n",
" hp.generator_params[\"in_dim\"] = data_mean.shape[-1]\n",
"if hp.generator_params[\"out_dim\"] is None:\n",
" hp.generator_params[\"out_dim\"] = data_mean.shape[-1]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"fs = 16000\n",
"hop_length = int(fs * (hp.frame_period * 0.001))\n",
"fftlen = pyworld.get_cheaptrick_fft_size(fs)\n",
"static_dim = hp.order\n",
"checkpoints_dir = \"../checkpoints/vc_test_in2out_bilstm_again/\"\n",
"epoch = 200"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Models"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Baseline: In2out highway networks"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"In2OutRNNHighwayNet (\n",
" (relu): LeakyReLU (0.01, inplace)\n",
" (sigmoid): Sigmoid ()\n",
" (T): Linear (59 -> 59)\n",
" (lstm): LSTM(177, 512, num_layers=3, batch_first=True, dropout=0.5, bidirectional=True)\n",
" (hidden2out): Linear (1024 -> 177)\n",
" (dropout): Dropout (p = 0.5)\n",
")\n",
"Load checkpoint from: ../checkpoints/vc_test_in2out_bilstm_again/baseline/checkpoint_epoch200_Generator.pth\n"
]
}
],
"source": [
"model_in2out = getattr(gantts.models, hp.generator)(**hp.generator_params)\n",
"print(model_in2out)\n",
"\n",
"checkpoint_path = join(checkpoints_dir, \"baseline/checkpoint_epoch{}_Generator.pth\".format(epoch))\n",
"print(\"Load checkpoint from: {}\".format(checkpoint_path))\n",
"checkpoint = torch.load(checkpoint_path)\n",
"model_in2out.load_state_dict(checkpoint[\"state_dict\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### GAN"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"In2OutRNNHighwayNet (\n",
" (relu): LeakyReLU (0.01, inplace)\n",
" (sigmoid): Sigmoid ()\n",
" (T): Linear (59 -> 59)\n",
" (lstm): LSTM(177, 512, num_layers=3, batch_first=True, dropout=0.5, bidirectional=True)\n",
" (hidden2out): Linear (1024 -> 177)\n",
" (dropout): Dropout (p = 0.5)\n",
")\n",
"Load checkpoint from: ../checkpoints/vc_test_in2out_bilstm_again/gan/checkpoint_epoch200_Generator.pth\n"
]
}
],
"source": [
"model_gan = getattr(gantts.models, hp.generator)(**hp.generator_params)\n",
"print(model_gan)\n",
"\n",
"checkpoint_path = join(checkpoints_dir, \"gan/checkpoint_epoch{}_Generator.pth\".format(epoch))\n",
"print(\"Load checkpoint from: {}\".format(checkpoint_path))\n",
"checkpoint = torch.load(checkpoint_path)\n",
"model_gan.load_state_dict(checkpoint[\"state_dict\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare generated audio samples\n",
"\n",
"Baseline vs GAN"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"arctic_a0496.wav : source, target, baseline, GAN\n"
]
},
{
"data": {
"text/html": [
"\n",
" <audio controls=\"controls\" >\n",
" <source src=\"data:audio/wav;base64,UklGRsRKAQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YaBKAQAAAAAA/f/9/wQA/P8AAPz/BAD8/wAA/P///wAABgD9/wQA/f8BAAAA///8/wAAAAAEAPr//P8BAPr/AwD8/wAA/f8BAAQAAwADAAYABgD//wQAAwD///z/BgD8/wMAAAAGAAMA/P/9/wAAAwD6/wAA/P/9/wEAAAD6/wAA+v/6//z///8BAAAAAQD9/wAA/f8AAAYA+v8AAAYABAD8//r//f8EAAAAAwAEAP//BgADAAQABgAAAAAA//8AAAYA/P8EAAMAAAD9//z/+v8AAP///P8AAAEAAQADAAAABgAGAAEAAwAGAAAA/f/9/wQA+v/9/wYA//8AAAQABgAGAPz/AAD9/wMAAAADAPz/AAAGAAQABgD//////f//////AAAAAAQAAQAAAAQABAABAAAAAAD6/wEABgD///3/AAD9/wYAAAABAAQABAD9/wEAAwD8/wMA///8/wEAAQAAAP3/BgAGAAAAAQAGAAMAAwD6/wYA//8DAAEAAAAAAAMA/f8AAP3/AwAAAAEA/P/6/wYABAD9/wAAAwD8/wAA+v8AAP//BgAAAP///f8EAP//AwADAP////8BAAYA//8AAAAA+v8DAAAA//8BAP3/BgD6/wQA/f////r/AQD9/wAA///9/wEA///9//r/BAAEAAQA/P8EAAAA+v8AAP3/AAD6//3/+v8AAPz//f/9//z/+v/9/wQAAQADAP3//f8DAPr/+v8AAAYA/P/6/////P8GAP//AQD9//z/AAD6/wEAAQD//wQA/f8EAPr/+v/8/wYA/P8AAAAA/f8AAAQA/f8AAPz/AAAEAAQAAQAAAP//AAD9/wMABAAAAAEA/f/9/wAAAAD6//z///8BAAQABAD8/wYAAQAAAAEABgABAAMAAwD9//z//////wMABAAEAPz/AwAGAPz/AwADAAAA+v8AAP//AAAAAAAAAAABAAEAAwD//wQA+v8AAP//AAD6//z/AwAAAP//+v8AAAQA/f8AAP///P8AAP3/AAADAP//BgABAAEAAAAAAAYA+v8AAAEAAQAAAAEAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAEAAAAAAPz/AQABAAAAAAAGAAQABgAGAAAA+v8BAAEA/f8GAAMABgD8/wAABgABAAAA//8AAPz//P////r/BAD9////BAD8/wMA/P8BAP3/BAAAAP3/AAAAAAAABgD//wQABAD6/wMA/f8BAAEA/P8GAP3/AwD6//3/AwD6/wAA/f8AAAAAAAAAAPr//P/6/wQABAADAP/////6/wEABgAGAAEAAQAEAP////8GAAAABgD//wAAAwD8//z/+v///wMAAAADAAAAAQD//wEAAAAGAP3/BAD9/wMAAwD6/wQAAwADAAAAAwD//wYA/P/8////+v/8/////P/8/wEABAAAAAYA//8GAAYA+v/8/wYABAAAAAQA/P/8/wQAAwABAP//AAAAAP3//////wAA//////////8AAP////////3////9//3////9//3//f/9//3//f/9//3//f/9//3//f/9//3///////3//f/9//3//f///////f/9//3//f/9/////f/9//3//f/9//3//f/8//z//P/9//z//P/8//r//P/6//r/+v/6//r/+f/5//r/+f/5//f/+f/5//b/9//2//b/9v/2//b/9v/2//T/9P/2//P/8//z//P/8//z//P/8//z//P/8//z//P/8f/x/+7/8f/w/+7/7v/u/+7/7v/s/+v/6//r/+z/6//p/+n/6f/p/+n/6f/p/+j/5v/p/+n/6f/p/+X/5f/l/+X/5f/i/+P/4//i/+D/4P/j/+P/4//i/+L/4//i/9//4P/j/+D/4v/g/+P/4v/i/+L/4P/l/+P/4//l/+X/5f/m/+b/5f/m/+X/6P/o/+b/5v/o/+n/6f/p/+n/6P/m/+j/6P/r/+v/6f/p/+z/7v/w//H/8P/w//H/8f/x//P/9P/0//T/9P/3//f/9//3//n/+f/5//r/+f/6//3//f///wAAAAABAAMAAAADAAMAAwAEAAMABAABAAAAAQAAAAAABAAGAAYACgAKAAoACgAKAAkACgAMAAkACQADAAAAAAD9//3///8AAAAABAAAAAQAAQAEAAEABwAAAAAAAwDp/+7/4//8//r/9P/p//H/+v/3/wAA+v8AAAEAEgAKAP3/8//z//3//f/9//f//f8AAAEAAQAEAAkADwASAA8ADwAJAA8ADwAQABcAGAAUAA0ACQAKABQAFwAaABoAGAAdABgAEgAQABgAIAAjACMAGwAYABIADwAPAA8AEgAVAA8ADAAPAA0ADwAQABcAGwAYABoAGAASAA0ACgANAA0ACgAJAAcABAAAAAAABgANAA8ADwAMAAcAAAD9/wAAAAAEAAQABgADAAMAAAAAAAEACgANAA0ADQAMAA0ADAAMAA8AEgAVABcAFQASABAAEAAUABsAIQAjACEAIQAjACMAIwAjACwALgAsACsAJAAhACQAHgAjACkALAAvACwANAAsACgAKwAsADEAKwAuAC4AMgAxADUAPQA0AC4AKAAmACEAIwArACsALAAmACQAKQApACMAKQAxAC4AIwAhABcADAAQAA0AFwAgAB0AIAAhABgAFwAbABsAIQAgABgAFAAPAAoADAAPAAkADwAYAA8ABwAMAAwADwASABIAEAASAA0ABAAKAA0ABwAJAAoAAAABAA8ADwAQABoAGAAaABcADAAJAA0AFQAVABoAGgAVAA8ADAAHAAwAFAAdACAAGgAaABQAEAASAA8AFQAbABsAFAANAAcABgAGAAoAEgAUAA0ACgAMAAcABAAKABQAFAASAAwABgAEAAAAAQABAAQABAAAAAAA+v8BAAAAAQAHAAYACgAMAA0ABgAAAAAABgAEAAAAAAD//////f8AAAAAAwAEAAMAAwAAAAMAAwADAAYAAwAAAAAABAADAP3/AAAAAPz/AwAAAAAAAwD9//3/AAD9/wAAAAADAPr/+v/9/wAA/f/3//3//f/8//z//P8AAPn//f8AAP3//f/9/wAAAAD8//z//f8AAAMA/f/9/wAA/f8AAAMAAAADAAMAAAADAAcACQAEAAkABwAHAAoACgAKAAcACgAHAAcACgAHAAQABwAHAAcABwAHAAwADAAEAAoACgAHAAoABwAKAAQABAAKAAQAAwAKAAcACgAKAAcADwAKAA0ADwAPAA8ADQAKAA0ADwAKAAcADQANAA0ADQANAA0ACgAKAA0ABAAEAAcABwAHAAQAAwADAAAAAAAEAAAA/f/9/wAA/f8AAPr/+v/6//r/+v/z//P/8//s//D/7P/s/+n/8P/z/+b/7P/p/+z/7P/m/+z/6f/m/+z/8P/p/+n/5v/m//D/8P/p/+z/7P/p//D/8P/w/+n/8//w/+v/8//z//f/9P/0//T/9//3//f/+v/6//3/9//3//r//f/2//b/9v/6//r/+v/9//3/+v/6//3/+v/6//b//f/2//n/AAD5//3/+f/5//3//f/2//3/AAD5/wAA/f8AAAAAAwD9//3//f8AAAAAAAAEAP//////////AAD9/wAAAAD9/wAAAAD/////AAAAAAAA/////////f/w//P/+f/w//b/9v/s//b/8//z//P/8//2//b/9v/z//b/9P/5//n/+f/5///////5////AAD5////9P/9/wAA//8AAAAABAAEAP//AAADAAYAAwAGAAoACgADAAAACgAGAAMABgAKAA8ADwAPAA8ABgAKAA8AFQAPAAoAFQAPAA8ACgAKABUAFQAMABIADwAMABgAFQASAA8ADAAMAAYAEgAPAA8AEgAPABgAEgASABIADAASABIADwAGAA8ADwAPAAwADAASABIADwAMABIADAAXAA8ADwAXABoAEgAPABoADwAeAA8AGgAMABoAJgDw/w8A8/8eACMADAAmAP//GgD//xgAGAAEABgABwAeAAcADAD//wQAGAAAAA8ADAAUAAAA9/8EAAwAGAAMAAcABAAAAAcABwAHAAQABAAHAA8AFAAHABAABAAEABQADQAQABAABwAEAA0AEAAHABAAEAANAA0ADQAHAAQADQAHAAcABwAHAAAAAAAEAAAABwAHAAcABAAAAAQAAAAAAPz/BAAEAAQA//8AAAAA/P8AAAAABgD8/wYAAQD8//P//P/2//z////2/////P/2//z//P///////P/z//z/9v/8////9v8AAPb/9v/8//b//P////z//P/8//P//P/8//z/8//z//z/8//u//P/8//p//b/8//i/+7/7v/i/+n/9v/p/+n/8//p/+n/7v/p//P/6f/m//P/5v/u//z/7v/u//b/9v/p//b/8//z//z/9v/8//b//P/2//z//P////z/9v/8//z/AAD2//z////8//z//P8AAP//AAD/////AAAAAAMAAAD//wAAAAD///////8AAAAA+v/8/wAABAAAAAQABAAAAAAABwAAAAQABwAAAAcADQAHAAcADQAHAAQAEAAQAA0AFQANAAQABwANABUAEAAHABUAEAAVABAADQANABAAFQD//xAABAAuAEMAFQAVAAAAAAD//xAAFQAHABAABAAQAAcABwAAAAQADQANAB0ABwAAAP///P8AAAQAFQAHAAAA9v/2/wAABAAHAAAABAAEAAQABwAAAP////8EAA0ABwAAAPb//P///wAABAAAAAAA8//2/wAAAAAEAAAAAAAEAPz//P/8//z////2//P/9v////z/8//z//z//////wAAAAAEAAAAAAAAAP3/DQAEAAcABAAAAAAABwANAAQADQAHAAcABwAAAA0ABwANAA0AFQANAA0AFQAHABAABwANABAABwAHAAcADQAHAA0AEAANAAAADQANAAcADQAQABUABwANAAcABwAEAAQABwAEAA0ABAAEAAAABwAAAAQADQAAAAAA//8AAAQAAAAAAAEABAD//wAABAAEAP//AAAAAAEABAAAAAAABAAAAAAAAwAEAAQAAAAAAPz/BwAEAAAABwAAAAAA/f8AAAQABAAEAAQABwAHAAcAAAAEAA0ADQANAAQABwAHAAQABAAAAAQAAAAAAAMABwAHAA0ABAAHAAcAAAAHAAQABAAHAAcABwAQAA0ABAAEAAQABwAEAAcABwAEAAcABwAHAAcABwAHAA0ABAAEAAAABAAHAAAABAAAAAAABAAEAAAAAAAEAAAAAAAEAAAAAAAGAPr/AQAAAAYABAAAAAcABAAAAAAA////////AAAAAAYA///2/////////wAA//8AAPP////2/+7//P/z//b/8//z//P/8//z//P/9v/z//b/9v/2//P/8//z//b/8//p/+7/6f/u/+n/8//z/+b/7v/p/+b/4v/m/+n/5v/u/93/4v/m/+b/6f/m/+n/5v/m/+b/5v/p/+7/6f/p/+7/6f/2//z/8//z/+n/8//z/+7/8//u//P/8//u/+7/8//2//b/9v/z//P/9v/2//P/9v/2//b/8//2//b/8//8////8//2//b/9v/2//b//P/2//b/9v/8//z/8//2//b/7v/z//P//P/z//P/8//z//b/9v/8/+7/7v/2//z/8//8//b/8//8//P/9v/8//z/9v/8/+7/9v/8//P/8//z//P/8//2//z//P//////8//8//z////8//b/AAD8/wAA///8/wAA//8AAPz//P//////AAAAAP////8AAP////8AAP//AAD/////AAD8/wAA/////wAAAAAEAAQABAAAAAAA/f/8//z//f/9//r/AQAAAAEAAwAAAP3/BgD8//r/AwADAPz/AAAEAAAABAAAAAAABAAEAAQAAAAEAP//AAAEAPz/AAAAAPz/AAAAAP///P///wQAAAAAAAcABwAHAAQABwAEAAcABwAHAAcABAAEAA0ADQAAAAcADQAHAAQABAAHAAcAAAAEAAAA//8EAAAAAAD//wQABAAAAAAA+v8AAPr/AwAAAPz/AAAAAAEA/////wAAAAAAAP/////8//z/9v/8/////P8AAAAA///8//////8AAAAA//8AAAAA/P/8/wAA///8////AAAAAP//AAD///z///8AAAQAAAAAAP////8AAAAABAAEAAAA//8AAAAABAD6/wQA/f8EAAAABAAHAAcADQAEAAcABAAHAAcABAANAAQADQAHAAAABwAHAA0ABwAQABAADQANABAAEAANABAAEAAVABUAFQAVAB0AGAAhAB0AGAAhAB0AHQAYABgAHQAhAB0AIQAhAB0AIQAdAB0AHQAdAB0AFQAYACEAHQAdAB0AHQAdABgAFQAdAB0AGAAVABUAFQAQAA0ABAANABAADQANAA0AEAANAAcADQAHAAcABwANAAcAEAAAAAcABwD8/w0ABAANAAcA//8EAP///P/////////8//b//P/2//z//P/8///////2//b//P/8/wAAAAD6/wAA/P///wAA///8//z////8//z//////////P/2//z//P/2//z/9v/////////2/+7/8//2//P/8//8//b/8//2//z//P/2//b///8AAPz//P8AAP///P/2///////8/////P/8//b//P/8//z//P/2//z/8/////z/9v/z//P/9v/u//z/8//z//P/7v/2/+7/7v/p/+n/7v/z/+n/5v/p/+n/5v/i/+b/6f/m/+L/5v/i/93/2P/d/+b/4v/i/9j/2P/i/93/2P/Y/93/1f/Y/9j/2P/d/8z/0f/Y/9X/0f/V/93/1f/Y/9X/1f/d/93/3f/V/9j/2P/V/9X/0f/V/93/3f/i/+L/8//u/+L/6f/i/+7///8QAA0A4QEXDbcZsBCm9ubu1gnyIAIQRPSy9doHXgaS9gP5EAmYCtf9oPmMATwFOgJWBLAJdAY7/oj+dgVuBQn+JPsQAEcCIP3E+Pz5Av2H/UH9Pv0w/GT7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lv2W/ZH9pP28/c393v38/RH+Iv44/kT+R/5Z/nL+iP6s/tP+8P4b/0D/Xf+F/6P/u//D/9H/5v/u/wAABAAmAEAASABtAHMAggCMAIwAoACbAJsAmACCAHYAbQBoAGUAYABoAGUAbQBzAGUAZQBdAFAAUABLAEAAMgAuACsAIQAYABUAEAAHAAAA//////b/8//u/+7/7v/p/+7/9v/8/wAAAAD//wAAAAD9/wcAEAAdACYAKwArACsAMgAyADoAOgA3ADcANwA3ADcAMgAyADcASABQAFAAVABLAEAAQwA6AEAAQwBQAFkAWQBZAFAAYABZAFAAUABIADoANwAyACEAIQAhACEAKwA3AEMASwBLAEgAQwBAAC4AIQAdABAADQAAAAAA///8//z///8HAAAAAAAEAP//9v/z//P/7v/p/+7//P/2////AAAAAAQAFQAhAC4ALgAmAB0AIQAmAB0AHQAmAC4AOgBIAEgAQwBLAFQAWQBZAFQASwBQAEsAOgA3ADcAMgArACsAJgAyAEAAMgA3ADoAMgA3AC4AKwAdAA0ABAAAAAAAAAAEAAQABAAEAAcADQAHAAQABAANAAQABwANAAQABAAEAAcABAANABUAFQAVABAAHQAdACEAIQAVAB0AHQAYAB0AFQAYAA0AEAAuAC4AMgA3ADcAOgBDAEMASABLAEsAUABgAGUAbQBzAHMAbQBoAGgAXQBZAFQASwBLAEsAVABgAGAAYABoAGgAbQBoAGUAYABgAGAAXQBgAFQASwBQAEsAQwBDAEMAOgBAAEsAQABAADIALgAyACsALgA3AEAAQABAAEMAQwA6ADIAMgAuAC4ALgAuACsAJgAhABUAFQAVAA0ADQAQABUAHQAyADIAOgBDADcANwAuACYAGAAVABUAFQAhACYALgAuACsAJgAdABUADQAAAPz////2//P/8//u//P//P/8//P/9v/2//b/5v/Y/9H/1f/d/9X/3f/i/+L/4v/d/93/2P/V/9X/0f/Y/93/2P/V/9X/5v/m//P/8//z/wAAAAANABAAHQAdACEAJgAhACYAJgAmACEAJgAmACEAJgArADIANwBDAEsASwBUAFAAQwA6ADIAJgAdAB0AHQAhACYAKwAyADIALgAmABUABwD8/+n/4v/V/9X/2P/V/9j/4v/i/+b/6f/i/9j/2P/J/8P/yf/D/8z/0f/R/9X/2P/V/93/1f/Y/9H/wP/Y/9X/4v/p/9j/4v/i/93/3f/i/+n/7v/2/+7/5v/m/+b/5v/m/+n/9v///wAABAD///b/7v/m/+L/4v/V/9X/2P/V/9j/2P/i/+L/5v/p/9X/zP/J/8D/t/+0/7v/tP+0/7v/t/+3/6//t/+3/7T/u/+3/8D/w//M/9H/0f/V/8z/w//D/8P/w//M/9j/4v/m//b//P8AAAQAAAAEAP/////2//b/7v/p//P/9v/8/wAAAAD//w0ABAAEAAAA//////b/8//z/+7/7v/2////BAAHAAQABAAEAAQAEAANABAAGAAVABUAEAAHAAQAEAAQABgAIQArAC4AQABIAEAAQwA3ADcALgAmAC4AJgAhABgAGAAdAB0AIQAdABgAGAAYABgAHQAhACEAHQAhACEAHQAYABAABwAEAAQA//8AAP//AAAAAPz/AAAEAAQABAAAAAAA+v////z/9v/2//b/9v///wAAAAAEAA0ABAAAAP/////2/+7/5v/i/+L/5v/z//P//P8AAP//AAD///z/9v/z//P/9v/8////BAAAAAAA//8EAAAA6f/8//z/8////wAABAAVABgAFQAYABAABwAAAPz/9v8AAAcAAAAQACEAKwAhACEAIQAYABAABAD//wAABAAAAAcABwANAA0ABwAAAAAA/P/8//b/7v/2//b/9v/u//P/8//z//z/9v///////P/2////AAD//wAAAAAEAAcABwAHABgAHQAdACsAMgAyADcANwAuACsAKwAyADIAOgA6ADoAQABDADoAKwAdAB0AFQAEAAAAAAAHABAAHQAmACEAJgAVAAAA8//i/9H/zP/D/8P/zP/R/9j/5v/p/+b/1f/V/8P/r/+q/5n/kP+W/57/o/+v/7v/t/+3/7v/wP/A/8D/wP/J/8n/yf/J/9j/6f/u/+7/9v///wAAAAAHABgAJgAyAEMASABIAEgASABIAEgAQwBLAFQAZQBtAHMAcwB2AHMAbQBtAGgAZQBZAFkAXQBQAEsASwBAADoAOgAmACEAGAANABAADQAAAAQAAAD2/+7/5v/V/8P/t/+0/6P/mf+Z/57/mf+Q/5D/jf+N/43/jf+I/5D/iP+I/4X/hf98/3j/hf+F/5D/jf+I/5n/iP+W/5n/hf+Q/43/jf+Z/5n/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DQD2/wMAFwADAAoAIwBCAEIAOAA3ADwANwA1ADcAOgAyACQAKwAkADEAPQA3ACQAHgArACgAKAAuACsAHgAPAAwADwAJAAMA/f/2/+7/6P/6/+7/7v/x/+j/4v/a/9H/0f/R/8j/xP/L/8H/wP/L/8D/wf/J/8T/0f/a/9//3f/g/+D/4//w//T/AAAMABQAFAAQABcAHQAkACsAKwAvADUAPAA/AEsATgBJAEsAPQA9AD0AQAA3ACwAKwAjACYAHgAeAB4AGwASAAoABAAAAAAA+v/w/+j/5f/f/9L/1f/V/8z/wf+9/7r/t//D/8T/vv+4/7f/t/+t/6z/rf+w/6//qf+y/7X/sv+3/7X/tf+6/7r/vf/B/8v/z//S/9X/2v/i/+b/5v/p/+v/8P/x//H//P/8//H/+f/z//P//P/5/wAAAAADAPz/BgAEAAYAAwAAAAAA/P/9//z//P/8//n//P/5//b//P/9//T/+f/2//T//P/3//n/9//3//n//P/5//f/+f/8//z/AAAAAAMABwAEAAQABwAJAAkACQASAA0ADQAPAA8AFQAVABUAFwAdABoAGgAjACAAIwAoACYAKwAvACsAKAAoACQAIQAaABoAFwAUABQADwAQABAADwAQAA0ADQAKAAkADQAJAAYABAAAAAAA/f/8//z/+v/8//b/9v/3//r/+v/6//r/9v/2//n/9v/0//T/9v/2//b/9P/0//T/9v/0//n/9P/0//n/+f/6//n/+v/6//3//f/9/wAA/////wAAAAABAP//AAABAAAAAAABAAYACQAGAAYADAAJAAkADAAJAAkADAAMAAwADwAPABIAEgASABcAGgAbABcAFwAeAB4AGwAeACAAIAAhACEAIQAdABsAHgAhACEAHgAdAB0AHQAdAB0AGwAXABUAEgAMAAkABgAEAAYABAABAAEAAAAAAP/////2//r/+f/0//n/9P/2/+z/7P/u/+X/7P/s/+n/6P/o/+n/6P/p/+n/6f/p/+n/6P/p/+n/6f/u/+7/7P/w//D/8P/z//H/9v/3//b/+v/6////AAAAAAMAAwADAAcACQAHAAkACgAJAAkADAAKAA8AEgAVABQAFAAYABgAGAAVABcAFwAVABUAFwAYABcAFwAXABoAGAAaABgAFQAVABUAGAAXABAADwAPAA8ADQAPAA8ADAAMAAkABAAEAAQAAwABAAAAAAD//////f/8//z/9//3//b/8//z//D/6//s/+7/6f/p/+v/6f/p/+j/6P/o/+j/6P/m/+b/4//l/+X/5f/m/+b/6P/p/+n/6f/p/+v/6//s/+z/7v/u//H/8//x//b/9v/2//n/+v/8//z//f/9/wAAAAD8//z/+v8DAAMABAAGAAYABwAKAAcACQAJAAcACQAKAAkACQAJAAkADAAMAA0ADQANAA8ADQANAAwACgAKAAcABgAGAAcABwAJAAcABgAJAAoACgAJAAcACQAHAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAMAAQAEAAEAAAABAAAAAAAAAP//AAD//wAA///9////AAD//wAAAAABAP///f////3//f/9//3//P/5//n/+v/8//n/+v/5//n/9//2//f/9v/2//b/9v/z//P/9P/z//T/8//z//P/8//z//P/8//2//b/9v/3//f/+f/6//r/+f/6//r//P/9//3//P/8//z//f//////AAAAAAMAAQABAAMAAwABAAQAAwAEAAQABAAEAAMABAADAAMABAAEAAQAAwAEAAMAAQAEAAQABAADAAMAAQAAAAAABgD9/wAAAQD9/wEA/f/6/wEABgAEAAYA+v8DAAAAAwD9/wEABAD8//z/AQADAAEAAwAAAAEAAwABAAMAAwAEAAQABAAEAAQABgAEAAQABgAEAAQABAAEAAQABAAGAAQABgAGAAYABAAGAAcABgAGAAYABgAEAAYABgAEAAYABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAADAAQAAwADAAMAAwADAAMAAwAAAAEAAQAAAAAAAAABAAEAAwABAAEAAQABAAEAAQABAAEAAwABAAMAAwADAAEAAAABAAEAAAADAAAAAAABAAEAAwADAAMAAwAEAAQAAwADAAEAAwAEAAQABAAEAAQABAAEAAQABAAEAAMABAADAAMABAAEAAQAAwADAAMAAwABAAEAAAABAAEAAAAAAPr/AQD6/wYA+v8EAPr//P8AAP//AAAAAP/////9//3//f/9/////f/9//3//f/9//3//f/9//3//f/9//z//f/9//3//f/9//3//f/9//3////9//////////////////////8AAAAABgD8/wAAAwD9/wAAAQD//wEA//8BAAEAAQABAAAAAQAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAAAAAAYA/f8BAAMAAAAGAP//AQABAAAAAAAEAAAAAwADAAEAAAD8////AAABAAEAAQABAAEAAAAAAAAABgABAP///f8AAPr/AQAEAAAABAAEAAAAAAD9//3//f8GAAAA/P8AAPr/BAAGAPz/BAAAAPr/+v8BAP////8AAAAAAwABAAEA//8AAAAAAAAAAAEA/f/8////BAAAAAQA///6////+v8AAP//AAD9//r/AAAAAAQAAQD9/wYAAQD//wQABgD//wMA/////wYA//8BAPz//P8EAAEA/f/6/wYAAAAEAPr//f8AAAAABgD8/wAAAAD/////AAD//wYABgD6/wMAAAD8/wQA//8GAAEABAD6/////f8EAAEA+v/6/wAAAAAGAP//AQAAAAAABgD8//3/AwD///z/AwABAAAAAAABAAAAAAAGAAYAAQAGAAQAAwD8/wYA/f8BAAAABgAAAAEABAADAP//AQADAAEA/P8GAPr///8EAP3//f///wQA//8DAPr/AAAEAAMAAwADAAAABgD8/wYA///9/wQAAwADAPz////8/wMAAwADAP3/AwABAAEAAQAAAAAABgABAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAABAD6//3/+v///wAA/f/9//3/BAAEAAEAAAAAAAAAAwD//wYABgAAAPz/+v8DAPz/AwAAAPz//f/9////AQAAAAQA+v////3/AQD//wAA+v8GAAEAAAD9/wMAAwAEAAQA/P////3/BgABAAMA/P/9//r/BAABAAQAAAD9//z/+v/6//////8DAP3/AAAEAPr/BgAEAAAABgAAAPr/AwD8//z/+v8AAAEAAQAAAAAA//8DAAYA/f8AAAQAAAD6/wYABgD//wAA/P8AAAYABgAEAAAA+v/9//r/AwABAAAAAAAEAPz/+v8BAAAAAQAGAAYABAAAAP3/BAD6//3//f/9/wEABgADAPr/AQAAAAAAAAAAAAYABAAAAAAA/f8AAAAAAQD8/wMAAAAEAAAAAwAAAAAAAwD9//z/AQADAAEAAQAGAAAAAQD9//z//P/6/wEAAQAGAAYAAwD//wMA/f/8//3///8GAAAA+v8GAAYAAwD8/wAA//8AAAEABgD9/wQA\" type=\"audio/wav\" />\n",
" Your browser does not support the audio element.\n",
" </audio>\n",
" "
],
"text/plain": [
"<IPython.lib.display.Audio object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <audio controls=\"controls\" >\n",
" <source src=\"data:audio/wav;base64,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AAAGAAYAFQAVAB0AFQA0ADQAHQAkACQALAA8AEsASwBLAFoAQwBLAFoAagBqAGIAagBaAGIAeQBqAHkAiAB5AJAAgQCYAJgAkACnAJgAmACnAKAAoADGAK8ArwDGALcAvgC3AM4AxgC+AM4AzgDOAM4A1QDVANUA5QDdAOwABAHlANUA5QD0APQA5QDlAOUAzgDlAPQA/ADdAOwA9ADdAOwA1QD0AOUAzgDsAN0A5QDlANUA1QDdANUA3QDsAOwA7AC+AMYAxgDGAN0A3QDlAOwA3QDVAN0AvgDdAN0AtwDGAMYAxgDGANUAvgCnAKcAvgC+ALcArwCnAK8AmACvAK8AoACIAJAAmACBAIgAeQCBAIEAkACYAIEAiAB5AIEAeQB5AIgAeQCIAHEAagBqAGoAcQBqAHEAWgBiAHEAUwBxAHkAYgBiAGoAcQBqAGIAcQBiAFMAWgBxAHkAagBxAHEAYgBqAGoAcQB5AHkAcQBiAGIAagBqAHkAgQBqAGoAeQB5AHEAcQBxAHEAWgBxAHEAWgBqAGoAagBaAGIAYgBaAFoASwBDAFoAUwBDAEsASwBLADQAQwBLADwAQwAsACQASwAsABUAHQAGABUADQAAAAYAAAAVAA0A+v/z//P/+v/r//P/3P/j//r/4//z/9T/zP/j/9T/xP/E/9T/vf+t/7X/vf+9/63/pv+1/73/rf+t/63/pv+H/57/tf+e/57/nv+e/57/lv+W/5b/lv+H/5b/j/+H/5b/nv+e/5b/j/9//6b/lv9//4//h/+W/4//pv+e/5b/rf+m/7X/rf+1/57/pv+1/63/tf+m/6b/lv+m/73/zP/M/73/vf/c/8z/xP/U/7X/1P+9/8z/1P+1/73/vf/U/8T/xP/E/8T/zP/M/+P/zP+9/73/4//U/8T/3P/E/73/xP/E/63/xP+t/6b/tf+t/8T/tf+9/7X/pv+W/6b/vf+e/57/nv+e/5b/lv+W/5b/h/+H/4//h/+H/4//f/+H/4f/eP+W/5b/h/9//3D/f/+P/4f/eP+W/4//h/+H/3//h/94/4f/h/+H/57/nv+t/63/j/+P/57/lv+t/7X/pv+t/73/vf+9/73/vf/E/8z/1P/M/9T/6//j/9T/6//6/+v/8//z/wAAAAAAAAAAAAAAAAYABgAAABUADQAGAA0AFQAdACQAJAAsADQALAAkADwAQwA0AFMAUwBLAEsAUwBTAFMAagBqAGoAagB5AHEAgQCQAGoAWgBxAHkAeQB5AHEAgQCIAJAAiACBAIEAoACIAJAAmACIAJgAiACQAJAAiACnAJgAkACYAIgAgQCIAKcArwCYAIgAoAC3AJgAkACYAJgAmACnAJgAmAC3AKcArwCnAK8ApwCgAKAArwC3AJgAoACgAK8AtwDGAMYAoACnAL4AvgCvALcAvgCvAKcArwCnAKcArwCvAK8ArwCvALcAmACvALcApwCvAK8AtwCvALcAkAC3ANUAvgCgAJAArwCvAK8ArwCvALcAoACvAL4AtwDGAL4AvgC3AL4AzgC+AM4AzgC+ANUA5QDVAM4A3QDVANUAvgDGAN0A1QDdAM4A1QDVAM4A3QDVAM4A1QDdANUAxgDOAN0A3QDdAM4AtwDOAMYAtwDGAMYAxgC+ALcAzgC+AK8AtwDGAK8ApwCgALcArwCgALcAkACgAKcAoACgAJAAiABqAIgAgQBiAHEAkACIAIEAgQB5AHkAYgBqAFMAWgBxAEsAQwBDAFoAYgBLAFoAWgA8ADwAUwBDADQAQwBDAEMAPAA8AEsASwBDADwAPABTAFMANABDADwALAAVACQANAA8AEsANAAsADwAQwA0ADQAQwA8ADQAPAA0ACQAJAA8ADwANAA0ADwASwBDACwAPAA0ADQAPAAkADQALAAsACQANAA8ACQANAAsACwAHQAkADQAHQA0ACQALAAdACQAJAAVAB0ADQANAA0AFQAVABUAFQANAAAA+v/6/wAAAAAAAAYAAAD6/9z/4//r/9z/1P/j//P/zP/M/8z/zP/c/63/tf/E/73/zP+m/6b/nv+W/7X/nv+t/57/j/+t/5b/h/+H/4f/cP9w/4f/f/94/2D/aP9w/2j/aP9o/1n/Uf9o/2D/cP9Z/1n/YP9C/1H/YP9g/0n/Uf9Z/2D/Wf9w/2j/Sf9o/2j/cP9g/2j/aP9g/2j/cP9g/1H/cP9//4f/eP94/2j/cP94/3j/cP9w/4f/cP+H/4f/f/9//3//f/94/4//h/+H/4f/h/+P/4f/f/+P/4f/lv+P/4//nv9//5b/j/+H/57/lv+W/4f/j/+t/57/nv/E/7X/tf+m/6b/pv+t/7X/vf+9/5b/tf+1/57/tf+9/7X/rf+e/63/xP+1/7X/vf+t/6b/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
gitextract_31fi3jc2/ ├── .github/ │ └── stale.yml ├── .gitignore ├── .gitmodules ├── .travis.yml ├── LICENSE.md ├── README.md ├── data/ │ └── .gitignore ├── evaluation_tts.py ├── evaluation_vc.py ├── gantts/ │ ├── __init__.py │ ├── models.py │ ├── multistream.py │ └── seqloss.py ├── generated/ │ └── .gitignore ├── hparams.py ├── notebooks/ │ ├── Test RNN VC.ipynb │ ├── Test TTS.ipynb │ └── Test VC.ipynb ├── prepare_features_tts.py ├── prepare_features_vc.py ├── release.sh ├── setup.py ├── tests/ │ └── test_gantts.py ├── tox.ini ├── train.py ├── train_gan.sh ├── tts_demo.sh └── vc_demo.sh
SYMBOL INDEX (95 symbols across 11 files)
FILE: evaluation_tts.py
function gen_parameters (line 51) | def gen_parameters(y_predicted, Y_mean, Y_std, mge_training=True):
function gen_waveform (line 103) | def gen_waveform(y_predicted, Y_mean, Y_std, post_filter=False, coef=1.4,
function _generator_input (line 133) | def _generator_input(hp, x, seed=None):
function gen_duration (line 143) | def gen_duration(label_path, duration_model, X_min, X_max, Y_mean, Y_std):
function tts_from_label (line 182) | def tts_from_label(models, label_path, X_min, X_max, Y_mean, Y_std,
function load_checkpoint (line 228) | def load_checkpoint(model, optimizer, checkpoint_path):
function get_lab_files (line 236) | def get_lab_files(data_dir, label_dir, test=False):
function get_wav_files (line 247) | def get_wav_files(data_dir, wav_dir, test=False):
FILE: evaluation_vc.py
function test_vc_from_path (line 40) | def test_vc_from_path(model, x, fs, data_mean, data_std, diffvc=True):
function load_checkpoint (line 113) | def load_checkpoint(model, optimizer, checkpoint_path):
function get_wav_files (line 121) | def get_wav_files(data_dir, wav_dir, test=False):
FILE: gantts/models.py
class AbstractModel (line 11) | class AbstractModel(object):
method include_parameter_generation (line 15) | def include_parameter_generation(self):
class In2OutHighwayNet (line 21) | class In2OutHighwayNet(AbstractModel, nn.Module):
method __init__ (line 33) | def __init__(self, in_dim=118, out_dim=118, static_dim=118 // 2,
method include_parameter_generation (line 51) | def include_parameter_generation(self):
method forward (line 54) | def forward(self, x, R, lengths=None):
class In2OutRNNHighwayNet (line 72) | class In2OutRNNHighwayNet(AbstractModel, nn.Module):
method __init__ (line 73) | def __init__(self, in_dim=118, out_dim=118, static_dim=118 // 2,
method include_parameter_generation (line 89) | def include_parameter_generation(self):
method forward (line 92) | def forward(self, x, R, lengths=None):
class MLP (line 121) | class MLP(AbstractModel, nn.Module):
method __init__ (line 122) | def __init__(self, in_dim=118, out_dim=1, num_hidden=2, hidden_dim=256,
method forward (line 137) | def forward(self, x, lengths=None):
class SRURNN (line 145) | class SRURNN(AbstractModel, nn.Module):
method __init__ (line 146) | def __init__(self, in_dim=118, out_dim=118, num_hidden=2, hidden_dim=256,
method forward (line 159) | def forward(self, sequence, lengths):
class GRURNN (line 170) | class GRURNN(AbstractModel, nn.Module):
method __init__ (line 171) | def __init__(self, in_dim=118, out_dim=118, num_hidden=2, hidden_dim=256,
method forward (line 181) | def forward(self, sequence, lengths):
class LSTMRNN (line 193) | class LSTMRNN(AbstractModel, nn.Module):
method __init__ (line 194) | def __init__(self, in_dim=118, out_dim=118, num_hidden=2, hidden_dim=256,
method forward (line 204) | def forward(self, sequence, lengths):
FILE: gantts/multistream.py
function recompute_delta_features (line 15) | def recompute_delta_features(Y, Y_data_mean, Y_data_std,
function select_streams (line 33) | def select_streams(inputs, stream_sizes=[60, 1, 1, 1],
function get_static_stream_sizes (line 46) | def get_static_stream_sizes(stream_sizes, has_dynamic_features, num_wind...
function get_static_features (line 56) | def get_static_features(inputs, num_windows, stream_sizes=[180, 3, 1, 3],
function multi_stream_mlpg (line 82) | def multi_stream_mlpg(inputs, R,
FILE: gantts/seqloss.py
function sequence_mask (line 9) | def sequence_mask(sequence_length, max_len=None):
class MaskedMSELoss (line 27) | class MaskedMSELoss(nn.Module):
method __init__ (line 28) | def __init__(self):
method forward (line 32) | def forward(self, input, target, lengths=None, mask=None, max_len=None):
FILE: hparams.py
function hparams_debug_string (line 9) | def hparams_debug_string(params):
FILE: prepare_features_tts.py
class LinguisticSource (line 36) | class LinguisticSource(FileDataSource):
method __init__ (line 37) | def __init__(self, data_root, max_files=None, add_frame_features=False,
method collect_files (line 46) | def collect_files(self):
method collect_features (line 55) | def collect_features(self, path):
class DurationSource (line 70) | class DurationSource(FileDataSource):
method __init__ (line 71) | def __init__(self, data_root, max_files=None):
method collect_files (line 75) | def collect_files(self):
method collect_features (line 84) | def collect_features(self, path):
class AcousticSource (line 92) | class AcousticSource(FileDataSource):
method __init__ (line 93) | def __init__(self, data_root, max_files=None):
method collect_files (line 98) | def collect_files(self):
method collect_features (line 108) | def collect_features(self, wav_path, label_path):
FILE: prepare_features_vc.py
class MGCSource (line 37) | class MGCSource(cmu_arctic.WavFileDataSource):
method __init__ (line 38) | def __init__(self, data_root, speakers, max_files=None):
method collect_features (line 43) | def collect_features(self, wav_path):
FILE: setup.py
class build_py (line 24) | class build_py(setuptools.command.build_py.build_py):
method run (line 26) | def run(self):
method create_version_file (line 31) | def create_version_file():
class develop (line 39) | class develop(setuptools.command.develop.develop):
method run (line 41) | def run(self):
FILE: tests/test_gantts.py
function test_model (line 17) | def test_model():
function test_select_streams (line 60) | def test_select_streams():
function test_get_static_stream_sizes (line 90) | def test_get_static_stream_sizes():
function test_get_static_features (line 100) | def test_get_static_features():
function test_multi_stream_mlpg (line 132) | def test_multi_stream_mlpg():
FILE: train.py
class NPYDataSource (line 71) | class NPYDataSource(FileDataSource):
method __init__ (line 72) | def __init__(self, dirname, train=True, max_files=None, test=False):
method collect_files (line 78) | def collect_files(self):
method collect_features (line 92) | def collect_features(self, path):
class VCDataset (line 96) | class VCDataset(object):
method __init__ (line 97) | def __init__(self, X, Y, data_mean, data_std):
method __getitem__ (line 103) | def __getitem__(self, idx):
method __len__ (line 108) | def __len__(self):
class TTSDataset (line 112) | class TTSDataset(object):
method __init__ (line 113) | def __init__(self, X, Y, X_data_min, X_data_max, Y_data_mean, Y_data_s...
method __getitem__ (line 121) | def __getitem__(self, idx):
method __len__ (line 135) | def __len__(self):
function _pad_2d (line 139) | def _pad_2d(x, max_len):
function collate_fn (line 145) | def collate_fn(batch):
function save_checkpoint (line 162) | def save_checkpoint(model, optimizer, epoch, checkpoint_dir, name):
function get_vc_data_loaders (line 174) | def get_vc_data_loaders(X, Y, data_mean, data_var):
function get_tts_data_loaders (line 202) | def get_tts_data_loaders(X, Y, X_data_min, X_data_max, Y_data_mean, Y_da...
function get_selected_static_stream (line 232) | def get_selected_static_stream(y_hat_static):
function update_discriminator (line 245) | def update_discriminator(model_d, optimizer_d, x, y_static, y_hat_static...
function update_generator (line 282) | def update_generator(model_g, model_d, optimizer_g,
function exp_lr_scheduler (line 323) | def exp_lr_scheduler(optimizer, epoch, nepoch, init_lr=0.0001, lr_decay_...
function apply_generator (line 336) | def apply_generator(model_g, x, R, lengths):
function inv_scale (line 358) | def inv_scale(mgc, lf0, vuv, bap, Y_mean, Y_std, binalize_vuv=True):
function split_streams (line 383) | def split_streams(y_static, Y_data_mean, Y_data_std):
function compute_distortions (line 399) | def compute_distortions(y_static, y_hat_static, Y_data_mean, Y_data_std,...
function train_loop (line 435) | def train_loop(models, optimizers, dataset_loaders,
function load_checkpoint (line 651) | def load_checkpoint(model, optimizer, checkpoint_path):
Copy disabled (too large)
Download .json
Condensed preview — 28 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (12,915K chars).
[
{
"path": ".github/stale.yml",
"chars": 1217,
"preview": "# Number of days of inactivity before an Issue or Pull Request becomes stale\ndaysUntilStale: 60\n\n# Number of days of ina"
},
{
"path": ".gitignore",
"chars": 2304,
"preview": "checkpoints*\nlog\ngantts/version.py\n\n# Created by https://www.gitignore.io\n\n### Python ###\n# Byte-compiled / optimized / "
},
{
"path": ".gitmodules",
"chars": 104,
"preview": "[submodule \"nnmnkwii_gallery\"]\n\tpath = nnmnkwii_gallery\n\turl = https://github.com/r9y9/nnmnkwii_gallery\n"
},
{
"path": ".travis.yml",
"chars": 958,
"preview": "language: python\n\npython:\n - \"2.7\"\n - \"3.6\"\n\nnotifications:\n email: false\n\nbefore_install:\n - sudo apt-get update\n "
},
{
"path": "LICENSE.md",
"chars": 1172,
"preview": "The tacotron_pytorch package is licensed under the MIT \"Expat\" License:\n\n> Copyright (c) 2017: Ryuichi Yamamoto.\n>\n> Per"
},
{
"path": "README.md",
"chars": 7270,
"preview": "# GAN TTS\n\n[](https://travis-ci.org/r9y9/gantts)\n[!["
},
{
"path": "data/.gitignore",
"chars": 14,
"preview": "*\n!.gitignore\n"
},
{
"path": "evaluation_tts.py",
"chars": 12038,
"preview": "# coding: utf-8\n\"\"\"Evaluation script for GAN-based text-to-speech synthesis.\n\nusage: evaluation_vc.py [options] <acousti"
},
{
"path": "evaluation_vc.py",
"chars": 5902,
"preview": "# coding: utf-8\n\"\"\"Evaluation script for GAN-based VC models.\n\nusage: evaluation_vc.py [options] <checkpoint> <data_dir>"
},
{
"path": "gantts/__init__.py",
"chars": 148,
"preview": "# coding: utf-8\nfrom __future__ import with_statement, print_function, absolute_import\n\nfrom .version import __version__"
},
{
"path": "gantts/models.py",
"chars": 8120,
"preview": "# coding: utf-8\nimport torch\nfrom torch import nn\nfrom torch.autograd import Variable\n\nimport numpy as np\n\nfrom nnmnkwii"
},
{
"path": "gantts/multistream.py",
"chars": 4354,
"preview": "# coding: utf-8\n\n# Utils for multi-stream features\n\nimport torch\nfrom torch import nn\nfrom torch.autograd import Variabl"
},
{
"path": "gantts/seqloss.py",
"chars": 1371,
"preview": "# coding: utf-8\nimport torch\nfrom torch import nn\nfrom torch.autograd import Variable\n\nimport numpy as np\n\n\ndef sequence"
},
{
"path": "generated/.gitignore",
"chars": 14,
"preview": "*\n!.gitignore\n"
},
{
"path": "hparams.py",
"chars": 6230,
"preview": "# coding: utf-8\n\nimport tensorflow as tf\nimport numpy as np\n\nfrom os.path import join, dirname\n\n\ndef hparams_debug_strin"
},
{
"path": "notebooks/Test RNN VC.ipynb",
"chars": 3981819,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## The effects of adversarial train"
},
{
"path": "notebooks/Test TTS.ipynb",
"chars": 4807635,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## The effects of adversarial train"
},
{
"path": "notebooks/Test VC.ipynb",
"chars": 3950453,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"markdown\",\n \"metadata\": {},\n \"source\": [\n \"## The effects of adversarial train"
},
{
"path": "prepare_features_tts.py",
"chars": 9564,
"preview": "\"\"\"Prepare acoustic/duration features for DNN-training for text-to-speech.\n\nusage:\n prepare_features_tts.py [options]"
},
{
"path": "prepare_features_vc.py",
"chars": 4323,
"preview": "\"\"\"Prepare acoustic features for one-to-one voice conversion.\n\nusage:\n prepare_features_vc.py [options] <DATA_ROOT> <"
},
{
"path": "release.sh",
"chars": 584,
"preview": "#!/bin/bash\n\n# Script for Pypi release\n# 0. Make sure you are on git tag\n# 1. Run the script\n# 2. Upload sdist\n\nset -e\n\n"
},
{
"path": "setup.py",
"chars": 1828,
"preview": "#!/usr/bin/env python\n\nfrom setuptools import setup, find_packages\nimport setuptools.command.develop\nimport setuptools.c"
},
{
"path": "tests/test_gantts.py",
"chars": 5440,
"preview": "# coding: utf-8\nimport sys\nimport numpy as np\nfrom torch.autograd import Variable\nimport torch\nfrom torch import nn\nfrom"
},
{
"path": "tox.ini",
"chars": 110,
"preview": "[flake8]\nmax-line-length = 120\nignore = E305,E402,E721,F401,F403,F405,F821,F841,F999\nexclude = docs/,examples\n"
},
{
"path": "train.py",
"chars": 34365,
"preview": "# coding: utf-8\n\"\"\"Trainining script for GAN-based TTS and VC models.\n\nusage: train.py [options] <inputs_dir> <outputs_d"
},
{
"path": "train_gan.sh",
"chars": 4063,
"preview": "#!/bin/bash\n\nset -e\n\n# I like to use docopt...\nhparams_name=$1\ninputs_dir=$2\noutputs_dir=$3\ndst_root=$4\ngenerator_warmup"
},
{
"path": "tts_demo.sh",
"chars": 2042,
"preview": "#!/bin/bash\n\n# GAN-based TTS demo\n\nset -e\n\nexperiment_id=$1\n\n# Flags\nrun_feature_extraction=1\nrun_duration_training=1\nru"
},
{
"path": "vc_demo.sh",
"chars": 1334,
"preview": "#!/bin/bash\n\n# GAN-based voice cnoversion demo\n\nset -e\n\nexperiment_id=$1\ncmu_arctic_dir=$2\ndata_dir=./data/cmu_arctic_vc"
}
]
About this extraction
This page contains the full source code of the r9y9/gantts GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 28 files (12.3 MB), approximately 3.2M tokens, and a symbol index with 95 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.