Ë
    ÜÓ^j  ã                   óŠ   — 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	 ddl
mZmZ  e	d	¬
«      e G d„ de«      «       «       ZdgZy)zXcodec model configurationé    N)Ústricté   )ÚPreTrainedConfig)Úauto_docstringé   )ÚCONFIG_MAPPINGÚ
AutoConfigzManel/X-Codec)Ú
checkpointc                   óü  ‡ — e Zd ZU dZdZeedœZdg d¢dg d¢ddœZi Zd	Z	e
eez     eeez  d
f   z  ed<   dZeed<   dZeed<   dZe
e   eed
f   z  ed<   dZe
e   eed
f   z  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dz  ed<   dZeed<   dZeez  dz  ed<   dZeez  dz  ed<   ˆ fd„Zedefd„«       Zedefd„«       Zedefd „«       Z edefd!„«       Z!edefd"„«       Z"edefd#„«       Z#ˆ xZ$S )$ÚXcodecConfigaY  
    target_bandwidths (`List[float]`, *optional*, defaults to `[0.5, 1, 1.5, 2, 4]`):
        The range of different bandwidths (in kbps) the model can encode audio with.
    channel_ratios (`List[float]`, *optional*, defaults to `[1, 1]`):
        Expansion factors for the number of output channels in each semantic block.
    strides (`List[int]`, *optional*, defaults to `[1, 1]`):
        Strides for each semantic encoder block.
    block_dilations (`List[int]`, *optional*, defaults to `[1, 1]`):
        Dilation factors for the residual units in semantic blocks.
    unit_kernel_size (`int`, *optional*, defaults to 3):
        Kernel size inside each ResidualUnit in semantic blocks.
    acoustic_model_config (`Union[Dict, DacConfig]`, *optional*):
        An instance of the configuration for the acoustic (DAC) model.
    semantic_model_config (`Union[Dict, HubertConfig, WavLMConfig]`, *optional*):
        An instance of the configuration object for the semantic (HuBERT) model.

    Example:

    ```python
    >>> from transformers import XcodecModel, XcodecConfig

    >>> # Initializing configuration
    >>> configuration = XcodecConfig()

    >>> # Initializing a model (with random weights) from the configuration
    >>> model = XcodecModel(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Úxcodec)Úacoustic_model_configÚsemantic_model_configé@   ©é   é   é   r   é   é   ©Úencoder_hidden_sizeÚdownsampling_ratiosÚdecoder_hidden_sizeÚupsampling_ratiosÚhidden_size)g      à?é   g      ø?r   r   .Útarget_bandwidthsi€>  Úsample_rater   Úkernel_size)r   r   Úchannel_ratiosÚstridesÚblock_dilationsÚunit_kernel_sizeÚcodebook_sizeNÚcodebook_dimg{®Gáz”?Úinitializer_ranger   r   c                 ó  •— | j                   €t        d   dg d¢dg d¢d¬«      | _         n{t        | j                   t        «      ra| j                   j	                  dd«      | j                   d<   t        | j                   d      d	i i | j
                  ¥| j                   ¥¤Ž| _         | j                  €t        d   «       | _        n{t        | j                  t        «      ra| j                  j	                  dd«      | j                  d<   t        | j                  d      d	i i | j                  ¥| j                  ¥¤Ž| _        | j                  €2| j                   j                  | j                  j                  z   | _        t        ‰| �,  d	i |¤Ž y )
NÚdacr   r   r   r   r   Ú
model_typeÚhubert© )r   r   Ú
isinstanceÚdictÚgetÚ%_default_acoustic_model_config_kwargsr   Ú%_default_semantic_model_config_kwargsr&   r   ÚsuperÚ__post_init__)ÚselfÚkwargsÚ	__class__s     €úz/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/xcodec/configuration_xcodec.pyr3   zXcodecConfig.__post_init__\   sw  ø€ Ø×%Ñ%Ð-Ü)7¸Ñ)>Ø$&ò %1Ø$(Ú".Øô*ˆDÕ&ô ˜×2Ñ2´DÔ9Ø7;×7QÑ7Q×7UÑ7UÐVbÐdiÓ7jˆD×&Ñ& |Ñ4Ü)7¸×8RÑ8RÐS_Ñ8`Ñ)añ *Ø^�T×?Ñ?Ð^À4×C]ÑC]Ð^ñ*ˆDÔ&ð ×%Ñ%Ð-Ü)7¸Ñ)AÓ)CˆDÕ&Ü˜×2Ñ2´DÔ9Ø7;×7QÑ7Q×7UÑ7UÐVbÐdlÓ7mˆD×&Ñ& |Ñ4Ü)7¸×8RÑ8RÐS_Ñ8`Ñ)añ *Ø^�T×?Ñ?Ð^À4×C]ÑC]Ð^ñ*ˆDÔ&ð ×ÑÐ$Ø $× :Ñ :× FÑ FÈ×IcÑIc×IoÑIoÑ oˆDÔä‰ÑÑ' Ó'ó    Úreturnc                 óZ   — t        j                  | j                  | j                  z  «      S ©N)ÚmathÚceilr   Ú
hop_length©r4   s    r7   Ú
frame_ratezXcodecConfig.frame_ratez   s    € ä�y‰y˜×)Ñ)¨D¯O©OÑ;Ó<Ð<r8   c                 ó.   — | j                   j                  S r;   )r   r   r?   s    r7   Úsemantic_hidden_sizez!XcodecConfig.semantic_hidden_size~   s   € à×)Ñ)×5Ñ5Ð5r8   c                 óf   — t        t        j                  | j                  j                  «      «      S r;   )ÚintÚnpÚprodr   r   r?   s    r7   r>   zXcodecConfig.hop_length‚   s"   € ä”2—7‘7˜4×5Ñ5×IÑIÓJÓKÐKr8   c                 óf   — t        j                  t        j                  | j                  «      «      S r;   )r<   r=   Úlog2r%   r?   s    r7   Úcodebook_nbitszXcodecConfig.codebook_nbits†   s    € ä�y‰yœŸ™ 4×#5Ñ#5Ó6Ó7Ð7r8   c                 ó\   — | j                   j                  | j                  j                  z   S r;   )r   r   r   r?   s    r7   r   zXcodecConfig.hidden_sizeŠ   s%   € à×)Ñ)×5Ñ5¸×8RÑ8R×8^Ñ8^Ñ^Ð^r8   c                 ól   — t        d| j                  d   z  | j                  | j                  z  z  «      S )Niè  éÿÿÿÿ)rD   r   r@   rI   r?   s    r7   Únum_quantizerszXcodecConfig.num_quantizersŽ   s1   € ä�4˜$×0Ñ0°Ñ4Ñ4¸¿¹È4×K^ÑK^Ñ9^Ñ_Ó`Ð`r8   )%Ú__name__Ú
__module__Ú__qualname__Ú__doc__r*   r	   Úsub_configsr0   r1   r   ÚlistrD   ÚfloatÚtupleÚ__annotations__r   r    r!   r"   r#   r$   r%   r&   r'   r   r.   r   r   r3   Úpropertyr@   rB   r>   rI   r   rM   Ú__classcell__)r6   s   @r7   r   r      s×  ø… ñð> €Jð ",Ø!+ñ€Kð  "ò  ,Ø#Ú)Øñ-Ð)ð -/Ð)àEXÐ�t˜C %™KÑ(¨5°°u±¸cÐ1AÑ+BÑBÓXØ€K�ÓØ€K�ÓØ28€N�D˜‘I  c¨3 h¡Ñ/Ó8Ø+1€GˆT�#‰Y˜˜s C˜x™Ñ(Ó1Ø39€O�T˜#‘Y  s¨C x¡Ñ0Ó9ØÐ�cÓØ€M�3ÓØ#€L�#˜‘*Ó#Ø#Ð�uÓ#Ø<@Ð˜4Ð"2Ñ2°TÑ9Ó@Ø<@Ð˜4Ð"2Ñ2°TÑ9Ó@ô(ð< ð=˜Cò =ó ð=ð ð6 cò 6ó ð6ð ðL˜Cò Ló ðLð ð8 ò 8ó ð8ð ð_˜Sò _ó ð_ð ða ò aó ôar8   r   )rQ   r<   ÚnumpyrE   Úhuggingface_hub.dataclassesr   Úconfiguration_utilsr   Úutilsr   Úautor   r	   r   Ú__all__r,   r8   r7   ú<module>r_      sV   ðñ !ã ã Ý .å 3Ý #ß -ñ ˜?Ô+ØôtaÐ#ó taó ó ,ðtaðn Ð
�r8   