o
    
j                     @   s4   d dl Z d dlmZ d dlmZ G dd deZdS )    N)PQMF)MelganGeneratorc                       sL   e Zd Z							d fdd	Zd	d
 Zdd Ze dd Z  Z	S )MultibandMelganGeneratorP                 r
   r
      c              	      s0   t  j|||||||d tddddd| _d S )N)in_channelsout_channelsproj_kernelbase_channelsupsample_factors
res_kernelnum_res_blocksr   >   g333333?g      "@)Ntapscutoffbeta)super__init__r   
pqmf_layer)selfr   r   r   r   r   r   r   	__class__ `/home/kuhnn/.local/lib/python3.10/site-packages/TTS/vocoder/models/multiband_melgan_generator.pyr      s   
	z!MultibandMelganGenerator.__init__c                 C      | j |S N)r   analysisr   xr   r   r    pqmf_analysis      z&MultibandMelganGenerator.pqmf_analysisc                 C   r!   r"   )r   	synthesisr$   r   r   r    pqmf_synthesis    r'   z'MultibandMelganGenerator.pqmf_synthesisc                 C   s>   | | jd jj}tjj|| j| jfd}| 	| |S )N   	replicate)
tolayersweightdevicetorchnn
functionalpadinference_paddingr)   )r   cond_featuresr   r   r    	inference#   s
   z"MultibandMelganGenerator.inference)r   r   r   r   r	   r   r   )
__name__
__module____qualname__r   r&   r)   r0   no_gradr6   __classcell__r   r   r   r    r      s    r   )r0   TTS.vocoder.layers.pqmfr   #TTS.vocoder.models.melgan_generatorr   r   r   r   r   r    <module>   s    