
    sg                     V   d Z ddlZddlZddlZddlmZmZmZ  ej                           ej                  d      Zd Z ej                         	 	 dd       Zedk(  r ej                          Zej%                  dd	ded
       ej%                  dd	ded       ej%                  dded       ej%                  dd	ded       ej%                  dded       ej)                         Z eej,                  ej.                  ej0                  ej2                  ej4                         yy)z%Convert SpeechT5 HiFi-GAN checkpoint.    N)SpeechT5HifiGanSpeechT5HifiGanConfigloggingztransformers.models.speecht5c                    |j                          | d   |j                  j                  _        | d   |j                  j                  _        | d   |j                  j
                  _        t        t        |j                              D ]q  }| d| d   |j                  |   j                  _        | d| d   |j                  |   j                  _        | d| d   |j                  |   j
                  _        s t        t        |j                        t        |j                        z        D ]f  }t        t        |j                              D ]A  }| d| d	| d   |j                  |   j                  |   j                  _        | d| d	| d   |j                  |   j                  |   j                  _        | d| d	| d   |j                  |   j                  |   j
                  _        | d| d
| d   |j                  |   j                  |   j                  _        | d| d
| d   |j                  |   j                  |   j                  _        | d| d
| d   |j                  |   j                  |   j
                  _        D i | d   |j                  j                  _        | d   |j                  j                  _        | d   |j                  j
                  _        |j!                          y )Nzinput_conv.weight_gzinput_conv.weight_vzinput_conv.biasz
upsamples.z.1.weight_gz.1.weight_vz.1.biaszblocks.z.convs1.z.convs2.zoutput_conv.1.weight_gzoutput_conv.1.weight_vzoutput_conv.1.bias)apply_weight_normconv_preweight_gdataweight_vbiasrangelenupsample_rates	upsamplerresblock_kernel_sizesresblock_dilation_sizes	resblocksconvs1convs2	conv_postremove_weight_norm)
checkpointhf_modelconfigijs        _/var/www/html/venv/lib/python3.12/site-packages/transformers/models/speecht5/convert_hifigan.pyload_weightsr      s    &01F&GH#&01F&GH#",->"?H3v,,-. N.8:aS9T.U1&&+.8:aS9T.U1&&+*4z!G5L*M1""'N
 3v,,-F4P4P0QQR ds699:; 	dA<FQRPSS[\][^^iGj<kHq!((+449<FQRPSS[\][^^iGj<kHq!((+4498BWQCxXYWZZaCb8cHq!((+005<FQRPSS[\][^^iGj<kHq!((+449<FQRPSS[\][^^iGj<kHq!((+4498BWQCxXYWZZaCb8cHq!((+005	dd (22J'KH$'12J'KH$#-.B#CH !    c                 (   |t        j                  |      }n
t               }t        |      }t        j                  |       }t        |d   d   ||       t        j                  |      }|d   j                  d      }	|d   j                  d      }
t        j                  |	      j                         |_
        t        j                  |
      j                         |_        |j                  |       |rt        d       |j                  |       y y )Nmodel	generatorr      zPushing to the hub...)r   from_pretrainedr   torchloadr   npreshape
from_numpyfloatmeanscalesave_pretrainedprintpush_to_hub)checkpoint_path
stats_pathpytorch_dump_folder_pathconfig_pathrepo_idr   r!   orig_checkpointstatsr,   r-   s              r   convert_hifigan_checkpointr8   :   s     &66{C&(F#Ejj1O)+6vFGGJE8BD!HR E!!$'--/EJ""5)//1EK	23%&'" r   __main__z--checkpoint_pathTzPath to original checkpoint)requireddefaulttypehelpz--stats_pathzPath to stats.npy filez--config_pathz*Path to hf config.json of model to convert)r;   r<   r=   z--pytorch_dump_folder_pathz!Path to the output PyTorch model.z--push_to_hubu4   Where to upload the converted model on the 🤗 hub.)NN)__doc__argparsenumpyr(   r&   transformersr   r   r   set_verbosity_info
get_loggerloggerr   no_gradr8   __name__ArgumentParserparseradd_argumentstr
parse_argsargsr1   r2   r3   r4   r0    r   r   <module>rN      sR   ,    H H    			:	;": 
 # #< z$X$$&F
+dDsYvw
t#Tlm
CFrs
$tTRu   C6l   D%% r   