Path: blob/master/tensorflow_tts/configs/tacotron2.py
1558 views
# -*- coding: utf-8 -*-1# Copyright 2020 Minh Nguyen (@dathudeptrai)2#3# Licensed under the Apache License, Version 2.0 (the "License");4# you may not use this file except in compliance with the License.5# You may obtain a copy of the License at6#7# http://www.apache.org/licenses/LICENSE-2.08#9# Unless required by applicable law or agreed to in writing, software10# distributed under the License is distributed on an "AS IS" BASIS,11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12# See the License for the specific language governing permissions and13# limitations under the License.14"""Tacotron-2 Config object."""151617from tensorflow_tts.configs import BaseConfig18from tensorflow_tts.processor.jsut import JSUT_SYMBOLS19from tensorflow_tts.processor.ljspeech import LJSPEECH_SYMBOLS as lj_symbols20from tensorflow_tts.processor.kss import KSS_SYMBOLS as kss_symbols21from tensorflow_tts.processor.baker import BAKER_SYMBOLS as bk_symbols22from tensorflow_tts.processor.libritts import LIBRITTS_SYMBOLS as lbri_symbols23from tensorflow_tts.processor.ljspeechu import LJSPEECH_U_SYMBOLS as lju_symbols24from tensorflow_tts.processor.synpaflex import SYNPAFLEX_SYMBOLS as synpaflex_symbols25from tensorflow_tts.processor.jsut import JSUT_SYMBOLS as jsut_symbols262728class Tacotron2Config(BaseConfig):29"""Initialize Tacotron-2 Config."""3031def __init__(32self,33dataset="ljspeech",34vocab_size=len(lj_symbols),35embedding_hidden_size=512,36initializer_range=0.02,37layer_norm_eps=1e-6,38embedding_dropout_prob=0.1,39n_speakers=5,40n_conv_encoder=3,41encoder_conv_filters=512,42encoder_conv_kernel_sizes=5,43encoder_conv_activation="mish",44encoder_conv_dropout_rate=0.5,45encoder_lstm_units=256,46reduction_factor=5,47n_prenet_layers=2,48prenet_units=256,49prenet_activation="mish",50prenet_dropout_rate=0.5,51n_lstm_decoder=1,52decoder_lstm_units=1024,53attention_type="lsa",54attention_dim=128,55attention_filters=32,56attention_kernel=31,57n_mels=80,58n_conv_postnet=5,59postnet_conv_filters=512,60postnet_conv_kernel_sizes=5,61postnet_dropout_rate=0.1,62):63"""Init parameters for Tacotron-2 model."""64if dataset == "ljspeech":65self.vocab_size = vocab_size66elif dataset == "kss":67self.vocab_size = len(kss_symbols)68elif dataset == "baker":69self.vocab_size = len(bk_symbols)70elif dataset == "libritts":71self.vocab_size = len(lbri_symbols)72elif dataset == "ljspeechu":73self.vocab_size = len(lju_symbols)74elif dataset == "synpaflex":75self.vocab_size = len(synpaflex_symbols)76elif dataset == "jsut":77self.vocab_size = len(jsut_symbols)78else:79raise ValueError("No such dataset: {}".format(dataset))80self.embedding_hidden_size = embedding_hidden_size81self.initializer_range = initializer_range82self.layer_norm_eps = layer_norm_eps83self.embedding_dropout_prob = embedding_dropout_prob84self.n_speakers = n_speakers85self.n_conv_encoder = n_conv_encoder86self.encoder_conv_filters = encoder_conv_filters87self.encoder_conv_kernel_sizes = encoder_conv_kernel_sizes88self.encoder_conv_activation = encoder_conv_activation89self.encoder_conv_dropout_rate = encoder_conv_dropout_rate90self.encoder_lstm_units = encoder_lstm_units9192# decoder param93self.reduction_factor = reduction_factor94self.n_prenet_layers = n_prenet_layers95self.prenet_units = prenet_units96self.prenet_activation = prenet_activation97self.prenet_dropout_rate = prenet_dropout_rate98self.n_lstm_decoder = n_lstm_decoder99self.decoder_lstm_units = decoder_lstm_units100self.attention_type = attention_type101self.attention_dim = attention_dim102self.attention_filters = attention_filters103self.attention_kernel = attention_kernel104self.n_mels = n_mels105106# postnet107self.n_conv_postnet = n_conv_postnet108self.postnet_conv_filters = postnet_conv_filters109self.postnet_conv_kernel_sizes = postnet_conv_kernel_sizes110self.postnet_dropout_rate = postnet_dropout_rate111112113