MCPcopy Create free account
hub / github.com/MoonInTheRiver/DiffSinger / FastSpeech2

Class FastSpeech2

modules/fastspeech/fs2.py:21–255  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19
20
21class FastSpeech2(nn.Module):
22 def __init__(self, dictionary, out_dims=None):
23 super().__init__()
24 self.dictionary = dictionary
25 self.padding_idx = dictionary.pad()
26 self.enc_layers = hparams['enc_layers']
27 self.dec_layers = hparams['dec_layers']
28 self.hidden_size = hparams['hidden_size']
29 self.encoder_embed_tokens = self.build_embedding(self.dictionary, self.hidden_size)
30 self.encoder = FS_ENCODERS[hparams['encoder_type']](hparams, self.encoder_embed_tokens, self.dictionary)
31 self.decoder = FS_DECODERS[hparams['decoder_type']](hparams)
32 self.out_dims = out_dims
33 if out_dims is None:
34 self.out_dims = hparams['audio_num_mel_bins']
35 self.mel_out = Linear(self.hidden_size, self.out_dims, bias=True)
36
37 if hparams['use_spk_id']:
38 self.spk_embed_proj = Embedding(hparams['num_spk'] + 1, self.hidden_size)
39 if hparams['use_split_spk_id']:
40 self.spk_embed_f0 = Embedding(hparams['num_spk'] + 1, self.hidden_size)
41 self.spk_embed_dur = Embedding(hparams['num_spk'] + 1, self.hidden_size)
42 elif hparams['use_spk_embed']:
43 self.spk_embed_proj = Linear(256, self.hidden_size, bias=True)
44 predictor_hidden = hparams['predictor_hidden'] if hparams['predictor_hidden'] > 0 else self.hidden_size
45 self.dur_predictor = DurationPredictor(
46 self.hidden_size,
47 n_chans=predictor_hidden,
48 n_layers=hparams['dur_predictor_layers'],
49 dropout_rate=hparams['predictor_dropout'], padding=hparams['ffn_padding'],
50 kernel_size=hparams['dur_predictor_kernel'])
51 self.length_regulator = LengthRegulator()
52 if hparams['use_pitch_embed']:
53 self.pitch_embed = Embedding(300, self.hidden_size, self.padding_idx)
54 if hparams['pitch_type'] == 'cwt':
55 h = hparams['cwt_hidden_size']
56 cwt_out_dims = 10
57 if hparams['use_uv']:
58 cwt_out_dims = cwt_out_dims + 1
59 self.cwt_predictor = nn.Sequential(
60 nn.Linear(self.hidden_size, h),
61 PitchPredictor(
62 h,
63 n_chans=predictor_hidden,
64 n_layers=hparams['predictor_layers'],
65 dropout_rate=hparams['predictor_dropout'], odim=cwt_out_dims,
66 padding=hparams['ffn_padding'], kernel_size=hparams['predictor_kernel']))
67 self.cwt_stats_layers = nn.Sequential(
68 nn.Linear(self.hidden_size, h), nn.ReLU(),
69 nn.Linear(h, h), nn.ReLU(), nn.Linear(h, 2)
70 )
71 else:
72 self.pitch_predictor = PitchPredictor(
73 self.hidden_size,
74 n_chans=predictor_hidden,
75 n_layers=hparams['predictor_layers'],
76 dropout_rate=hparams['predictor_dropout'],
77 odim=2 if hparams['pitch_type'] == 'frame' else 1,
78 padding=hparams['ffn_padding'], kernel_size=hparams['predictor_kernel'])

Callers 3

__init__Method · 0.90
__init__Method · 0.90
build_tts_modelMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected