CoolFace
Apppublic

emiyogo/clesss

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
models.cpython-38.pyc100 linesDownload Raw Back to __pycache__
1U

23;�c�8�@s^ddlZddlZddlZddlmZddlmZddlmZddl	m4Z5ddlmZddlm
Z
mZmZmZddlmZmZmZddlZddl	mZmZddlmZddlmZGd	d6�d7ej�ZGdd�dej�ZGd
d�dej�ZGdd�dejj�ZGdd�dejj�Z Gdd�dejj�Z!Gdd�dejj�Z"Gdd�dej�Z#Gdd�dej�Z$dS)�N)�nn)�8functional)�Conv1d�ConvTranspose1d�	AvgPool1d�Conv2d)�weight_norm�remove_weight_norm�
spectral_norm)�init_weights�get_padding)�	Generator)�f0_to_coarsecs(eZdZd	�fdd�	Zd9dd�Z�ZS)�ResidualCouplingBlock�rc	s�t���||_||_||_||_||_||_||_t	�10�|_t|�D]4}|j�
tj||||||dd��|j�
t���qFdS)NT)�gin_channelsZ	mean_only)�super�__init__�channels�hidden_channels�kernel_size�
dilation_rate�n_layers�n_flowsrr�11ModuleList�flows�range�append�modulesZResidualCouplingLayerZFlip)	�selfrrrrrrr�i��	__class__��E:\clesss\test\models.pyrs1213 zResidualCouplingBlock.__init__NFcCsJ|s&|jD]}|||||d�\}}q14n t|j�D]}|||||d�}q0|S)N��g�reverse)r�reversed)r�x�x_maskr&r'�flow�_r#r#r$�forward*s15zResidualCouplingBlock.forward)rr)NF��__name__�16__module__�__qualname__rr-�
__classcell__r#r#r!r$rs�rcs(eZdZd�fdd�	Zddd�Z�ZS)	�Encoderrcsrt���||_||_||_||_||_||_||_t	�17||d�|_tj
|||||d�|_t	�18||dd�|_dS)N��r�)rr�in_channels�out_channelsrrrrrrr�prer�WN�enc�proj)rr7r8rrrrrr!r#r$r5s19zEncoder.__init__Nc	Cs�t�t�||�d��d��|j�}|�|�|}|j|||d�}|�	|�|}tj20||jdd�\}}|t�|�t�
|�|}||||fS)Nr6r4�r&��dim)�torch�	unsqueeze�commons�
sequence_mask�size�to�dtyper9r;r<�splitr8�21randn_like�exp)	rr)�	x_lengthsr&r*�stats�m�logs�zr#r#r$r-Js"zEncoder.forward)r)Nr.r#r#r!r$r34s�r3cs(eZdZd�fdd�	Zd	dd�Z�ZS)22�TextEncoderrNc		sdt���||_||_||_||_||_t�||dd�|_	t�23d|�|_t�
||||||�|_dS)Nr6r4�)rrr8rrrrrrr<�	Embedding�f0_emb�24attentionsr3�enc_)	rr8rrrr�filter_channels�n_heads�	p_dropoutr!r#r$rVs 	25�zTextEncoder.__init__r4c	Csv||�|��dd�}|�|||�}|�|�|}tj||jdd�\}}|t�|�t�|�||}||||fS)Nr4r6r>)	rR�	transposerTr<r@rGr8rHrI)	rr)r*�f0�noice_scalerKrLrMrNr#r#r$r-ps zTextEncoder.forward)rNNN)Nr4r.r#r#r!r$rOUs�rOcs&eZdZd�fdd�	Zdd�Z�ZS)	�DiscriminatorP��Fcstt|���||_||_|dkr&tnt}t�|t	dd|df|dft26|d�dfd��|t	dd|df|dft27|d�dfd��|t	dd|df|dft28|d�dfd��|t	dd|df|dft29|d�dfd��|t	dd|dfdt30|d�dfd��g�|_|t	ddd	dd31d��|_dS)NFr4� r��padding�i�)r]r4)r4r)
rr[r�period�use_spectral_normrr32rrrr�convs�	conv_post)rrcr�striderd�norm_fr!r#r$r|s&&&&"�zDiscriminatorP.__init__cCs�g}|j\}}}||jdkrH|j||j}t�|d|fd�}||}|�||||j|j�}|jD]$}||�}t�|tj�}|�	|�qf|�33|�}|�	|�t�|dd�}||fS)Nr�reflectr4�����)
�shaperc�F�pad�viewre�34leaky_relur�LRELU_SLOPErrfr@�flatten)rr)�fmap�b�c�tZn_pad�lr#r#r$r-�s353637zDiscriminatorP.forward)r\r]Fr.r#r#r!r$r[{sr[cs&eZdZd�fdd�	Zdd�Z�ZS)�DiscriminatorSFcs�tt|���|dkrtnt}t�|tdddddd��|tdddd	d	d38d��|tdddd	dd39d��|tdd
dd	dd40d��|td
d
dd	dd41d��|td
d
dddd��g�|_|td
ddddd��|_	dS)NFr4���r_�@�)r�)�groupsr`rPrbr\r6r])42rrwrrr43rrrrerf)rrdrhr!r#r$r�s�zDiscriminatorS.__init__cCsZg}|jD]$}||�}t�|tj�}|�|�q44|�|�}|�|�t�|dd�}||fS)Nr4rj)	rerlrorrprrfr@rq)rr)rrrvr#r#r$r-�s454647zDiscriminatorS.forward)Fr.r#r#r!r$rw�s
rwcs&eZdZd�fdd�	Zdd�Z�ZS)�MultiPeriodDiscriminatorFcsNtt|���dddddg}t�d�g}|�fdd�|D�}t�|�|_dS)	Nr6r]r\rz��rdcsg|]}t|�d��qS)r�)r[)�.0r r�r#r$�48<listcomp>�sz5MultiPeriodDiscriminator.__init__.<locals>.<listcomp>)rrrrwrr�discriminators)rrd�periodsZdiscsr!r�r$r�s49z!MultiPeriodDiscriminator.__init__c
Cspg}g}g}g}t|j�D]H\}}||�\}	}50||�\}}|�|	�|�|�|�|51�|�|�q||||fS�N)�	enumerater�r)
r�y�y_hatZy_d_rsZy_d_gsZfmap_rsZfmap_gsr �dZy_d_rZfmap_rZy_d_gZfmap_gr#r#r$r-�s525354z MultiPeriodDiscriminator.forward)Fr.r#r#r!r$r�srcs8eZdZd�fdd�	Zdd�Zdd	�Zddd
�Z�ZS)�SpeakerEncoder�Pr]rPcs>tt|���tj|||dd�|_t�||�|_t��|_	dS)NT)�batch_first)55rr�rr�LSTM�lstm�Linear�linear�ReLU�relu)rZmel_n_channelsZmodel_num_layersZmodel_hidden_sizeZmodel_embedding_sizer!r#r$r�szSpeakerEncoder.__init__cCsD|j��|�|�\}\}}|�|�|d��}|tj|ddd�S)Nrjr4T)r?�keepdim)r��flatten_parametersr�r�r@�norm)r�melsr,�hiddenZ56embeds_rawr#r#r$r-�s57zSpeakerEncoder.forwardcCs8g}td|||�D]}t�|||�}|�|�q|S)Nr)rr@�aranger)r�total_frames�partial_frames�partial_hop�58mel_slicesr Z	mel_ranger#r#r$�compute_partial_slices�s59z%SpeakerEncoder.compute_partial_slicesrar{c60	s���d�}�dd�|d�f}||kr�|�|||�}t�fdd�|D��}|�|�t�t|�d��d�}t���||�}W5QRXtj	|dd��61d�}	nt���||�}	W5QRX|	S)Nr4c3s|]}�dd�|fVqdSr�r#)r��s��melr#r$�	<genexpr>�sz1SpeakerEncoder.embed_utterance.<locals>.<genexpr>r)�axis)rDr��listrr@�stack�tuple�squeeze�no_grad�meanrA)62rr�r�r�Zmel_lenZlast_melr�r�Zpartial_embeds�embedr#r�r$�embed_utterance�s63646566zSpeakerEncoder.embed_utterance)r�r]rPrP)rar{)r/r0r1rr-r�r�r2r#r#r!r$r��sr�cs(eZdZd�fdd�	Zddd�Z�ZS)	�	F0Decoderrc		s�t���||_||_||_||_||_||_||_||_	t67j||ddd�|_t
�||||||�|_t68�||d�|_t69jd|ddd�|_t70�||d�|_dS)Nr]r4r_)rrr8rrUrVrrrW�spk_channelsrr�prenetrSZFFT�decoderr<�	f0_prenet�cond)	rr8rrUrVrrrWr�r!r#r$r�s*	71�zF0Decoder.__init__NcCs^t�|�}|dk	r ||�|�}||�|�7}|�|�|}|�|||�}|�|�|}|Sr�)r@�detachr�r�r�r�r<)rr)Znorm_f0r*�spk_embr#r#r$r-s72zF0Decoder.forward)r)Nr.r#r#r!r$r��s	�r�cs6eZdZdZd�fdd�	Zd
dd�Zdd73d�Z�ZS)�SynthesizerTrnz74  Synthesizer for Training75  �D�c76s(t���||_||_||_||_||_||_||_|	|_	|77|_78||_||_|
|_
||_||_||_||_||_t�||�|_tj||ddd�|_t|||||||	d�|_|||79|||
|||d�	}t|d�|_t|||ddd|d	�|_t||ddd80|d	�|_t d||||||	|d�|_!t�d|�|_"dS)Nr\r6)rr`)rUrVrrrW)	�
sampling_rate�inter_channels�resblock�resblock_kernel_sizes�resblock_dilation_sizes�upsample_rates�upsample_initial_channel�upsample_kernel_sizesr)�hr4rxr5r)r�)#rr�
spec_channelsr�rrUrVrrrWr�r�r�r�r�r��segment_sizer�ssl_dimrrQ�emb_grr9rO�enc_pr
�decr3�enc_qrr+r��81f0_decoder�emb_uv)rr�r�r�rrUrVrrrWr�r�r�r�r�r�rr�Z82n_speakersr��kwargsZhpsr!r#r$r.sj83�84��85zSynthesizerTrn.__init__Nc	Cs"|�|��dd�}t�t�||�d��d��|j�}|�	|�||�86|����dd�}	dt�d|�d�d�d}87t
�|88||�}|j|	|||d�}|j|	|t|�d�\}
}}}|j|||d	�\}}}}|j|||d	�}t�||||j�\}}}|j|||d89�}|||||||||f|||90fS)Nr4r6�F�@��?���@���r�)rYr=�r&rY)r�rXr@rArBrCrDrErFr9r��long�log10�utils�normalize_f0r�r�rr�r+�rand_slice_segments_with_pitchr�r�)rrtrY�uv�specr&�	c_lengthsZspec_lengthsr*r)�lf0�norm_lf0�pred_lf0Zz_ptemp�m_p�logs_pr,rN�m_q�logs_qZ	spec_mask�z_pZz_sliceZpitch_sliceZ	ids_slice�or#r#r$r-}s"$ zSynthesizerTrn.forward�ffffff�?FcCs,t�|�d��|�d��|j�}|�|��dd�}t�t�	||�d��d��|j91�}|�|�||�|�
���dd�}	|r�dt�d|�d�d�d}92tj|93||d	d94�}|j|	|||d�}dt�d
|dd�d�d�}|j|	|t|�|d�\}
}}}|j|
||dd�}|j||||d�}|S)Nrrjr4r6r�r�r�r�F)�random_scaler�i��95i#96)rYrZTr%r�)r@�onesrDrE�devicer�rXrArBrCrFr9r�r�r�r�r�r��powr�r�rr+r�)rrtrYr�r&rZ�97predict_f0r�r*r)r�r�r�r�r�r�Zc_maskrNr�r#r#r$�infer�s""$ "zSynthesizerTrn.infer)r�)NNN)Nr�F)r/r0r1�__doc__rr-r�r2r#r#r!r$r�)s98�O99r�)%�copy�mathr@r�torch.nnrrlZmodules.attentionsrS�modules.commonsrBZmodules.modulesrrrrrZtorch.nn.utilsrr	r100r�rrZvdecoder.hifigan.modelsr
r�Modulerr3rOr[rwrr�r�r�r#r#r#r$�<module>s,!!&%)+