
    Pi                         d dl mZ d dlmZ ddlmZ ddlmZ d Z G d dej	                  Z
 G d	 d
ej	                  Z G d dej	                  ZdS )    N)weight_norm   )	SnakeBeta)Activation1dc                  >    t          t          j        | i |          S N)r   nnConv1d)argskwargss     c/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/neucodec/module.pyWNConv1dr   	   s    ry$1&11222    c                   0     e Zd Zddedef fdZd Z xZS )ResidualUnit   r   dimdilationc           
      H   t                                                       d|z  dz  }t          j        t	          t          |d                    t          ||d||          t	          t          |d                    t          ||d	                    | _        d S )
N      Talpha_logscale
activation   )kernel_sizer   paddingr   )r   super__init__r	   
Sequentialr   r   r   block)selfr   r   pad	__class__s       r   r!   zResidualUnit.__init__   s    !a']Ic$$G$G$GHHHS#1xMMMIc$$G$G$GHHHS#1---	
 



r   c                 2    ||                      |          z   S r   r#   r$   xs     r   forwardzResidualUnit.forward   s    4::a==  r   )r   r   __name__
__module____qualname__intr!   r+   __classcell__r&   s   @r   r   r      s_        
 
C 
 
 
 
 
 
 
! ! ! ! ! ! !r   r   c                   0     e Zd Zddedef fdZd Z xZS )	EncoderBlockr   r   r      	   r   stridec                    t                                                       fd|D             }t          j        g |t	          t          dz  d                    t          dz  d|z  ||dz  |dz  z             R  | _        d S )Nc                 8    g | ]}t          d z  |          S )r   )r   )r   ).0dr   s     r   
<listcomp>z)EncoderBlock.__init__.<locals>.<listcomp>   s*    HHH,sax!444HHHr   r   Tr   r   )r   r8   r   r   )r$   r   r8   	dilationsrunitsr&   s    `   r   r!   zEncoderBlock.__init__   s    HHHHiHHH] 



IcQht$L$L$LMMM

 qJ!fqj0  

 

 




r   c                 ,    |                      |          S r   r(   r)   s     r   r+   zEncoderBlock.forward,   s    zz!}}r   )r   r   r5   r,   r2   s   @r   r4   r4      s_        
 
C 
c 
 
 
 
 
 
      r   r4   c                   @     e Zd Z	 	 d
dededededef
 fdZd	 Z xZS )SemanticEncoderr6   Tinput_channelscode_dimencode_channelsr   biasc                    t          t          |                                            t          j        |||d|dz
  dz  d          | _        t          j        t          j        d          t          j        |||d|dz
  dz  |          t          j        d          t          j        |||d|dz
  dz  |                    | _        t          j        |||d|dz
  dz  d          | _	        d S )Nr   r   F)in_channelsout_channelsr   r8   r   rF   T)inplace)r   r8   r   rF   )
r    rB   r!   r	   r
   initial_convr"   ReLUresidual_blocks
final_conv)r$   rC   rD   rE   r   rF   r&   s         r   r!   zSemanticEncoder.__init__1   s$    	ot$$--///I&(# 1_*
 
 
  "}GD!!!I'$qQ.   GD!!!I'$qQ.   
  
* )'!# 1_*
 
 
r   c                     |                      |          }|                     |          |z   }|                     |          }|S r   )rK   rM   rN   r)   s     r   r+   zSemanticEncoder.forwardb   sC    a    ##a'OOAr   )r6   T)r-   r.   r/   r0   boolr!   r+   r1   r2   s   @r   rB   rB   0   s         /
 /
/
 /
 	/

 /
 /
 /
 /
 /
 /
 /
b      r   rB   )torch.nnr	   torch.nn.utilsr   activationsr   alias_free_torchr   r   Moduler   r4   rB    r   r   <module>rW      s          & & & & & & " " " " " " * * * * * *3 3 3! ! ! ! !29 ! ! !    29   (6 6 6 6 6bi 6 6 6 6 6r   