Ë
    S^(hc:  ã                   ó°   — d Z ddl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 G d„ de«      Z G d„ de«      Zy)z#BARK model generation configurationé    N)ÚDicté   )ÚGenerationConfig)Úloggingc                   óD   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )ÚBarkSemanticGenerationConfigÚsemanticc                 ó¨   •— t        ‰| �  d||	|||||||dœ	|¤Ž |
| _        || _        || _        || _        || _        || _        || _        || _	        y)a  Class that holds a generation configuration for [`BarkSemanticModel`].

        This configuration inherit from [`GenerationConfig`] and can be used to control the model generation. Read the
        documentation from [`GenerationConfig`] for more information.

        Args:
            eos_token_id (`int`, *optional*, defaults to 10_000):
                The id of the *end-of-sequence* token.
            renormalize_logits (`bool`, *optional*, defaults to `True`):
                Whether to renormalize the logits after applying all the logits processors (including the
                custom ones). It's highly recommended to set this flag to `True` as the search algorithms suppose the
                score logits are normalized but some logit processors break the normalization.
            max_new_tokens (`int`, *optional*, defaults to 768):
                The maximum numbers of tokens to generate, ignoring the number of tokens in the prompt.
            output_scores (`bool`, *optional*, defaults to `False`):
                Whether or not to return the prediction scores. See `scores` under returned tensors for more details.
            return_dict_in_generate (`bool`, *optional*, defaults to `False`):
                Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
            output_hidden_states (`bool`, *optional*, defaults to `False`):
                Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
                for more details.
            output_attentions (`bool`, *optional*, defaults to `False`):
                Whether or not to return the attentions tensors of all attention layers. See `attentions` under
                returned tensors for more details.
            temperature (`float`, *optional*, defaults to 1.0):
                The value used to modulate the next token probabilities.
            do_sample (`bool`, *optional*, defaults to `False`):
                Whether or not to use sampling ; use greedy decoding otherwise.
            text_encoding_offset (`int`, *optional*, defaults to 10_048):
                Text encoding offset.
            text_pad_token (`int`, *optional*, defaults to 129_595):
                Text pad token.
            semantic_infer_token (`int`, *optional*, defaults to 129_599):
                Semantic infer token.
            semantic_vocab_size (`int`, *optional*, defaults to 10_000):
                Semantic vocab size.
            max_input_semantic_length (`int`, *optional*, defaults to 256):
                Max length of semantic input vector.
            semantic_rate_hz (`float`, *optional*, defaults to 49.9):
                Semantic rate in Hertz.
            min_eos_p (`float`, *optional*):
                Minimum threshold of the probability of the EOS token for it to be sampled. This is an early stopping
                strategy to mitigate potential unwanted generations at the end of a prompt. The original implementation
                suggests a default value of 0.2.
        )	ÚtemperatureÚ	do_sampleÚeos_token_idÚrenormalize_logitsÚmax_new_tokensÚoutput_scoresÚreturn_dict_in_generateÚoutput_hidden_statesÚoutput_attentionsN© )
ÚsuperÚ__init__Útext_encoding_offsetÚtext_pad_tokenÚsemantic_pad_tokenÚsemantic_infer_tokenÚsemantic_vocab_sizeÚmax_input_semantic_lengthÚsemantic_rate_hzÚ	min_eos_p)Úselfr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ÚkwargsÚ	__class__s                     €út/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/transformers/models/bark/generation_configuration_bark.pyr   z%BarkSemanticGenerationConfig.__init__   s~   ø€ ôB 	‰Ñð 	
Ø#ØØ%Ø1Ø)Ø'Ø$;Ø!5Ø/ñ	
ð ò	
ð %9ˆÔ!Ø,ˆÔØ".ˆÔØ$8ˆÔ!Ø#6ˆÔ Ø)BˆÔ&Ø 0ˆÔØ"ˆ�ó    )é'  Ti   FFFFç      ð?Fi@'  i;ú i?ú r$   é   g33333óH@N)Ú__name__Ú
__module__Ú__qualname__Ú
model_typer   Ú__classcell__©r!   s   @r"   r   r      sF   ø„ Ø€Jð ØØØØ %Ø"ØØØØ#ØØ$Ø"Ø"%ØØ÷#U#ñ U#r#   r   c                   óJ   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddedefˆ fd„Zˆ xZS )ÚBarkCoarseGenerationConfigÚcoarse_acousticsÚmax_coarse_historyÚsliding_window_lenc                 ó–   •— t        ‰| �  d|||||||dœ|¤Ž || _        |	| _        |
| _        || _        || _        || _        || _        y)as
  Class that holds a generation configuration for [`BarkCoarseModel`].

        This configuration inherit from [`GenerationConfig`] and can be used to control the model generation. Read the
        documentation from [`GenerationConfig`] for more information.

        Args:
            renormalize_logits (`bool`, *optional*, defaults to `True`):
                Whether to renormalize the logits after applying all the logits processors (including the
                custom ones). It's highly recommended to set this flag to `True` as the search algorithms suppose the
                score logits are normalized but some logit processors break the normalization.
            output_scores (`bool`, *optional*, defaults to `False`):
                Whether or not to return the prediction scores. See `scores` under returned tensors for more details.
            return_dict_in_generate (`bool`, *optional*, defaults to `False`):
                Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
            output_hidden_states (`bool`, *optional*, defaults to `False`):
                Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
                for more details.
            output_attentions (`bool`, *optional*, defaults to `False`):
                Whether or not to return the attentions tensors of all attention layers. See `attentions` under
                returned tensors for more details.
            temperature (`float`, *optional*, defaults to 1.0):
                The value used to modulate the next token probabilities.
            do_sample (`bool`, *optional*, defaults to `False`):
                Whether or not to use sampling ; use greedy decoding otherwise.
            coarse_semantic_pad_token (`int`, *optional*, defaults to 12_048):
                Coarse semantic pad token.
            coarse_rate_hz (`int`, *optional*, defaults to 75):
                Coarse rate in Hertz.
            n_coarse_codebooks (`int`, *optional*, defaults to 2):
                Number of coarse codebooks.
            coarse_infer_token (`int`, *optional*, defaults to 12_050):
                Coarse infer token.
            max_coarse_input_length (`int`, *optional*, defaults to 256):
                Max length of input coarse vector.
            max_coarse_history (`int`, *optional*, defaults to 630):
                Max length of the output of the coarse acoustics model used in the fine generation step.
            sliding_window_len (`int`, *optional*, defaults to 60):
                The coarse generation step uses a sliding window to generate raw audio.
        )r   r   r   r   r   r   r   Nr   )	r   r   Úcoarse_semantic_pad_tokenÚcoarse_rate_hzÚn_coarse_codebooksÚcoarse_infer_tokenÚmax_coarse_input_lengthr0   r1   )r   r   r   r   r   r   r   r   r3   r4   r5   r6   r7   r0   r1   r    r!   s                   €r"   r   z#BarkCoarseGenerationConfig.__init__y   sr   ø€ ôr 	‰Ñð 		
Ø#ØØ1Ø'Ø$;Ø!5Ø/ñ		
ð ò		
ð *CˆÔ&Ø,ˆÔØ"4ˆÔØ"4ˆÔØ'>ˆÔ$Ø"4ˆÔØ"4ˆÕr#   )TFFFFr%   Fi/  éK   é   i/  r&   iv  é<   )r'   r(   r)   r*   Úintr   r+   r,   s   @r"   r.   r.   v   sV   ø„ Ø#€Jð  ØØ %Ø"ØØØØ"(ØØØ!Ø #Ø"%Ø"$ñJ5ð  ðJ5ð  ÷J5ñ J5r#   r.   c                   ó2   ‡ — e Zd ZdZ	 	 	 	 dˆ fd„	Zd„ Zˆ xZS )ÚBarkFineGenerationConfigÚfine_acousticsc                 óP   •— t         ‰| �  |¬«       || _        || _        || _        y)aª  Class that holds a generation configuration for [`BarkFineModel`].

        [`BarkFineModel`] is an autoencoder model, so should not usually be used for generation. However, under the
        hood, it uses `temperature` when used by [`BarkModel`]

        This configuration inherit from [`GenerationConfig`] and can be used to control the model generation. Read the
        documentation from [`GenerationConfig`] for more information.

        Args:
            temperature (`float`, *optional*):
                The value used to modulate the next token probabilities.
            max_fine_history_length (`int`, *optional*, defaults to 512):
                Max length of the fine history vector.
            max_fine_input_length (`int`, *optional*, defaults to 1024):
                Max length of fine input vector.
            n_fine_codebooks (`int`, *optional*, defaults to 8):
                Number of codebooks used.
        )r   N)r   r   Úmax_fine_history_lengthÚmax_fine_input_lengthÚn_fine_codebooks)r   r   r@   rA   rB   r    r!   s         €r"   r   z!BarkFineGenerationConfig.__init__É   s-   ø€ ô4 	‰Ñ [ÐÔ1à'>ˆÔ$Ø%:ˆÔ"Ø 0ˆÕr#   c                  ó   — y)zŒ
        Overrides GenerationConfig.validate because BarkFineGenerationConfig don't use any parameters outside
        temperature.
        Nr   )r   r    s     r"   Úvalidatez!BarkFineGenerationConfig.validateé   s   € ð
 	r#   )r%   i   é   é   )r'   r(   r)   r*   r   rD   r+   r,   s   @r"   r=   r=   Æ   s!   ø„ Ø!€Jð Ø #Ø"Øõ1ö@r#   r=   c                   óX   — e Zd ZdZdZ	 	 	 	 	 d
dededefd„Zedede	de
fd„«       Zd	„ Zy)ÚBarkGenerationConfigÚbarkTNÚsemantic_configÚcoarse_acoustics_configÚfine_acoustics_configc                 ó  — |€i }t         j                  d«       |€i }t         j                  d«       |€i }t         j                  d«       t        di |¤Ž| _        t	        di |¤Ž| _        t        di |¤Ž| _        || _        || _	        y)a$  Class that holds a generation configuration for [`BarkModel`].

        The [`BarkModel`] does not have a `generate` method, but uses this class to generate speeches with a nested
        [`BarkGenerationConfig`] which uses [`BarkSemanticGenerationConfig`], [`BarkCoarseGenerationConfig`],
        [`BarkFineGenerationConfig`].

        This configuration inherit from [`GenerationConfig`] and can be used to control the model generation. Read the
        documentation from [`GenerationConfig`] for more information.

        Args:
            semantic_config (`Dict`, *optional*):
                Semantic generation configuration.
            coarse_acoustics_config (`Dict`, *optional*):
                Coarse generation configuration.
            fine_acoustics_config (`Dict`, *optional*):
                Fine generation configuration.
            sample_rate (`int`, *optional*, defaults to 24_000):
                Sample rate.
            codebook_size (`int`, *optional*, defaults to 1024):
                Vector length for each codebook.
        NzMsemantic_config is None. initializing the semantic model with default values.zScoarse_acoustics_config is None. initializing the coarse model with default values.zOfine_acoustics_config is None. initializing the fine model with default values.r   )
ÚloggerÚinfor   rJ   r.   rK   r=   rL   Úsample_rateÚcodebook_size)r   rJ   rK   rL   rP   rQ   r    s          r"   r   zBarkGenerationConfig.__init__÷   s�   € ð< Ð"Ø ˆOÜ�K‰KÐgÔhà"Ð*Ø&(Ð#Ü�K‰KÐmÔnà Ð(Ø$&Ð!Ü�K‰KÐiÔjä;ÑN¸oÑNˆÔÜ'AÑ'\ÐD[Ñ'\ˆÔ$Ü%=Ñ%VÐ@UÑ%VˆÔ"à&ˆÔØ*ˆÕr#   c                 ón   —  | d|j                  «       |j                  «       |j                  «       dœ|¤ŽS )zÚ
        Instantiate a [`BarkGenerationConfig`] (or a derived class) from bark sub-models generation configuration.

        Returns:
            [`BarkGenerationConfig`]: An instance of a configuration object
        )rJ   rK   rL   r   )Úto_dict)ÚclsrJ   rK   rL   r    s        r"   Úfrom_sub_model_configsz+BarkGenerationConfig.from_sub_model_configs(  sD   € ñ ð 
Ø+×3Ñ3Ó5Ø$;×$CÑ$CÓ$EØ"7×"?Ñ"?Ó"Añ
ð ñ	
ð 	
r#   c                 ó$  — t        j                  | j                  «      }| j                  j	                  «       |d<   | j
                  j	                  «       |d<   | j                  j	                  «       |d<   | j                  j                  |d<   |S )zñ
        Serializes this instance to a Python dictionary. Override the default [`~PretrainedConfig.to_dict`].

        Returns:
            `Dict[str, any]`: Dictionary of all the attributes that make up this configuration instance,
        rJ   rK   rL   r*   )	ÚcopyÚdeepcopyÚ__dict__rJ   rS   rK   rL   r!   r*   )r   Úoutputs     r"   rS   zBarkGenerationConfig.to_dict=  s}   € ô —‘˜tŸ}™}Ó-ˆà$(×$8Ñ$8×$@Ñ$@Ó$BˆÐ Ñ!Ø,0×,HÑ,H×,PÑ,PÓ,RˆÐ(Ñ)Ø*.×*DÑ*D×*LÑ*LÓ*NˆÐ&Ñ'à#Ÿ~™~×8Ñ8ˆˆ|ÑØˆr#   )NNNiÀ]  rE   )r'   r(   r)   r*   Úis_compositionr   r   Úclassmethodr   r.   r=   rU   rS   r   r#   r"   rH   rH   ñ   st   „ Ø€JØ€Nð !%Ø(,Ø&*ØØñ/+àð/+ð "&ð/+ð  $ó	/+ðb ð
à5ð
ð "<ð
ð  8ò	
ó ð
ó(r#   rH   )Ú__doc__rW   Útypingr   Úgeneration.configuration_utilsr   Úutilsr   Ú
get_loggerr'   rN   r   r.   r=   rH   r   r#   r"   ú<module>rb      sg   ðñ *ã Ý å >Ý ð 
ˆ×	Ñ	˜HÓ	%€ôX#Ð#3ô X#ôvM5Ð!1ô M5ô`(Ð/ô (ôVZÐ+õ Zr#   