|
|
|
# This is the hyperparameter configuration file for Parallel WaveGAN.
|
|
|
|
# Please make sure this is adjusted for the LJSpeech dataset. If you want to
|
|
|
|
# apply to the other dataset, you might need to carefully change some parameters.
|
|
|
|
# This configuration requires 12 GB GPU memory and takes ~3 days on TITAN V.
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# FEATURE EXTRACTION SETTING #
|
|
|
|
###########################################################
|
|
|
|
fs: 22050 # Sampling rate.
|
|
|
|
n_fft: 1024 # FFT size (samples).
|
|
|
|
n_shift: 256 # Hop size (samples). 11.6ms
|
|
|
|
win_length: null # Window length (samples).
|
|
|
|
# If set to null, it will be the same as fft_size.
|
|
|
|
window: "hann" # Window function.
|
|
|
|
n_mels: 80 # Number of mel basis.
|
|
|
|
fmin: 80 # Minimum freq in mel basis calculation. (Hz)
|
|
|
|
fmax: 7600 # Maximum frequency in mel basis calculation. (Hz)
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# GENERATOR NETWORK ARCHITECTURE SETTING #
|
|
|
|
###########################################################
|
|
|
|
generator_params:
|
|
|
|
in_channels: 1 # Number of input channels.
|
|
|
|
out_channels: 1 # Number of output channels.
|
|
|
|
kernel_size: 3 # Kernel size of dilated convolution.
|
|
|
|
layers: 30 # Number of residual block layers.
|
|
|
|
stacks: 3 # Number of stacks i.e., dilation cycles.
|
|
|
|
residual_channels: 64 # Number of channels in residual conv.
|
|
|
|
gate_channels: 128 # Number of channels in gated conv.
|
|
|
|
skip_channels: 64 # Number of channels in skip conv.
|
|
|
|
aux_channels: 80 # Number of channels for auxiliary feature conv.
|
|
|
|
# Must be the same as num_mels.
|
|
|
|
aux_context_window: 2 # Context window size for auxiliary feature.
|
|
|
|
# If set to 2, previous 2 and future 2 frames will be considered.
|
|
|
|
dropout: 0.0 # Dropout rate. 0.0 means no dropout applied.
|
|
|
|
use_weight_norm: True # Whether to use weight norm.
|
|
|
|
# If set to true, it will be applied to all of the conv layers.
|
|
|
|
upsample_scales: [4, 4, 4, 4] # Upsampling scales. prod(upsample_scales) == n_shift
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# DISCRIMINATOR NETWORK ARCHITECTURE SETTING #
|
|
|
|
###########################################################
|
|
|
|
discriminator_params:
|
|
|
|
in_channels: 1 # Number of input channels.
|
|
|
|
out_channels: 1 # Number of output channels.
|
|
|
|
kernel_size: 3 # Number of output channels.
|
|
|
|
layers: 10 # Number of conv layers.
|
|
|
|
conv_channels: 64 # Number of chnn layers.
|
|
|
|
bias: True # Whether to use bias parameter in conv.
|
|
|
|
use_weight_norm: True # Whether to use weight norm.
|
|
|
|
# If set to true, it will be applied to all of the conv layers.
|
|
|
|
nonlinear_activation: "leakyrelu" # Nonlinear function after each conv.
|
|
|
|
nonlinear_activation_params: # Nonlinear function parameters
|
|
|
|
negative_slope: 0.2 # Alpha in leakyrelu.
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# STFT LOSS SETTING #
|
|
|
|
###########################################################
|
|
|
|
stft_loss_params:
|
|
|
|
fft_sizes: [1024, 2048, 512] # List of FFT size for STFT-based loss.
|
|
|
|
hop_sizes: [120, 240, 50] # List of hop size for STFT-based loss
|
|
|
|
win_lengths: [600, 1200, 240] # List of window length for STFT-based loss.
|
|
|
|
window: "hann" # Window function for STFT-based loss
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# ADVERSARIAL LOSS SETTING #
|
|
|
|
###########################################################
|
|
|
|
lambda_adv: 4.0 # Loss balancing coefficient.
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# DATA LOADER SETTING #
|
|
|
|
###########################################################
|
|
|
|
batch_size: 8 # Batch size.
|
|
|
|
batch_max_steps: 25600 # Length of each audio in batch. Make sure dividable by n_shift.
|
|
|
|
num_workers: 2 # Number of workers in DataLoader.
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# OPTIMIZER & SCHEDULER SETTING #
|
|
|
|
###########################################################
|
|
|
|
generator_optimizer_params:
|
|
|
|
epsilon: 1.0e-6 # Generator's epsilon.
|
|
|
|
weight_decay: 0.0 # Generator's weight decay coefficient.
|
|
|
|
generator_scheduler_params:
|
|
|
|
learning_rate: 0.0001 # Generator's learning rate.
|
|
|
|
step_size: 200000 # Generator's scheduler step size.
|
|
|
|
gamma: 0.5 # Generator's scheduler gamma.
|
|
|
|
# At each step size, lr will be multiplied by this parameter.
|
|
|
|
generator_grad_norm: 10 # Generator's gradient norm.
|
|
|
|
discriminator_optimizer_params:
|
|
|
|
epsilon: 1.0e-6 # Discriminator's epsilon.
|
|
|
|
weight_decay: 0.0 # Discriminator's weight decay coefficient.
|
|
|
|
discriminator_scheduler_params:
|
|
|
|
learning_rate: 0.00005 # Discriminator's learning rate.
|
|
|
|
step_size: 200000 # Discriminator's scheduler step size.
|
|
|
|
gamma: 0.5 # Discriminator's scheduler gamma.
|
|
|
|
# At each step size, lr will be multiplied by this parameter.
|
|
|
|
discriminator_grad_norm: 1 # Discriminator's gradient norm.
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# INTERVAL SETTING #
|
|
|
|
###########################################################
|
|
|
|
discriminator_train_start_steps: 100000 # Number of steps to start to train discriminator.
|
|
|
|
train_max_steps: 400000 # Number of training steps.
|
|
|
|
save_interval_steps: 5000 # Interval steps to save checkpoint.
|
|
|
|
eval_interval_steps: 1000 # Interval steps to evaluate the network.
|
|
|
|
|
|
|
|
###########################################################
|
|
|
|
# OTHER SETTING #
|
|
|
|
###########################################################
|
|
|
|
num_save_intermediate_results: 4 # Number of results to be saved as intermediate results.
|
|
|
|
num_snapshots: 10 # max number of snapshots to keep while training
|
|
|
|
seed: 42 # random seed for paddle, random, and np.random
|