
    i
                     z    d Z ddlZddlZddlmZ ddlmZ ddlm	Z	  e	d      e G d	 d
e                    Z
d
gZy)zDac model configuration    N)strict   )PreTrainedConfig)auto_docstringzdescript/dac_16khz)
checkpointc                        e Zd ZU dZdZdZeed<   dZe	e   e
edf   z  ed<   dZeed	<   d
Zeed<   dZeed<   dZeed<   dZeez  ed<   dZeed<   dZeed<   dZeed<    fdZedefd       Z xZS )	DacConfiga  
    downsampling_ratios (`list[int]`, *optional*, defaults to `[2, 4, 8, 8]`):
        Ratios for downsampling in the encoder. These are used in reverse order for upsampling in the decoder.
    quantizer_dropout (`bool`, *optional*, defaults to 0):
        Whether to apply dropout to the quantizer.
    commitment_loss_weight (float, *optional*, defaults to 0.25):
        Weight of the commitment loss term in the VQVAE loss function.
    codebook_loss_weight (float, *optional*, defaults to 1.0):
        Weight of the codebook loss term in the VQVAE loss function.

    Example:

    ```python
    >>> from transformers import DacModel, DacConfig

    >>> # Initializing a "descript/dac_16khz" style configuration
    >>> configuration = DacConfig()

    >>> # Initializing a model (with random weights) from the "descript/dac_16khz" style configuration
    >>> model = DacModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```dac@   encoder_hidden_size)         r   .downsampling_ratiosi   decoder_hidden_size	   n_codebooksi   codebook_sizer   codebook_dimg        quantizer_dropoutg      ?commitment_loss_weightg      ?codebook_loss_weighti>  sampling_ratec                     | j                   d d d   | _        | j                  dt        | j                         z  z  | _        t        t        j                  | j                               | _        t        | (  di | y )Nr    )r   upsampling_ratiosr   lenhidden_sizeintnpprod
hop_lengthsuper__post_init__)selfkwargs	__class__s     z/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/transformers/models/dac/configuration_dac.pyr%   zDacConfig.__post_init__B   sh    !%!9!9$B$!?33qC@X@X<Y7YZbggd&>&>?@''    returnc                     t        j                  | j                        }t        j                  | j
                  |z        S )N)r!   r"   r   mathceilr   )r&   r#   s     r)   
frame_ratezDacConfig.frame_rateH   s0    WWT334
yy++j899r*   )__name__
__module____qualname____doc__
model_typer   r    __annotations__r   listtupler   r   r   r   r   floatr   r   r   r%   propertyr/   __classcell__)r(   s   @r)   r	   r	      s    2 J!!7CcU38_4C##KM3L#%(us{($(E("%%%M3( :C : :r*   r	   )r3   r-   numpyr!   huggingface_hub.dataclassesr   configuration_utilsr   utilsr   r	   __all__r   r*   r)   <module>r@      sM       . 3 # /00:  0:  10:f -r*   