
     `i'                         d Z ddlmZ ddlmZ ddlmZ  ej        e          Z	 G d de          Z
 G d d	e          Zd	dgZd
S )zParakeet model configuration.    )Union   )PretrainedConfig)loggingc                   V     e Zd ZdZdZdgZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Z xZS )ParakeetEncoderConfiga  
    This is the configuration class to store the configuration of a [`ParakeetEncoder`]. It is used to instantiate a
    `ParakeetEncoder` model according to the specified arguments, defining the model architecture.

    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
    documentation from [`PretrainedConfig`] for more information.

    Args:
        hidden_size (`int`, *optional*, defaults to 1024):
            Dimension of the layers and the hidden states.
        num_hidden_layers (`int`, *optional*, defaults to 24):
            Number of hidden layers in the Transformer encoder.
        num_attention_heads (`int`, *optional*, defaults to 8):
            Number of attention heads for each attention layer in the Transformer encoder.
        intermediate_size (`int`, *optional*, defaults to 4096):
            Dimension of the "intermediate" (often named feed-forward) layer in the Transformer encoder.
        hidden_act (`str` or `function`, *optional*, defaults to `"silu"`):
            The non-linear activation function (function or string) in the encoder and pooler.
        attention_bias (`bool`, *optional*, defaults to `True`):
            Whether to use bias in the attention layers.
        conv_kernel_size (`int`, *optional*, defaults to 9):
            The kernel size of the convolution layers in the Conformer block.
        subsampling_factor (`int`, *optional*, defaults to 8):
            The factor by which the input sequence is subsampled.
        subsampling_conv_channels (`int`, *optional*, defaults to 256):
            The number of channels in the subsampling convolution layers.
        num_mel_bins (`int`, *optional*, defaults to 80):
            Number of mel features.
        subsampling_conv_kernel_size (`int`, *optional*, defaults to 3):
            The kernel size of the subsampling convolution layers.
        subsampling_conv_stride (`int`, *optional*, defaults to 2):
            The stride of the subsampling convolution layers.
        dropout (`float`, *optional*, defaults to 0.1):
            The dropout ratio for all fully connected layers in the embeddings, encoder, and pooler.
        dropout_positions (`float`, *optional*, defaults to 0.0):
            The dropout ratio for the positions in the input sequence.
        layerdrop (`float`, *optional*, defaults to 0.1):
            The dropout ratio for the layers in the encoder.
        activation_dropout (`float`, *optional*, defaults to 0.1):
            The dropout ratio for activations inside the fully connected layer.
        attention_dropout (`float`, *optional*, defaults to 0.1):
            The dropout ratio for the attention layers.
        max_position_embeddings (`int`, *optional*, defaults to 5000):
            The maximum sequence length that this model might ever be used with.
        scale_input (`bool`, *optional*, defaults to `True`):
            Whether to scale the input embeddings.
        initializer_range (`float`, *optional*, defaults to 0.02):
            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.

    Example:
        ```python
        >>> from transformers import ParakeetEncoderModel, ParakeetEncoderConfig

        >>> # Initializing a `ParakeetEncoder` configuration
        >>> configuration = ParakeetEncoderConfig()

        >>> # Initializing a model from the configuration
        >>> model = ParakeetEncoderModel(configuration)

        >>> # Accessing the model configuration
        >>> configuration = model.config
        ```

    This configuration class is based on the ParakeetEncoder architecture from NVIDIA NeMo. You can find more details
    and pre-trained models at [nvidia/parakeet-ctc-1.1b](https://huggingface.co/nvidia/parakeet-ctc-1.1b).
    parakeet_encoderpast_key_values            siluT	      P   r      皙?          {Gz?c                     t                      j        di | || _        || _        || _        || _        || _        || _        || _        |dz
  dz  dk    rt          d|           || _
        || _        || _        || _        |	| _        |
| _        || _        || _        || _        || _        || _        || _        || _        || _        d S )N   r   r   z"conv_kernel_size must be odd, got  )super__init__hidden_sizenum_hidden_layersnum_attention_headsnum_key_value_headsintermediate_size
hidden_actattention_bias
ValueErrorconv_kernel_sizesubsampling_conv_kernel_sizesubsampling_conv_stridesubsampling_factorsubsampling_conv_channelsnum_mel_binsdropoutdropout_positions	layerdropactivation_dropoutattention_dropoutmax_position_embeddingsscale_inputinitializer_range)selfr   r   r   r!   r"   r#   r%   r(   r)   r*   r&   r'   r+   r,   r-   r.   r/   r0   r1   r2   kwargs	__class__s                         /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/transformers/models/parakeet/configuration_parakeet.pyr   zParakeetEncoderConfig.__init__a   s   0 	 	
 	
	
 	
 	
 '!2#6 #6 !2$,q A%**TBRTTUUU 0,H)'>$"4)B&(!2""4!2'>$&!2    )r   r   r   r   r   Tr   r   r   r   r   r   r   r   r   r   r   r   Tr   )__name__
__module____qualname____doc__
model_typekeys_to_ignore_at_inferencer   __classcell__r5   s   @r6   r   r      s        A AF $J#4"5 "%%& ! $+53 53 53 53 53 53 53 53 53 53r7   r   c                   l     e Zd ZdZdZdeiZ	 	 	 	 	 ddeeef         f fd	Z	e
defd
            Z xZS )ParakeetCTCConfiga  
    This is the configuration class to store the configuration of a [`ParakeetForCTC`]. It is used to instantiate a
    Parakeet CTC model according to the specified arguments, defining the model architecture.

    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
    documentation from [`PretrainedConfig`] for more information.

    Args:
            vocab_size (`int`, *optional*, defaults to 1025):
                Vocabulary size of the model.
            ctc_loss_reduction (`str`, *optional*, defaults to `"mean"`):
                Specifies the reduction to apply to the output of `torch.nn.CTCLoss`. Only relevant when training an
                instance of [`ParakeetForCTC`].
            ctc_zero_infinity (`bool`, *optional*, defaults to `True`):
                Whether to zero infinite losses and the associated gradients of `torch.nn.CTCLoss`. Infinite losses mainly
                occur when the inputs are too short to be aligned to the targets. Only relevant when training an instance
                of [`ParakeetForCTC`].
            encoder_config (`Union[dict, ParakeetEncoderConfig]`, *optional*):
                The config object or dictionary of the encoder.
            pad_token_id (`int`, *optional*, defaults to 1024):
                Padding token id. Also used as blank token id.

    Example:
        ```python
        >>> from transformers import ParakeetForCTC, ParakeetCTCConfig

        >>> # Initializing a Parakeet configuration
        >>> configuration = ParakeetCTCConfig()

        >>> # Initializing a model from the configuration
        >>> model = ParakeetForCTC(configuration)

        >>> # Accessing the model configuration
        >>> configuration = model.config
        ```

    This configuration class is based on the Parakeet CTC architecture from NVIDIA NeMo. You can find more details
    and pre-trained models at [nvidia/parakeet-ctc-1.1b](https://huggingface.co/nvidia/parakeet-ctc-1.1b).
    parakeet_ctcencoder_config  meanTNr   c                    || _         || _        || _        t          |t                    rt          di || _        n|t                      | _        | j        | _        | j        j        | _         t                      j	        dd|i| d S )Npad_token_idr   )

vocab_sizectc_loss_reductionctc_zero_infinity
isinstancedictr   rC   r2   r   r   )r3   rH   rI   rJ   rC   rG   r4   r5   s          r6   r   zParakeetCTCConfig.__init__   s     %"4!2nd++ 	:"7"I"I."I"ID#"7"9"9D"1!%!4!F 	
 	
%	
	
 	
 	
 	
 	
r7   c                 :     | dd|                                 i|S )z
        Instantiate a [`ParakeetCTCConfig`] (or a derived class) from parakeet encoder model configuration.

        Returns:
            [`ParakeetCTCConfig`]: An instance of a configuration object
        rC   r   )to_dict)clsrC   r4   s      r6   from_encoder_configz%ParakeetCTCConfig.from_encoder_config   s+     sEE."8"8":":EfEEEr7   )rD   rE   TNr   )r8   r9   r:   r;   r<   r   sub_configsr   rL   r   classmethodrP   r>   r?   s   @r6   rA   rA      s        & &P  J#%:;K !=A
 

 d$99:
 
 
 
 
 
4 F1F F F F [F F F F Fr7   rA   N)r;   typingr   configuration_utilsr   utilsr   
get_loggerr8   loggerr   rA   __all__r   r7   r6   <module>rY      s    $ #       3 3 3 3 3 3       
	H	%	%|3 |3 |3 |3 |3, |3 |3 |3~OF OF OF OF OF( OF OF OFd  7
8r7   