o
    ´‹
jÏ  ã                   @   s"   d dl mZ G dd„ dejƒZdS )é    )Únnc                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚMDNBlockzWMixture of Density Network implementation
    https://arxiv.org/pdf/2003.01950.pdf
    c                    sV   t ƒ  ¡  || _t ||d¡| _t |¡| _t ¡ | _	t 
d¡| _t ||d¡| _d S )Né   gš™™™™™¹?)ÚsuperÚ__init__Úout_channelsr   ÚConv1dÚconv1Ú	LayerNormÚnormÚReLUÚreluÚDropoutÚdropoutÚconv2)ÚselfÚin_channelsr   ©Ú	__class__© úO/home/kuhnn/.local/lib/python3.10/site-packages/TTS/tts/layers/align_tts/mdn.pyr   	   s   

zMDNBlock.__init__c                 C   s’   |   |¡}| dd¡}|  |¡}| dd¡}|  |¡}|  |¡}|  |¡}|d d …d | jd …d d …f }|d d …| jd d …d d …f }||fS )Nr   é   )r	   Ú	transposer   r   r   r   r   )r   ÚxÚoÚmu_sigmaÚmuÚ	log_sigmar   r   r   Úforward   s   




  zMDNBlock.forward)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__r   r   r   r   r      s    	r   N)Útorchr   ÚModuler   r   r   r   r   Ú<module>   s    