U
    ,-e                     @   s   d Z ddlZddlZddlZddlmZmZmZ e	  e
dZdd Ze dddZed	kre Zejd
ddedd ejdddedd ejddedd ejdddedd ejddedd e Zeejejejejej dS )z%Convert SpeechT5 HiFi-GAN checkpoint.    N)SpeechT5HifiGanSpeechT5HifiGanConfigloggingztransformers.models.speecht5c                 C   s  |   | d |jj_| d |jj_| d |jj_tt|jD ]R}| d| d |j	| j_| d| d |j	| j_| d| d |j	| j_q@tt|jt|j
 D ]}tt|jD ]}| 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_qq| d |jj_| d |jj_| d |jj_|  d S )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)Zapply_weight_normZconv_preZweight_gdataZweight_vZbiasrangelenZupsample_ratesZ	upsamplerZresblock_kernel_sizesZresblock_dilation_sizesZ	resblocksZconvs1Zconvs2Z	conv_postZremove_weight_norm)
checkpointZhf_modelconfigij r   m/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/transformers/models/speecht5/convert_hifigan.pyload_weights   s(    &&&&&*r   c                 C   s   |d k	rt |}nt  }t|}t| }t|d d || t|}|d d}	|d d}
t|		 |_
t|
	 |_|| |rtd || d S )Nmodel	generatorr      zPushing to the hub...)r   Zfrom_pretrainedr   torchloadr   npZreshapeZ
from_numpyfloatmeanscaleZsave_pretrainedprintpush_to_hub)checkpoint_path
stats_pathpytorch_dump_folder_pathconfig_pathZrepo_idr	   r   Zorig_checkpointstatsr   r   r   r   r   convert_hifigan_checkpoint:   s    


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   Ztransformersr   r   r   Zset_verbosity_infoZ
get_loggerloggerr   Zno_gradr    __name__ArgumentParserparseradd_argumentstr
parse_argsargsr   r   r   r   r   r   r   r   r   <module>   sJ   
         