
    0;ji                     L    d dl Z d dlmZ d dlmZ  G d dej                  ZdS )    N)weight_normc                   X     e Zd Z	 	 	 ddededef fdZdej        d	ej        fd
Z xZS )ConvRNNF0Predictor   P      	num_classin_channelscond_channelsc                    t                                                       || _        t          j        t          t          j        ||dd                    t          j                    t          t          j        ||dd                    t          j                    t          t          j        ||dd                    t          j                    t          t          j        ||dd                    t          j                    t          t          j        ||dd                    t          j                    
  
        | _        t          j	        || j                  | _
        d S )N   r   )kernel_sizepadding)in_featuresout_features)super__init__r	   nn
Sequentialr   Conv1dELUcondnetLinear
classifier)selfr	   r
   r   	__class__s       ^/root/voice-cloning/.venv/lib/python3.11/site-packages/chatterbox/models/s3gen/f0_predictor.pyr   zConvRNNF0Predictor.__init__   s9   
 	"}	+}!QOOO  FHH	-AqQQQ  FHH	-AqQQQ  FHH	-AqQQQ  FHH	-AqQQQ  FHH)
 
, )DN[[[    xreturnc                     |                      |          }|                    dd          }t          j        |                     |                              d                    S )Nr      )r   	transposetorchabsr   squeeze)r   r   s     r   forwardzConvRNNF0Predictor.forward4   sN    LLOOKK1y++33B77888r   )r   r   r   )	__name__
__module____qualname__intr   r%   Tensorr(   __classcell__)r   s   @r   r   r      s        "#$&&)\ \\!\ !$\ \ \ \ \ \@9 9%, 9 9 9 9 9 9 9 9r   r   )r%   torch.nnr   torch.nn.utils.parametrizationsr   Moduler    r   r   <module>r3      sj           7 7 7 7 7 7$9 $9 $9 $9 $9 $9 $9 $9 $9 $9r   