Closed lIkesimba9 closed 8 months ago
See #101
Just adding in that I hit a similar issue, but the cause wound up being the sigma in the config.yml file was a '.nan' I am not sure how that happened but after replacing that with a proper number the finetuned model is working properly again.
I finetune the model you posted in the public domain, which was trained on libritts, on my data. With the default config config_ft.conf , ` log_dir: "Models/MULTI" save_freq: 5 log_interval: 10 device: "cuda" epochs: 50 # number of finetuning epoch (1 hour of data) batch_size: 4 max_len: 400 # maximum number of frames pretrained_model: "Models/LibriTTS/epochs_2nd_00020.pth" second_stage_load_pretrained: true # set to true if the pre-trained model is for 2nd stage load_only_params: true # set to true if do not want to load epoch numbers and optimizer parameters
F0_path: "Utils/JDC/bst.t7" ASR_config: "Utils/ASR/config.yml" ASR_path: "Utils/ASR/epoch_00080.pth" PLBERT_dir: 'Utils/PLBERT/'
data_params: train_data: "Data/train.txt" val_data: "Data/val.txt" root_path: "/" OOD_data: "Data/OOD_texts.txt" min_length: 50 # sample until texts with this size are obtained for OOD texts
preprocess_params: sr: 24000 spect_params: n_fft: 2048 win_length: 1200 hop_length: 300
model_params: multispeaker: true
dim_in: 64 hidden_dim: 512 max_conv_dim: 512 n_layer: 3 n_mels: 80
n_token: 178 # number of phoneme tokens max_dur: 50 # maximum duration of a single phoneme style_dim: 128 # style vector size
dropout: 0.2
config for decoder
decoder: type: 'hifigan' # either hifigan or istftnet resblock_kernel_sizes: [3,7,11] upsample_rates : [10,5,3,2] upsample_initial_channel: 512 resblock_dilation_sizes: [[1,3,5], [1,3,5], [1,3,5]] upsample_kernel_sizes: [20,10,6,4]
speech language model config
slm: model: 'microsoft/wavlm-base-plus' sr: 16000 # sampling rate of SLM hidden: 768 # hidden size of SLM nlayers: 13 # number of layers of SLM initial_channel: 64 # initial channels of SLM discriminator head
style diffusion model config
diffusion: embedding_mask_proba: 0.1
transformer config
loss_params: lambda_mel: 5. # mel reconstruction loss lambda_gen: 1. # generator loss lambda_slm: 1. # slm feature matching loss
optimizer_params: lr: 0.0001 # general learning rate bert_lr: 0.00001 # learning rate for PLBERT ft_lr: 0.0001 # learning rate for acoustic modules
slmadv_params: min_len: 400 # minimum length of samples max_len: 500 # maximum length of samples batch_percentage: 0.5 # to prevent out of memory, only use half of the original batch size iter: 10 # update the discriminator every this iterations of generator update thresh: 5 # gradient norm above which the gradient is scaled scale: 0.01 # gradient scaling factor for predictors from SLM discriminators sig: 1.5 # sigma for differentiable duration modeling
`
only with its own paths to the data. After the first 5 of these, I took a checkpoint and decided to listen to the audio, and received a nan after the exit of the duration predictor. After 5 epohs i have follow error when inference `--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[17], line 6 3 for k, path in reference_dicts.items(): 4 ref_s = compute_style(path) ----> 6 wav = inference(text, ref_s, alpha=0.3, beta=0.7, diffusion_steps=5, embedding_scale=1) 7 rtf = (time.time() - start) / (len(wav) / 24000) 8 print(f"RTF = {rtf:5f}")
Cell In[14], line 41 37 duration = torch.sigmoid(duration).sum(axis=-1) 38 pred_dur = torch.round(duration.squeeze()).clamp(min=1) ---> 41 pred_aln_trg = torch.zeros(input_lengths, int(pred_dur.sum().data)) 42 c_frame = 0 43 for i in range(pred_aln_trg.size(0)):
ValueError: cannot convert float NaN to integer`