CoolFace
Apppublic

Florii/Aesthetic_RVC

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
models.cpython-39.pyc272 linesDownload Raw Back to __pycache__
1a

2�ye���@sddlZddlZddlZddlmZddlZddlmZddlmZ	ddl3mZddl4mZddl5m
Z
ddlmZmZdd	lmZmZmZmZdd6lmZmZmZddlmZddlZddl7m
Z
Gdd
�d
ej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dejj�Z Gdd�dejj�Z!Gdd�dejj�Z"Gdd�dejj�Z#dddd�Z$Gd d!�d!ej�Z%Gd"d#�d#ej�Z&Gd$d%�d%ej�Z'Gd&d'�d'ej�Z(Gd(d)�d)ejj�Z)Gd*d+�d+ejj�Z*Gd,d-�d-ejj�Z+Gd.d/�d/ejj�Z,dS)0�N)�time)�nn)�8functional)�modules)�9attentions)�commons)�init_weights�get_padding)�Conv1d�ConvTranspose1d�	AvgPool1d�Conv2d)�weight_norm�remove_weight_norm�
spectral_norm)rcs&eZdZd�fdd�	Zdd�Z�ZS)�TextEncoder256Tc		s�t���||_||_||_||_||_||_||_t	�10d|�|_t	jddd�|_
|dkrht	�d|�|_t�||||||�|_t	�||dd�|_dS)N�皙�����?T��inplace����super�__init__�out_channels�hidden_channels�filter_channels�n_heads�n_layers�kernel_size�	p_dropoutr�Linear�	emb_phone�	LeakyReLU�lrelu�	Embedding�	emb_pitchr�Encoder�encoderr11�proj�	�selfrrrrrr r!�f0��	__class__��^C:\Users\marce\Downloads\Applio\Applio-RVC-Fork-Recode-Beautify\lib\infer\infer_pack\models.pyrs 12�zTextEncoder256.__init__c	Cs�|dkr|�|�}n|�|�|�|�}|t�|j�}|�|�}t�|dd�}t�t	�13||�d��d��|j
�}|�|||�}|�|�|}tj||jdd�\}}|||fS�Nr�����r��dim�r#r'�math�sqrtrr%�torch�	transpose�	unsqueezer�
sequence_mask�size�to�dtyper)r*�splitr�	r,�phone�pitch�lengths�x�x_mask�stats�m�logsr0r0r1�forward.s14�zTextEncoder256.forward)T��__name__�15__module__�__qualname__rrJ�
__classcell__r0r0r.r1rs16�rcs&eZdZd�fdd�	Zdd�Z�ZS)�TextEncoder768Tc		s�t���||_||_||_||_||_||_||_t	�17d|�|_t	jddd�|_
|dkrht	�d|�|_t�||||||�|_t	�||dd�|_dS)NirTrrrrrr+r.r0r1rAs 18�zTextEncoder768.__init__c	Cs�|dkr|�|�}n|�|�|�|�}|t�|j�}|�|�}t�|dd�}t�t	�19||�d��d��|j
�}|�|||�}|�|�|}tj||jdd�\}}|||fSr2r6rAr0r0r1rJ]s20�zTextEncoder768.forward)TrKr0r0r.r1rP@s21�rPcs0eZdZd�fdd�	Zddd�Zd	d22�Z�ZS)
�ResidualCouplingBlock�rc	s�t���||_||_||_||_||_||_||_t	�23�|_t|�D]4}|j�
tj||||||dd��|j�
t���qFdS)NT)�gin_channels�	mean_only)rr�channelsrr �
dilation_rater�n_flowsrSr�24ModuleList�flows�range�appendr�ResidualCouplingLayer�Flip)	r,rUrr rVrrWrS�ir.r0r1rps,25 2627��zResidualCouplingBlock.__init__NFcCsJ|s&|jD]}|||||d�\}}q28n t|j�D]}|||||d�}q0|S)N��g�reverse)rY�reversed)r,rErFr`ra�flow�_r0r0r1rJ�s29zResidualCouplingBlock.forwardcCs&t|j�D]}|j|d��q30dS)Nr)rZrWrYr)r,r^r0r0r1r�sz(ResidualCouplingBlock.remove_weight_norm)rRr)NF�rLrMrNrrJrrOr0r0r.r1rQos31�"32	rQcs0eZdZd	�fdd�	Zd33dd�Zdd�Z�ZS)�PosteriorEncoderrcsrt���||_||_||_||_||_||_||_t	�34||d�|_tj
|||||d�|_t	�35||dd�|_dS)Nr�rSr)rr�in_channelsrrr rVrrSrr36�prer�WN�encr*)r,rhrrr rVrrSr.r0r1r�s"37 38�zPosteriorEncoder.__init__Nc	Cs�t�t�||�d��d��|j�}|�|�|}|j|||d�}|�	|�|}tj39||jdd�\}}|t�|�t�
|�|}||||fS)Nrr�r`r4)r9r;rr<r=r>r?rirkr*r@r�40randn_like�exp)	r,rE�	x_lengthsr`rFrGrHrI�zr0r0r1rJ�s�zPosteriorEncoder.forwardcCs|j��dS�N)rkr�r,r0r0r1r�sz#PosteriorEncoder.remove_weight_norm)r)Nrer0r0r.r1rf�s	�41rfcs0eZdZd	�fdd�	Zd42dd�Zdd�Z�ZS)�	Generatorrc	sHtt|���t|�|_t|�|_t||dddd�|_|dkrDtj	ntj43}t��|_
tt||��D]F\}	\}44}|j
�tt|d|	|d|	d||45||46dd���qbt��|_tt|j
��D]D}	|d|	d}tt||��D] \}
\}}|j�||||��q�q�t|dddddd�|_|j
�t�|d	k�rDt�||d�|_dS)47N�r���padding�1rF�rw�biasr)rrsr�len�num_kernels�
num_upsamplesr48�conv_prer�	ResBlock1�	ResBlock2rrX�ups�	enumerate�zipr[rr�	resblocksrZ�	conv_post�applyr�cond)r,�initial_channel�resblock�resblock_kernel_sizes�resblock_dilation_sizes�upsample_rates�upsample_initial_channel�upsample_kernel_sizesrSr^�u�k�ch�j�dr.r0r1r�s>495051�525354���55�56zGenerator.__init__NcCs�|�|�}|dur ||�|�}t|j�D]|}t�|tj�}|j||�}d}t|j	�D]B}|dur~|j57||j	||�}qX||j58||j	||�7}qX||j	}q*t�|�}|�|�}t�
|�}|Srq)r~r�rZr}�F�59leaky_relur�LRELU_SLOPEr�r|r�r�r9�tanh)r,rEr`r^�xsr�r0r0r1rJ�s 60616263zGenerator.forwardcCs,|jD]}t|�q|jD]}|��qdSrq�r�rr��r,�lr0r0r1rs646566zGenerator.remove_weight_norm)r)Nrer0r0r.r1rs�s67�/68rscs2eZdZdZd�fdd�	Zdd	�Zd69d�Z�ZS)
�SineGena�Definition of sine generator70    SineGen(samp_rate, harmonic_num = 0,71            sine_amp = 0.1, noise_std = 0.003,72            voiced_threshold = 0,73            flag_for_pulse=False)74    samp_rate: sampling rate in Hz75    harmonic_num: number of harmonic overtones (default 0)76    sine_amp: amplitude of sine-wavefrom (default 0.1)77    noise_std: std of Gaussian noise (default 0.003)78    voiced_thoreshold: F0 threshold for U/V classification (default 0)79    flag_for_pulse: this SinGen is used inside PulseGen (default False)80    Note: when flag_for_pulse is True, the first time step of a voiced81        segment is always sin(np.pi) or cos(0)82    rr��~j�t�h?Fcs<tt|���||_||_||_|jd|_||_||_dS�Nr)	rr�r�sine_amp�	noise_std�harmonic_numr5�
sampling_rate�voiced_threshold)r,�	samp_rater�r�r�r��flag_for_pulser.r0r1r)s	zSineGen.__init__cCs0t�|�}|||jk}|jjdkr,|��}|S)N�
privateuseone)r9�	ones_liker��device�type�float)r,r-�uvr0r0r1�_f02uv:s8384zSineGen._f02uvcCs�t����j|dd�df�dd�}tj|jd|jd|j|jd�}|dd�dd�df|dd�dd�df<t�|j	�D]8}|dd�dd�df|d|dd�dd�|df<qz||j85d}tj|jd|jd|jd�}d|dd�df<|dd�ddd�f||dd�ddd�f<t�|d�}||9}t
j|�dd�|ddd��dd�}t
j|�dd�|d	d86��dd�}|d;}|dd�dd�dd�f|dd�dd�dd�fdk}t�|�}	|d|	dd�dd�dd�f<t�tj||	dd
�dtj�}87|88|j}89|�|�}t
j|�dd�|d	d90��dd�}||jd||jd}|t�|91�}
|92||
}93Wd�n1�s|0Y|94||
fS)z�sine_tensor, uv = forward(f0)95        input F0: tensor(batchsize=1, length, dim=1)96                  f0 for unvoiced steps should be 097        output sine_tensor: tensor(batchsize=1, length, dim)98        output uv: tensor(batchsize=1, length, 1)99        Nrrr)r��linearT)�scale_factor�mode�
align_corners�nearest)r�r�r3g�r4ru)r9�no_gradr:�zeros�shaper5r��np�aranger�r��rand�cumsumr��interpolate�100zeros_like�sin�pir�r�r�rm)r,r-�upp�f0_buf�idx�101rad_values�rand_ini�tmp_over_one�tmp_over_one_idx�cumsum_shift�102sine_wavesr��	noise_amp�noiser0r0r1rJBs^"(��,103����8104�105106��,zSineGen.forward)rrr�rF)rLrMrN�__doc__rr�rJrOr0r0r.r1r�s�r�cs,eZdZdZd�fdd�	Zdd	d107�Z�ZS)
�SourceModuleHnNSFa�SourceModule for hn-nsf108    SourceModule(sampling_rate, harmonic_num=0, sine_amp=0.1,109                 add_noise_std=0.003, voiced_threshod=0)110    sampling_rate: sampling_rate in Hz111    harmonic_num: number of harmonic above F0 (default: 0)112    sine_amp: amplitude of sine source signal (default: 0.1)113    add_noise_std: std of additive Gaussian noise (default: 0.003)114        note that amplitude of noise in unvoiced is decided115        by sine_amp116    voiced_threshold: threhold to set U/V given F0 (default: 0)117    Sine_source, noise_source = SourceModuleHnNSF(F0_sampled)118    F0_sampled (batchsize, length, 1)119    Sine_source (batchsize, length, 1)120    noise_source (batchsize, length 1)121    uv (batchsize, length, 1)122    rrr�TcsVtt|���||_||_||_t|||||�|_tj	�123|dd�|_tj	��|_
dSr�)rr�rr�r��is_halfr��	l_sin_genr9rr"�l_linear�Tanh�l_tanh)r,r�r�r��
add_noise_std�voiced_threshodr�r.r0r1r�s	124�zSourceModuleHnNSF.__init__NcCs:|�||�\}}}|jr |��}|�|�|��}|ddfSrq)r�r��halfr�r�)r,rEr��	sine_wavsr�rd�125sine_merger0r0r1rJ�s126zSourceModuleHnNSF.forward)rrr�rT)N)rLrMrNr�rrJrOr0r0r.r1r�ws�r�cs0eZdZd	�fdd�	Zd127dd�Zdd�Z�ZS)�GeneratorNSFFcs�tt|���t|�|_t|�|_tjjt	�128|�d�|_t|	d|129d�|_
t��|_t||dddd�|_|dkrttjntj}t��|_tt||��D]�\}\}}
|d	|d}|j�tt|d	||d	|d|
||
|d	d���|dt|�k�r4t	�130||dd��}|j�td||d	||d	d131��q�|j�td|dd��q�t��|_tt|j��D]H}|d	|d}tt||��D]"\}\}
}|j�|||
|���q��qdt|dddddd
�|_|j�t�|dk�r�t�||d�|_ t	�132|�|_!dS)N)r�r)r�r�r�rtrrurvrxr)r �striderw)r Fry)"rr�rr{r|r}r9r�Upsampler��prod�	f0_upsampr��m_sourcerX�noise_convsr133r~rrr�r�r�r�r[rrr�rZr�r�rr�r�)r,r�r�r�r�r�r�r�rS�srr�r^r�r��c_cur�	stride_f0r�r�r�r.r0r1r�sd
134135�136137�138139140�����141142�143zGeneratorNSF.__init__NcCs|�||j�\}}}|�dd�}|�|�}|dur@||�|�}t|j�D]�}t�|t	j144�}|j||�}|j||�}||}d}	t|j
�D]B}145|	dur�|j||j
|146|�}	q�|	|j||j
|147|�7}	q�|	|j
}qJt�|�}|�|�}t�|�}|S)Nrr)r�r�r:r~r�rZr}r�r�rr�r�r�r|r�r�r9r�)r,rEr-r`�148har_source�149noi_sourcer�r^�x_sourcer�r�r0r0r1rJ�s(150151152153zGeneratorNSF.forwardcCs,|jD]}t|�q|jD]}|��qdSrqr�r�r0r0r1rs154155156zGeneratorNSF.remove_weight_norm)F)Nrer0r0r.r1r��s�G157r�i}i@�i��)�32k�40k�48kcs6eZdZ�fdd�Zdd�Zdd�Zd158dd	�Z�ZS)�SynthesizerTrnMs256NSFsidcst���t|�td�kr"t|}||_||_||_||_||_||_	||_159|	|_|160|_||_
||_|
|_||_||_||_||_||_t|||||||	�|_t||161|||
|||||dd�162|_t|||ddd|d�|_t||ddd|d�|_t�|j|�|_t d	|d163|j�dS�N�strrr�)rSr�r��r�rgru�
gin_channels:�self.spk_embed_dim:)!rrr��sr2sr�
spec_channels�inter_channelsrrrrr r!r�r�r�r�r�r��segment_sizerS�
spk_embed_dimr�enc_pr��decrf�enc_qrQrcrr&�emb_g�print�r,r�r�r�rrrrr r!r�r�r�r�r�r�r�rSr��kwargsr.r0r1rsn164�	��	�z"SynthesizerTrnMs256NSFsid.__init__cCs"|j��|j��|j��dSrq�r�rrcr�rrr0r0r1rfs165166z,SynthesizerTrnMs256NSFsid.remove_weight_normc167Cs�|�|��d�}|�|||�\}	}168}|j|||d�\}}
}}|j|||d�}t�|||j�\}}t�|||j�}|j	|||d�}|||||||	|169|
|ffS�Nr3rl�170r�r;r�r�rcr�rand_slice_segmentsr��slice_segments2r��r,rB�
phone_lengthsrC�pitchf�y�	y_lengths�dsr`�m_p�logs_prFrp�m_q�logs_q�y_mask�z_p�z_slice�	ids_slice�or0r0r1rJks�z!SynthesizerTrnMs256NSFsid.forwardNcCs�|�|��d�}|�|||�\}}	}171|t�|	�t�|�d|172}|r�t|jd|�}|dd�dd�|d�f}|173dd�dd�|d�f}174|dd�|d�f}|j||175|dd�}
|j	|
|176||d�}||177|
|||	ffS�Nr3g��1ZGU�?rTr_rl�178r�r;r�r9rnrm�intr�rcr��r,rBr�rC�nsff0�sid�rater`rrrFr�headrpr179r0r0r1�infer|s zSynthesizerTrnMs256NSFsid.infer)N�rLrMrNrrrJrrOr0r0r.r1r�sOr�cs6eZdZ�fdd�Zdd�Zdd�Zd180dd	�Z�ZS)�SynthesizerTrnMs768NSFsidcst���t|�td�kr"t|}||_||_||_||_||_||_	||_181|	|_|182|_||_
||_|
|_||_||_||_||_||_t|||||||	�|_t||183|||
|||||dd�184|_t|||ddd|d�|_t||ddd|d�|_t�|j|�|_t d	|d185|j�dSr�)!rrr�r�r�r�rrrrr r!r�r�r�r�r�r�r�rSr�rPr�r�r�rfr�rQrcrr&r�r�r�r.r0r1r�sn186�	��	�z"SynthesizerTrnMs768NSFsid.__init__cCs"|j��|j��|j��dSrqr�rrr0r0r1r�s187188z,SynthesizerTrnMs768NSFsid.remove_weight_normc189Cs�|�|��d�}|�|||�\}	}190}|j|||d�\}}
}}|j|||d�}t�|||j�\}}t�|||j�}|j	|||d�}|||||||	|191|
|ffSr�r�r�r0r0r1rJ�s�z!SynthesizerTrnMs768NSFsid.forwardNcCs�|�|��d�}|�|||�\}}	}192|t�|	�t�|�d|193}|r�t|jd|�}|dd�dd�|d�f}|194dd�dd�|d�f}195|dd�|d�f}|j||196|dd�}
|j	|
|197||d�}||198|
|||	ffSrrrr0r0r1r�s zSynthesizerTrnMs768NSFsid.infer)Nrr0r0r.r1r�sOrcs8eZdZd199�fdd�	Zdd�Zdd�Zddd	�Z�ZS)�SynthesizerTrnMs256NSFsid_nonoNc200s�t���||_||_||_||_||_||_||_|	|_	|201|_202||_||_|
|_
||_||_||_||_||_t|||||||	dd�|_t||203|||
|||d�|_t|||ddd|d�|_t||ddd|d�|_t�|j|�|_td|d	|j�dS�204NF)r-rgr�rr�rur�r�)rrr�r�rrrrr r!r�r�r�r�r�r�r�rSr�rr�rsr�rfr�rQrcrr&r�r�r�r.r0r1r�sh205�206�207�	�z'SynthesizerTrnMs256NSFsid_nono.__init__cCs"|j��|j��|j��dSrqr�rrr0r0r1rKs208209z1SynthesizerTrnMs256NSFsid_nono.remove_weight_normc210Cs�|�|��d�}|�|d|�\}}}	|j|||d�\}211}}}
|j|212|
|d�}t�|213||j�\}}|j||d�}|||	|
|214|||||ffSr��	r�r;r�r�rcrr�r�r��r,rBr�r�rrr`rrrFrprrrrrr	r215r0r0r1rJPs�z&SynthesizerTrnMs256NSFsid_nono.forwardc
Cs�|�|��d�}|�|d|�\}}}|t�|�t�|�d|}	|r�t|	jd|�}216|	dd�dd�|217d�f}	|dd�dd�|218d�f}|j|	||dd�}|j	|||d�}||||	||ffSrr�
r,rBr�rrr`rrrFrrrpr219r0r0r1r[s z$SynthesizerTrnMs256NSFsid_nono.infer)N)Nrr0r0r.r1r�s220�Lrcs8eZdZd221�fdd�	Zdd�Zdd�Zddd	�Z�ZS)�SynthesizerTrnMs768NSFsid_nonoNc222s�t���||_||_||_||_||_||_||_|	|_	|223|_224||_||_|
|_
||_||_||_||_||_t|||||||	dd�|_t||225|||
|||d�|_t|||ddd|d�|_t||ddd|d�|_t�|j|�|_td|d	|j�dSr)rrr�r�rrrrr r!r�r�r�r�r�r�r�rSr�rPr�rsr�rfr�rQrcrr&r�r�r�r.r0r1rish226�227�228�	�z'SynthesizerTrnMs768NSFsid_nono.__init__cCs"|j��|j��|j��dSrqr�rrr0r0r1r�s229230z1SynthesizerTrnMs768NSFsid_nono.remove_weight_normc231Cs�|�|��d�}|�|d|�\}}}	|j|||d�\}232}}}
|j|233|
|d�}t�|234||j�\}}|j||d�}|||	|
|235|||||ffSr�rrr0r0r1rJ�s�z&SynthesizerTrnMs768NSFsid_nono.forwardc
Cs�|�|��d�}|�|d|�\}}}|t�|�t�|�d|}	|r�t|	jd|�}236|	dd�dd�|237d�f}	|dd�dd�|238d�f}|j|	||dd�}|j	|||d�}||||	||ffSrrrr0r0r1r�s z$SynthesizerTrnMs768NSFsid_nono.infer)N)Nrr0r0r.r1rhs239�Lrcs&eZdZd�fdd�	Zdd�Z�ZS)�MultiPeriodDiscriminatorFcsHtt|���gd�}t�d�g}|�fdd�|D�}t�|�|_dS)N)rrur�rt����use_spectral_normcsg|]}t|�d��qS�r��DiscriminatorP��.0r^rr0r1�240<listcomp>�sz5MultiPeriodDiscriminator.__init__.<locals>.<listcomp>)rrr�DiscriminatorSrrX�discriminators�r,r �periods�discsr.rr1r�s�z!MultiPeriodDiscriminator.__init__c
Cspg}g}g}g}t|j�D]H\}}||�\}	}241||�\}}|�|	�|�|�|�|242�|�|�q||||fSrq�r�r(r[�
r,r��y_hat�y_d_rs�y_d_gs�fmap_rs�fmap_gsr^r��y_d_r�fmap_r�y_d_g�fmap_gr0r0r1rJ�s243244245z MultiPeriodDiscriminator.forward)FrKr0r0r.r1r�srcs&eZdZd�fdd�	Zdd�Z�ZS)�MultiPeriodDiscriminatorV2FcsHtt|���gd�}t�d�g}|�fdd�|D�}t�|�|_dS)N)rrur�rtrr��%rcsg|]}t|�d��qSr!r"r$rr0r1r&�sz7MultiPeriodDiscriminatorV2.__init__.<locals>.<listcomp>)rr7rr'rrXr(r)r.rr1r�s�z#MultiPeriodDiscriminatorV2.__init__c
Cspg}g}g}g}t|j�D]H\}}||�\}	}246||�\}}|�|	�|�|�|�|247�|�|�q||||fSrqr,r-r0r0r1rJ�s248249250z"MultiPeriodDiscriminatorV2.forward)FrKr0r0r.r1r7�sr7cs&eZdZd�fdd�	Zdd�Z�ZS)r'Fcs�tt|���|dkrtnt}t�|tdddddd��|tdddd	d	d251d��|tdddd	dd252d��|tdd
dd	dd253d��|td
d
dd	dd254d��|td
d
dddd��g�|_|td
ddddd��|_	dS)NFrr��rtrv�@�)rR�)�groupsrwr�r�rru)255rr'rrrrrXr256�convsr�)r,r �norm_fr.r0r1rs��257zDiscriminatorS.__init__cCsZg}|jD]$}||�}t�|tj�}|�|�q258|�|�}|�|�t�|dd�}||fS)Nrr3)	r@r�r�rr�r[r�r9�flatten)r,rE�fmapr�r0r0r1rJs259260261zDiscriminatorS.forward)FrKr0r0r.r1r'sr'cs&eZdZd�fdd�	Zdd�Z�ZS)	r#r�ruFcstt|���||_||_|dkr&tnt}t�|t	dd|df|dft262|d�dfd��|t	dd|df|dft263|d�dfd��|t	dd|df|dft264|d�dfd��|t	dd|df|dft265|d�dfd��|t	dd|dfdt266|d�dfd��g�|_|t	ddd	dd267d��|_dS)NFr� rrv�ir?)rur)rr)
rr#r�periodr rrrrXr
r	r@r�)r,rFr r�r rAr.r0r1r-sj��	��	��	��	����1zDiscriminatorP.__init__cCs�g}|j\}}}||jdkrH|j||j}t�|d|fd�}||}|�||||j|j�}|jD]$}||�}t�|tj�}|�	|�qf|�268|�}|�	|�t�|dd�}||fS)Nr�reflectrr3)
r�rFr��pad�viewr@r�rr�r[r�r9rB)r,rErC�b�c�t�n_padr�r0r0r1rJes269270271zDiscriminatorP.forward)r�ruFrKr0r0r.r1r#,s8r#)-r7�pdb�osr�ttimer9r�torch.nnrr��lib.infer.infer_packrrrZlib.infer.infer_pack.commonsrr	r272rrr
Ztorch.nn.utilsrrr�numpyr��ModulerrPrQrfrsr�r�r�r�r�rrrrr7r'r#r0r0r0r1�<module>sB//1-L^1h�ttjj