§
    ‚Štj²À  ã                   ó|  — d dl Z d dlmZ d dlm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mZ dd	lmZmZ dd
lmZ ddlmZmZmZ ddlmZmZ ddlmZ ddlmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3  e#j4        e5¦  «        Z6 e!d¬¦  «        e G d„ de¦  «        ¦   «         ¦   «         Z7 G d„ dej8        ¦  «        Z9 G d„ dej8        ¦  «        Z: G d„ dej8        ¦  «        Z;d „ Z< ed!¦  «        dRd"„¦   «         Z=d#ej>        d$e?d%ej>        fd&„Z@	 dSd(ej8        d)ej>        d*ej>        d+ej>        d,ej>        dz  d-eAd.eAd/ee          fd0„ZB ee=¦  «         G d1„ d2ej8        ¦  «        ¦   «         ZC G d3„ d4ej8        ¦  «        ZD G d5„ d6e¦  «        ZEe! G d7„ d8e¦  «        ¦   «         ZF e!d9¬¦  «         G d:„ d;eF¦  «        ¦   «         ZGe G d<„ d=e¦  «        ¦   «         ZHe G d>„ d?eH¦  «        ¦   «         ZI e!d@¬¦  «         G dA„ dBeFe¦  «        ¦   «         ZJ G dC„ dDej8        ¦  «        ZK G dE„ dFej8        ¦  «        ZLe G dG„ dHe¦  «        ¦   «         ZM e!dI¬¦  «         G dJ„ dKeFe2¦  «        ¦   «         ZN G dL„ dMeL¦  «        ZO e!dN¬¦  «         G dO„ dPe3eN¦  «        ¦   «         ZPg dQ¢ZQdS )Té    N)ÚCallable)Ú	dataclass)Únné   )Úinitialization)ÚACT2FN)ÚCompileConfigÚGenerationMixinÚGenerationMode)Úuse_kernel_func_from_hubÚuse_kernelized_func)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPoolingÚCausalLMOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚlogging)Úmaybe_autocastÚmerge_with_config_defaults)Úcapture_outputsé   )Ú	AutoModelé   )ÚParakeetCTCConfigÚParakeetEncoderConfigÚParakeetRNNTConfigÚParakeetTDTConfig)ÚParakeetRNNTDecoderCacheÚParakeetRNNTGenerationMixinÚParakeetTDTGenerationMixinz¨
    Extends [~modeling_outputs.BaseModelOutputWithPooling] to include the output attention mask since sequence length
    is not preserved in the model's forward.
    )Úcustom_introc                   ó2   — e Zd ZU dZdZej        dz  ed<   dS )ÚParakeetEncoderModelOutputa–  
    attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
        Mask to avoid performing attention on padding token indices after sequence compression. Returned because the
        sequence length may differ from the input sequence length. Mask values selected in `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.
    NÚattention_mask)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r*   ÚtorchÚTensorÚ__annotations__© ó    úl/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/parakeet/modeling_parakeet.pyr)   r)   /   s5   € € € € € € ðð ð +/€N�E”L 4Ñ'Ð.Ð.Ñ.Ð.Ð.r3   r)   c                   ó²   ‡ — e Zd ZU ej        ed<   d	defˆ fd„Ze	 	 d
dedz  dej        fd„¦   «         Z	 ej
        ¦   «         dej        fd„¦   «         Zˆ xZS )Ú$ParakeetEncoderRelPositionalEncodingÚinv_freqNÚconfigc                 óÌ   •— t          ¦   «                              ¦   «          |j        | _        || _        |                      ||¬¦  «        }|                      d|d¬¦  «         d S )N©Údevicer7   F)Ú
persistent)ÚsuperÚ__init__Úmax_position_embeddingsr8   Ú.compute_default_relative_positional_parametersÚregister_buffer)Úselfr8   r;   r7   Ú	__class__s       €r4   r>   z-ParakeetEncoderRelPositionalEncoding.__init__F   se   ø€ Ý‰Œ×ÒÑÔÐØ'-Ô'EˆÔ$ØˆŒØ×FÒFÀvÐV\ÐFÑ]Ô]ˆØ×Ò˜Z¨¸eÐÑDÔDÐDÐDÐDr3   Úreturnc                 ó²   — d}d|t          j        d| j        dt           j        ¬¦  «                             |t           j        ¬¦  «        | j        z  z  z  }|S )Ng     ˆÃ@ç      ð?r   r   ©Údtype)r;   rH   )r/   ÚarangeÚhidden_sizeÚint64ÚtoÚfloat)r8   r;   Úbaser7   s       r4   r@   zSParakeetEncoderRelPositionalEncoding.compute_default_relative_positional_parametersM   s`   € ð
 ˆØØå”˜Q Ô 2°A½U¼[ÐIÑIÔI×LÒLÐTZÕbgÔbmÐLÑnÔnØÔ$ñ%ññ
ˆð ˆr3   Úhidden_statesc                 óˆ  — |j         d         }t          j        |dz
  | d|j        ¬¦  «        }| j        d d d …d f                              ¦   «                              |j         d         dd¦  «                             |j        ¦  «        }|d d d d …f                              ¦   «         }t          |j        j	        t          ¦  «        r|j        j	        dk    r|j        j	        nd}t          |d¬¦  «        5  |                     ¦   «         |                     ¦   «         z                       dd	¦  «        }|                     ¦   «         }|                     ¦   «         }	t          j        ||	gd¬
¦  «        }
 |
j        g |
j         d d…         ¢d‘R Ž }
d d d ¦  «         n# 1 swxY w Y   |
                     |j        ¬¦  «        S )Nr   éÿÿÿÿr:   r   ÚmpsÚcpuF)Údevice_typeÚenabledr   ©ÚdiméþÿÿÿrG   )Úshaper/   rI   r;   r7   rM   ÚexpandrL   Ú
isinstanceÚtypeÚstrr   Ú	transposeÚsinÚcosÚstackÚreshaperH   )rB   rO   Ú
seq_lengthÚposition_idsÚinv_freq_expandedÚposition_ids_expandedrT   Úfreqsr_   r`   Ú	pos_embeds              r4   Úforwardz,ParakeetEncoderRelPositionalEncoding.forward\   s  € à"Ô(¨Ô+ˆ
Ý”| J°¡N°Z°KÀÈMÔL`ÐaÑaÔaˆàŒM˜$    4˜-Ô(×.Ò.Ñ0Ô0×7Ò7¸Ô8KÈAÔ8NÐPRÐTUÑVÔV×YÒYÐZgÔZnÑoÔoð 	ð !-¨T°4¸¸¸¨]Ô ;× AÒ AÑ CÔ CÐõ ˜-Ô.Ô3µSÑ9Ô9ðØ>KÔ>RÔ>WÐ[`Ò>`Ð>`ð Ô Ô%Ð%àð 	õ
 ¨¸UÐCÑCÔCð 	Eð 	EØ&×,Ò,Ñ.Ô.Ð1F×1LÒ1LÑ1NÔ1NÑN×YÒYÐZ[Ð]^Ñ_Ô_ˆEØ—)’)‘+”+ˆCØ—)’)‘+”+ˆCåœ S¨# J°BÐ7Ñ7Ô7ˆIØ)˜	Ô)ÐD¨9¬?¸3¸B¸3Ô+?ÐDÀÐDÐDÐDˆIð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð �|Š| -Ô"5ˆ|Ñ6Ô6Ð6s   Ã8BFÆF"Æ%F"©N©NN)r+   r,   r-   r/   r0   r1   r!   r>   Ústaticmethodr@   Úno_gradri   Ú__classcell__©rC   s   @r4   r6   r6   C   s×   ø€ € € € € € ØŒlÐÐÑðEð EÐ4ð Eð Eð Eð Eð Eð Eð à/3Øðð Ø%¨Ñ,ðð 
Œðð ð ñ „\ðð €U„]�_„_ð7 U¤\ð 7ð 7ð 7ñ „_ð7ð 7ð 7ð 7ð 7r3   r6   c                   ó*   ‡ — e Zd Zdefˆ fd„Zd„ Zˆ xZS )ÚParakeetEncoderFeedForwardr8   c                 ó:  •— t          ¦   «                              ¦   «          t          j        |j        |j        |j        ¬¦  «        | _        t          |j	                 | _
        t          j        |j        |j        |j        ¬¦  «        | _        |j        | _        d S )N©Úbias)r=   r>   r   ÚLinearrJ   Úintermediate_sizeÚattention_biasÚlinear1r   Ú
hidden_actÚ
activationÚlinear2Úactivation_dropout©rB   r8   rC   s     €r4   r>   z#ParakeetEncoderFeedForward.__init__v   s}   ø€ Ý‰Œ×ÒÑÔÐÝ”y Ô!3°VÔ5MÐTZÔTiÐjÑjÔjˆŒÝ  Ô!2Ô3ˆŒÝ”y Ô!9¸6Ô;MÐTZÔTiÐjÑjÔjˆŒØ"(Ô";ˆÔÐÐr3   c                 óØ   — |                       |                      |¦  «        ¦  «        }t          j                             || j        | j        ¬¦  «        }|                      |¦  «        }|S )N©ÚpÚtraining)rz   rx   r   Ú
functionalÚdropoutr|   r�   r{   )rB   rO   s     r4   ri   z"ParakeetEncoderFeedForward.forward}   sY   € ØŸš¨¯ª°]Ñ(CÔ(CÑDÔDˆÝœ×-Ò-¨m¸tÔ?VÐaeÔanÐ-ÑoÔoˆØŸš ]Ñ3Ô3ˆØÐr3   ©r+   r,   r-   r!   r>   ri   rn   ro   s   @r4   rq   rq   u   sT   ø€ € € € € ð<Ð4ð <ð <ð <ð <ð <ð <ðð ð ð ð ð ð r3   rq   c                   ó.   ‡ — e Zd Zddefˆ fd„Zdd„Zˆ xZS )Ú ParakeetEncoderConvolutionModuleNr8   c           	      ó>  •— t          ¦   «                              ¦   «          |j        }|€)|j        }t          t          |dd¦  «                 | _        n.|d         }t          |                     dd¦  «                 | _        |dz
  dz  | _        t          j
        |d|z  ddd|j        ¬	¦  «        | _        t          j
        |||d| j        ||j        ¬
¦  «        | _        t          j        |¦  «        | _        t          j
        ||ddd|j        ¬	¦  «        | _        dS )z»
        Args:
            config (ParakeetEncoderConfig): Configuration for the model.
            module_config (dict): Configuration for the module (e.g., encoder or decoder).
        Nry   ÚsiluÚkernel_sizerz   r   r   r   )r‰   ÚstrideÚpaddingrt   )rŠ   r‹   Úgroupsrt   )r=   r>   rJ   Úconv_kernel_sizer   Úgetattrrz   Úgetr‹   r   ÚConv1dÚconvolution_biasÚpointwise_conv1Údepthwise_convÚBatchNorm1dÚnormÚpointwise_conv2)rB   r8   Úmodule_configÚchannelsr‰   rC   s        €r4   r>   z)ParakeetEncoderConvolutionModule.__init__…   s%  ø€ õ 	‰Œ×ÒÑÔÐØÔ%ˆàÐ à Ô1ˆKÝ$¥W¨V°\À6Ñ%JÔ%JÔKˆDŒOˆOà'¨Ô6ˆKÝ$ ]×%6Ò%6°|ÀVÑ%LÔ%LÔMˆDŒOØ# a™¨AÑ-ˆŒÝ!œyØ�a˜(‘l°¸!ÀQÈVÔMdð 
ñ  
ô  
ˆÔõ !œiØØØØØ”LØØÔ(ð
ñ 
ô 
ˆÔõ ”N 8Ñ,Ô,ˆŒ	Ý!œyØ�h¨A°aÀÈÔI`ð 
ñ  
ô  
ˆÔÐÐr3   c                 ó.  — |                      dd¦  «        }|                      |¦  «        }t          j                             |d¬¦  «        }|�^|j        t          j        k    rt          j        | d¬¦  «        }nt          j        |dk     d¬¦  «        }| 	                    |d¦  «        }|  
                    |¦  «        }|                      |¦  «        }|                      |¦  «        }|                      |¦  «        }|                      dd¦  «        S )aY  
        Compute convolution module.

        Args:
            hidden_states (`torch.Tensor` of shape `(batch, time, channels)`): Input tensor.
            attention_mask (`torch.Tensor` of shape `(batch, 1, time, time)`): Attention mask.

        Returns:
            `torch.Tensor`: Output tensor of shape `(batch, time, channels)`.

        r   r   rV   Nç        )r^   r’   r   r‚   ÚglurH   r/   ÚboolÚallÚmasked_fillr“   r•   rz   r–   )rB   rO   r*   Úall_masked_rowss       r4   ri   z(ParakeetEncoderConvolutionModule.forward§   s	  € ð &×/Ò/°°1Ñ5Ô5ˆð ×,Ò,¨]Ñ;Ô;ˆåœ×)Ò)¨-¸QÐ)Ñ?Ô?ˆð Ð%ØÔ#¥u¤zÒ1Ð1Ý"'¤)¨^¨OÀÐ"CÑ"CÔ"C��å"'¤)¨nÀÒ.CÐ,DÈ!Ð"LÑ"LÔ"L�Ø)×5Ò5°oÀsÑKÔKˆMð ×+Ò+¨MÑ:Ô:ˆØŸ	š	 -Ñ0Ô0ˆØŸš¨Ñ6Ô6ˆØ×,Ò,¨]Ñ;Ô;ˆà×&Ò& q¨!Ñ,Ô,Ð,r3   rj   r„   ro   s   @r4   r†   r†   „   s_   ø€ € € € € ð 
ð  
Ð4ð  
ð  
ð  
ð  
ð  
ð  
ðD"-ð "-ð "-ð "-ð "-ð "-ð "-ð "-r3   r†   c                 óœ   — | dd| j         d         dz  …f         }| d| j         d         dz  d…f         }t          j        | |fd¬¦  «        S )z*Rotates half the hidden dims of the input..NrQ   r   rV   )rY   r/   Úcat)ÚxÚx1Úx2s      r4   Úrotate_halfr¥   Ì   s]   € à	
ˆ3Ð"�!”'˜"”+ Ñ"Ð"Ð"Ô	#€BØ	
ˆ3�”˜”˜qÑ Ð"Ð"Ð"Ô	#€BÝŒ9�r�c˜2�Y BÐ'Ñ'Ô'Ð'r3   Úrotary_pos_embc                 ó¾   — |                      |¦  «        }|                      |¦  «        }| |z  t          | ¦  «        |z  z   }||z  t          |¦  «        |z  z   }||fS )a…  Applies Rotary Position Embedding to the query and key tensors.

    Args:
        q (`torch.Tensor`): The query tensor.
        k (`torch.Tensor`): The key tensor.
        cos (`torch.Tensor`): The cosine part of the rotary embedding.
        sin (`torch.Tensor`): The sine part of the rotary embedding.
        unsqueeze_dim (`int`, *optional*, defaults to 1):
            The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and
            sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note
            that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and
            k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes
            cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have
            the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.
    Returns:
        `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.
    )Ú	unsqueezer¥   )ÚqÚkr`   r_   Úunsqueeze_dimÚq_embedÚk_embeds          r4   Úapply_rotary_pos_embr®   Ó   sc   € ð& �-Š-˜Ñ
&Ô
&€CØ
�-Š-˜Ñ
&Ô
&€CØ�3‰w�; q™>œ>¨CÑ/Ñ0€GØ�3‰w�; q™>œ>¨CÑ/Ñ0€GØ�GÐÐr3   rO   Ún_reprD   c                 ó¸   — | j         \  }}}}|dk    r| S | dd…dd…ddd…dd…f                              |||||¦  «        } |                      |||z  ||¦  «        S )zÔ
    This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
    num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
    r   N)rY   rZ   rb   )rO   r¯   ÚbatchÚnum_key_value_headsÚslenÚhead_dims         r4   Ú	repeat_kvrµ   í   s„   € ð
 2?Ô1DÑ.€EÐ  hØ�‚z€zØÐØ! ! ! ! Q Q Q¨¨a¨a¨a°°°Ð"2Ô3×:Ò:¸5ÐBUÐW\Ð^bÐdlÑmÔm€MØ× Ò  Ð(;¸eÑ(CÀTÈ8ÑTÔTÐTr3   rš   ÚmoduleÚqueryÚkeyÚvaluer*   Úscalingrƒ   Úkwargsc                 ó  — t          || j        ¦  «        }t          || j        ¦  «        }	t          j        ||                     dd¦  «        ¦  «        |z  }
|�|
|z   }
t
          j                             |
dt          j        ¬¦  «         	                    |j
        ¦  «        }
t
          j                             |
|| j        ¬¦  «        }
t          j        |
|	¦  «        }|                     dd¦  «                             ¦   «         }||
fS )Nr   r   rQ   ©rW   rH   r   r   )rµ   Únum_key_value_groupsr/   Úmatmulr^   r   r‚   ÚsoftmaxÚfloat32rL   rH   rƒ   r�   Ú
contiguous)r¶   r·   r¸   r¹   r*   rº   rƒ   r»   Ú
key_statesÚvalue_statesÚattn_weightsÚattn_outputs               r4   Úeager_attention_forwardrÇ   ù   sé   € õ ˜3 Ô ;Ñ<Ô<€JÝ˜U FÔ$?Ñ@Ô@€Lå”<  z×';Ò';¸A¸qÑ'AÔ'AÑBÔBÀWÑL€LØÐ!Ø# nÑ4ˆå”=×(Ò(¨¸2ÅUÄ]Ð(ÑSÔS×VÒVÐW\ÔWbÑcÔc€LÝ”=×(Ò(¨¸È6Ì?Ð(Ñ[Ô[€LÝ”,˜|¨\Ñ:Ô:€KØ×'Ò'¨¨1Ñ-Ô-×8Ò8Ñ:Ô:€Kà˜Ð$Ð$r3   c                   ó¬   ‡ — e Zd ZdZdedefˆ fd„Z	 ddej        dej        dz  dej        dz  d	e	e
         d
eej        ej        f         f
d„Zd„ Zˆ xZS )ÚParakeetEncoderAttentionztMulti-head attention with relative positional encoding. See section 3.3 of https://huggingface.co/papers/1901.02860.r8   Ú	layer_idxc                 óâ  •— t          ¦   «                              ¦   «          || _        || _        t	          |d|j        |j        z  ¦  «        | _        |j        |j        z  | _	        | j        dz  | _
        |j        | _        d| _        t          j        |j        |j        | j        z  |j        ¬¦  «        | _        t          j        |j        |j        | j        z  |j        ¬¦  «        | _        t          j        |j        |j        | j        z  |j        ¬¦  «        | _        t          j        |j        | j        z  |j        |j        ¬¦  «        | _        t          j        |j        |j        | j        z  d¬¦  «        | _        t          j        t-          j        |j        | j        ¦  «        ¦  «        | _        t          j        t-          j        |j        | j        ¦  «        ¦  «        | _        d S )Nr´   g      à¿Frs   )r=   r>   r8   rÊ   rŽ   rJ   Únum_attention_headsr´   r²   r¾   rº   Úattention_dropoutÚ	is_causalr   ru   rw   Úq_projÚk_projÚv_projÚo_projÚrelative_k_projÚ	Parameterr/   ÚzerosÚbias_uÚbias_v©rB   r8   rÊ   rC   s      €r4   r>   z!ParakeetEncoderAttention.__init__  s±  ø€ Ý‰Œ×ÒÑÔÐØˆŒØ"ˆŒÝ ¨
°FÔ4FÈ&ÔJdÑ4dÑeÔeˆŒØ$*Ô$>À&ÔB\Ñ$\ˆÔ!Ø”} dÑ*ˆŒØ!'Ô!9ˆÔØˆŒå”iØÔ Ô :¸T¼]Ñ JÐQWÔQfð
ñ 
ô 
ˆŒõ ”iØÔ Ô :¸T¼]Ñ JÐQWÔQfð
ñ 
ô 
ˆŒõ ”iØÔ Ô :¸T¼]Ñ JÐQWÔQfð
ñ 
ô 
ˆŒõ ”iØÔ&¨¬Ñ6¸Ô8JÐQWÔQfð
ñ 
ô 
ˆŒõ  "œy¨Ô);¸VÔ=WÐZ^ÔZgÑ=gÐnsÐtÑtÔtˆÔå”l¥5¤;¨vÔ/IÈ4Ì=Ñ#YÔ#YÑZÔZˆŒå”l¥5¤;¨vÔ/IÈ4Ì=Ñ#YÔ#YÑZÔZˆŒˆˆr3   NrO   Úposition_embeddingsr*   r»   rD   c           
      óÞ  — |j         d d…         }|\  }}||d| j        f}|                      |¦  «                             |¦  «                             dd¦  «        }	|                      |¦  «                             |¦  «                             dd¦  «        }
|                      |¦  «                             |¦  «                             dd¦  «        }t          j        | j	        j
        t          ¦  «        }|	| j                             d| j	        j        d| j        ¦  «        z   }|	| j                             d| j	        j        d| j        ¦  «        z   }|                      |¦  «        }|                     |d| j	        j        | j        ¦  «        }||                     dddd¦  «        z  }|                      |¦  «        }|dd |…f         }|| j        z  }|�5|                     |                     ¦   «         t+          d¦  «        ¦  «        } || f||
||| j        sdn| j        | j        d	œ|¤Ž\  }} |j        g |¢d‘R Ž                      ¦   «         }|                      |¦  «        }||fS )
NrQ   r   r   r   r   .z-infrš   )r·   r¸   r¹   r*   rƒ   rº   )rY   r´   rÏ   Úviewr^   rÐ   rÑ   r   Úget_interfacer8   Ú_attn_implementationrÇ   rÖ   rÌ   r×   rÓ   ÚpermuteÚ
_rel_shiftrº   Úmasked_fill_Úlogical_notrM   r�   rÍ   rb   rÂ   rÒ   )rB   rO   rÙ   r*   r»   Úinput_shapeÚ
batch_sizerc   Úhidden_shapeÚquery_statesrÃ   rÄ   Úattention_interfaceÚquery_states_with_bias_uÚquery_states_with_bias_vÚrelative_key_statesÚ	matrix_bdrÆ   rÅ   s                      r4   ri   z ParakeetEncoderAttention.forward3  s•  € ð $Ô)¨#¨2¨#Ô.ˆØ!,Ñˆ
�JØ" J°°D´MÐBˆà—{’{ =Ñ1Ô1×6Ò6°|ÑDÔD×NÒNÈqÐRSÑTÔTˆØ—[’[ Ñ/Ô/×4Ò4°\ÑBÔB×LÒLÈQÐPQÑRÔRˆ
Ø—{’{ =Ñ1Ô1×6Ò6°|ÑDÔD×NÒNÈqÐRSÑTÔTˆå(?Ô(MØŒKÔ,Õ.Eñ)
ô )
Ðð $0°$´+×2BÒ2BØˆtŒ{Ô.°°4´=ñ3
ô 3
ñ $
Ð ð $0°$´+×2BÒ2BØˆtŒ{Ô.°°4´=ñ3
ô 3
ñ $
Ð ð #×2Ò2Ð3FÑGÔGÐØ1×6Ò6°zÀ2ÀtÄ{ÔGfÐhlÔhuÑvÔvÐð -Ð/B×/JÒ/JÈ1ÈaÐQRÐTUÑ/VÔ/VÑVˆ	Ø—O’O IÑ.Ô.ˆ	Ø˜c ; J ;Ð.Ô/ˆ	Ø ¤Ñ,ˆ	àÐ%ð "×.Ò.¨~×/IÒ/IÑ/KÔ/KÍUÐSYÉ]Ì]Ñ[Ô[ˆIð %8Ð$7Øð	%
à*ØØØ$Ø#œ}ÐH�C�C°$Ô2HØ”Lð	%
ð 	%
ð ð	%
ð 	%
Ñ!ˆ�\ð *�kÔ)Ð;¨;Ð;¸Ð;Ð;Ð;×FÒFÑHÔHˆØ—k’k +Ñ.Ô.ˆØ˜LÐ(Ð(r3   c                 óÞ   — |j         \  }}}}t          j                             |d¬¦  «        }|                     ||d|¦  «        }|dd…dd…dd…f                              ||||¦  «        }|S )ztRelative position shift for Shaw et al. style attention. See appendix B of https://huggingface.co/papers/1901.02860.)r   r   )ÚpadrQ   Nr   )rY   r   r‚   rì   rÛ   )rB   Úattention_scoresrã   Ú	num_headsÚquery_lengthÚposition_lengths         r4   rß   z#ParakeetEncoderAttention._rel_shiftl  s‚   € à?OÔ?UÑ<ˆ
�I˜|¨_Ýœ=×,Ò,Ð-=À6Ð,ÑJÔJÐØ+×0Ò0°¸YÈÈLÑYÔYÐØ+¨A¨A¨A¨q¨q¨q°!°"°"¨HÔ5×:Ò:¸:ÀyÐR^Ð`oÑpÔpÐØÐr3   rj   )r+   r,   r-   r.   r!   Úintr>   r/   r0   r   r   Útupleri   rß   rn   ro   s   @r4   rÉ   rÉ     sÝ   ø€ € € € € à~Ð~ð[Ð4ð [Àð [ð [ð [ð [ð [ð [ðB /3ð	7)ð 7)à”|ð7)ð #œ\¨DÑ0ð7)ð œ tÑ+ð	7)ð
 Ð+Ô,ð7)ð 
ˆuŒ|˜Uœ\Ð)Ô	*ð7)ð 7)ð 7)ð 7)ðr ð  ð  ð  ð  ð  ð  r3   rÉ   c                   ón   ‡ — e Zd Zdefˆ fd„Zdej        dej        fd„Z	d
dej        dej        fd	„Z
ˆ xZS )Ú ParakeetEncoderSubsamplingConv2Dr8   c                 ó6  •— t          ¦   «                              ¦   «          |j        | _        |j        | _        |j        | _        | j        dz
  dz  | _        t          t          j        |j        ¦  «        ¦  «        | _        t          j        ¦   «         | _        | j                             t          j        d| j        | j        | j        | j        ¬¦  «        ¦  «         | j                             t          j        ¦   «         ¦  «         t)          | j        dz
  ¦  «        D ]¶}| j                             t          j        | j        | j        | j        | j        | j        | j        ¬¦  «        ¦  «         | j                             t          j        | j        | j        d¬¦  «        ¦  «         | j                             t          j        ¦   «         ¦  «         Œ·|j        | j        | j        z  z  }t          j        |j        |z  |j        d¬¦  «        | _        d S )Nr   r   )r‰   rŠ   r‹   )r‰   rŠ   r‹   rŒ   ©r‰   Trs   )r=   r>   Úsubsampling_conv_kernel_sizer‰   Úsubsampling_conv_striderŠ   Úsubsampling_conv_channelsr˜   r‹   rñ   ÚmathÚlog2Úsubsampling_factorÚ
num_layersr   Ú
ModuleListÚlayersÚappendÚConv2dÚReLUÚrangeÚnum_mel_binsru   rJ   Úlinear)rB   r8   ÚiÚ
out_lengthrC   s       €r4   r>   z)ParakeetEncoderSubsamplingConv2D.__init__v  sÈ  ø€ Ý‰Œ×ÒÑÔÐà!Ô>ˆÔØÔ4ˆŒØÔ8ˆŒØÔ(¨1Ñ,°Ñ2ˆŒÝ�dœi¨Ô(AÑBÔBÑCÔCˆŒõ ”m‘o”oˆŒØŒ×ÒÝŒI�a˜œ°DÔ4DÈTÌ[ÐbfÔbnÐoÑoÔoñ	
ô 	
ð 	
ð 	Œ×Ò�2œ7™9œ9Ñ%Ô%Ð%Ý�t”¨Ñ*Ñ+Ô+ð 	*ð 	*ˆAàŒK×ÒÝ”	Ø”MØ”MØ $Ô 0Øœ;Ø œLØœ=ðñ ô ñ	ô 	ð 	ð ŒK×Ò�rœy¨¬¸¼ÐSTÐUÑUÔUÑVÔVÐVàŒK×Ò�rœw™yœyÑ)Ô)Ð)Ð)àÔ(¨T¬[¸$¼/Ñ-IÑJˆ
Ý”i Ô @À:Ñ MÈvÔOaÐhlÐmÑmÔmˆŒˆˆr3   Úinput_lengthsÚ
conv_layerc                 ó¼   — t          |d¦  «        rK|j        dk    r@|j        }|j        d         }|j        d         }||d         z   |d         z   |z
  |z  dz   }|S |S )NrŠ   )r   r   r   r   )ÚhasattrrŠ   r‹   r‰   )rB   r  r	  r‹   r‰   rŠ   Úoutput_lengthss          r4   Ú_get_output_lengthz3ParakeetEncoderSubsamplingConv2D._get_output_length™  sw   € Ý�:˜xÑ(Ô(ð 	"¨ZÔ->À&Ò-HÐ-HØ Ô(ˆGØ$Ô0°Ô3ˆKØÔ& qÔ)ˆFà+¨g°a¬jÑ8¸7À1¼:ÑEÈÑSÐX^Ñ^ÐabÑbˆNØ!Ð!àÐr3   NÚinput_featuresr*   c                 ó.  — |                      d¦  «        }|�|                     d¦  «        nd }| j        D ]ˆ} ||¦  «        }t          |t          j        ¦  «        ra|�_|                      ||¦  «        }|j        d         }t          j	        ||j
        ¬¦  «        |d d …d f         k     }||d d …d d d …d f         z  }Œ‰|                     dd¦  «                             |j        d         |j        d         d¦  «        }|                      |¦  «        }|S )Nr   rQ   r   r:   r   )r¨   Úsumrÿ   r[   r   r  r  rY   r/   rI   r;   r^   rb   r  )rB   r  r*   rO   Úcurrent_lengthsÚlayerÚcurrent_seq_lengthÚchannel_masks           r4   ri   z(ParakeetEncoderSubsamplingConv2D.forward¤  s<  € Ø&×0Ò0°Ñ3Ô3ˆØ4BÐ4N˜.×,Ò,¨RÑ0Ô0Ð0ÐTXˆà”[ð 
	@ð 
	@ˆEØ!˜E -Ñ0Ô0ˆMõ ˜%¥¤Ñ+Ô+ð @°Ð0JØ"&×"9Ò"9¸/È5Ñ"QÔ"Q�Ø%2Ô%8¸Ô%;Ð"å”LÐ!3¸NÔ<QÐRÑRÔRÐUdÐefÐefÐefÐhlÐelÔUmÒmð ð  ¨a¨a¨a°°q°q°q¸$Ð.>Ô!?Ñ?�øà%×/Ò/°°1Ñ5Ô5×=Ò=¸mÔ>QÐRSÔ>TÐVcÔViÐjkÔVlÐnpÑqÔqˆØŸš MÑ2Ô2ˆàÐr3   rj   )r+   r,   r-   r!   r>   r/   r0   r   r  r  ri   rn   ro   s   @r4   rô   rô   u  sž   ø€ € € € € ð!nÐ4ð !nð !nð !nð !nð !nð !nðF	°´ð 	È"Ì)ð 	ð 	ð 	ð 	ðð  e¤lð ÀEÄLð ð ð ð ð ð ð ð r3   rô   c                   ó’   ‡ — e Zd Zddededz  fˆ fd„Z	 	 ddej        dej        dz  dej        dz  dee	         d	ej        f
d
„Z
ˆ xZS )ÚParakeetEncoderBlockNr8   rÊ   c                 ó$  •— t          ¦   «                              ¦   «          d| _        t          |¦  «        | _        t          ||¦  «        | _        t          |¦  «        | _        t          |¦  «        | _	        t          j        |j        ¦  «        | _        t          j        |j        ¦  «        | _        t          j        |j        ¦  «        | _        t          j        |j        ¦  «        | _        t          j        |j        ¦  «        | _        d S )NF)r=   r>   Úgradient_checkpointingrq   Úfeed_forward1rÉ   Ú	self_attnr†   ÚconvÚfeed_forward2r   Ú	LayerNormrJ   Únorm_feed_forward1Únorm_self_attÚ	norm_convÚnorm_feed_forward2Únorm_outrØ   s      €r4   r>   zParakeetEncoderBlock.__init__»  sÌ   ø€ Ý‰Œ×ÒÑÔÐØ&+ˆÔ#å7¸Ñ?Ô?ˆÔÝ1°&¸)ÑDÔDˆŒÝ4°VÑ<Ô<ˆŒ	Ý7¸Ñ?Ô?ˆÔå"$¤,¨vÔ/AÑ"BÔ"BˆÔÝœ\¨&Ô*<Ñ=Ô=ˆÔÝœ fÔ&8Ñ9Ô9ˆŒÝ"$¤,¨vÔ/AÑ"BÔ"BˆÔÝœ VÔ%7Ñ8Ô8ˆŒˆˆr3   rO   r*   rÙ   r»   rD   c                 ó®  — |}|                       |                      |¦  «        ¦  «        }|d|z  z   }|                      |¦  «        } | j        d|||dœ|¤Ž\  }}||z   }|                      |                      |¦  «        |¬¦  «        }	||	z   }|                      |                      |¦  «        ¦  «        }
|d|
z  z   }|                      |¦  «        }|S )Ng      à?)rO   r*   rÙ   )r*   r2   )	r  r  r  r  r  r   r  r!  r"  )rB   rO   r*   rÙ   r»   ÚresidualÚnormalized_hidden_statesrÆ   Ú_Úconv_outputÚ
ff2_outputs              r4   ri   zParakeetEncoderBlock.forwardÊ  sÿ   € ð !ˆØ×*Ò*¨4×+BÒ+BÀ=Ñ+QÔ+QÑRÔRˆØ  3¨Ñ#6Ñ6ˆà#'×#5Ò#5°mÑ#DÔ#DÐ Ø'˜œð 
Ø2Ø)Ø 3ð
ð 
ð ð	
ð 
‰ˆ�Qð &¨Ñ3ˆà—i’i §¢¨}Ñ =Ô =Èn�iÑ]Ô]ˆØ%¨Ñ3ˆà×'Ò'¨×(?Ò(?ÀÑ(NÔ(NÑOÔOˆ
Ø%¨¨jÑ(8Ñ8ˆàŸš mÑ4Ô4ˆàÐr3   rj   rk   )r+   r,   r-   r!   rñ   r>   r/   r0   r   r   ri   rn   ro   s   @r4   r  r  º  s¾   ø€ € € € € ð9ð 9Ð4ð 9ÀÀtÁð 9ð 9ð 9ð 9ð 9ð 9ð$ /3Ø37ð	ð à”|ðð œ tÑ+ðð #œ\¨DÑ0ð	ð
 Ð+Ô,ðð 
Œðð ð ð ð ð ð ð r3   r  c                   óÄ   ‡ — e Zd ZU eed<   dZdZdZdZdgZ	dZ
dZdZdZdZdZeedœZ ej        ¦   «         ˆ fd	„¦   «         Zd
ej        fd„Zddej        dedz  fd„Zˆ xZS )ÚParakeetPreTrainedModelr8   Úmodelr  ÚaudioTr  F)rO   Ú
attentionsc                 óª  •— t          ¦   «                              |¦  «         t          | j        dd¦  «        }t	          |t
          ¦  «        r:t          j        |j        d|¬¦  «         t          j        |j	        d|¬¦  «         d S t	          |t          ¦  «        r6|                     |j        ¦  «        }t          j        |j        |¦  «         d S d S )NÚinitializer_rangeg{®Gáz”?rš   )ÚmeanÚstd)r=   Ú_init_weightsrŽ   r8   r[   rÉ   ÚinitÚnormal_rÖ   r×   r6   r@   Úcopy_r7   )rB   r¶   r1  Úbuffer_valuerC   s       €r4   r2  z%ParakeetPreTrainedModel._init_weightsÿ  sÈ   ø€ å‰Œ×Ò˜fÑ%Ô%Ð%Ý�d”kÐ#6¸Ñ=Ô=ˆå�fÕ6Ñ7Ô7ð 	6ÝŒL˜œ¨S°cÐ:Ñ:Ô:Ð:ÝŒL˜œ¨S°cÐ:Ñ:Ô:Ð:Ð:Ð:Ý˜Õ DÑEÔEð 	6Ø!×PÒPÐQWÔQ^Ñ_Ô_ˆLÝŒJ�v”¨Ñ5Ô5Ð5Ð5Ð5ð	6ð 	6r3   r  c                 óÂ  — t          | j        d| j        ¦  «        }|j        }|j        }t	          t          j        |j        ¦  «        ¦  «        }|dz
  dz  dz  }||z
  }|}t          |¦  «        D ]O}	t          j
        |                     t          j        ¬¦  «        |z   |¦  «        dz   }t          j        |¦  «        }ŒP|                     t          j        ¬¦  «        S )NÚencoder_configr   r   rG   rF   )rŽ   r8   r÷   rø   rñ   rú   rû   rü   r  r/   ÚdivrL   rM   Úfloor)
rB   r  r8  r‰   rŠ   rý   Úall_paddingsÚadd_padÚlengthsr&  s
             r4   Ú_get_subsampling_output_lengthz6ParakeetPreTrainedModel._get_subsampling_output_length  sÎ   € Ý  ¤Ð.>ÀÄÑLÔLˆà$ÔAˆØÔ7ˆÝ�œ >Ô#DÑEÔEÑFÔFˆ
à# a™¨AÑ-°Ñ1ˆØ Ñ,ˆØˆå�zÑ"Ô"ð 	+ð 	+ˆAÝ”i §
¢
µ´ 
Ñ =Ô =ÀÑ GÈÑPÔPÐSVÑVˆGÝ”k 'Ñ*Ô*ˆGˆGà�zŠz¥¤	ˆzÑ*Ô*Ð*r3   Nr*   Útarget_lengthc                 óØ   — |                       |                     d¦  «        ¦  «        }|�|n|                     ¦   «         }t          j        ||j        ¬¦  «        |dd…df         k     }|S )zþ
        Convert the input attention mask to its subsampled form. `target_length` sets the desired output length, useful
        when the attention mask length differs from `sum(-1).max()` (i.e., when the longest sequence in the batch is padded)
        rQ   Nr:   )r>  r  Úmaxr/   rI   r;   )rB   r*   r?  r  Ú
max_lengths        r4   Ú_get_output_attention_maskz2ParakeetPreTrainedModel._get_output_attention_mask  su   € ð
 ×<Ò<¸^×=OÒ=OÐPRÑ=SÔ=SÑTÔTˆà&3Ð&?�]�]À^×EWÒEWÑEYÔEYˆ
Ýœ j¸Ô9NÐOÑOÔOÐR`ÐabÐabÐabÐdhÐahÔRiÒiˆØÐr3   rj   )r+   r,   r-   r    r1   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_supports_flat_attention_maskÚ_supports_sdpaÚ_supports_flex_attnÚ_supports_flash_attnÚ_can_compile_fullgraphÚ_supports_attention_backendr  rÉ   Ú_can_record_outputsr/   rm   r2  r0   r>  rñ   rC  rn   ro   s   @r4   r*  r*  é  sÿ   ø€ € € € € € àÐÐÑØÐØ&€OØÐØ&*Ð#Ø/Ð0ÐØ$(Ð!Ø€NØÐð !Ðà!ÐØ"&Ðà-Ø.ðð Ðð
 €U„]�_„_ð	6ð 	6ð 	6ð 	6ñ „_ð	6ð+¸E¼Lð +ð +ð +ð +ð"	ð 	¸¼ð 	ÐVYÐ\`ÑV`ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r3   r*  z{
    The Parakeet Encoder model, based on the [Fast Conformer architecture](https://huggingface.co/papers/2305.05084).
    c                   ó¼   ‡ — e Zd ZU eed<   dZdefˆ fd„Zeee	e
	 	 ddej        dej        dz  ded	ee         d
ef
d„¦   «         ¦   «         ¦   «         ¦   «         Zˆ xZS )ÚParakeetEncoderr8   Úencoderc                 óä  •‡— t          ¦   «                              ‰¦  «         ‰| _        d| _        ‰j        | _        ‰j        | _        ‰j        | _        ‰j        rt          j	        ‰j
        ¦  «        nd| _        t          ‰¦  «        | _        t          ‰¦  «        | _        t!          j        ˆfd„t%          ‰j        ¦  «        D ¦   «         ¦  «        | _        |                      ¦   «          d S )NFrF   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r2   )r  )Ú.0rÊ   r8   s     €r4   ú
<listcomp>z,ParakeetEncoder.__init__.<locals>.<listcomp>?  s$   ø€ ÐfÐfÐf¸Õ! &¨)Ñ4Ô4ÐfÐfÐfr3   )r=   r>   r8   r  rƒ   Údropout_positionsÚ	layerdropÚscale_inputrú   ÚsqrtrJ   Úinput_scalerô   Úsubsamplingr6   Úencode_positionsr   rþ   r  Únum_hidden_layersrÿ   Ú	post_initr}   s    `€r4   r>   zParakeetEncoder.__init__1  sÙ   øø€ Ý‰Œ×Ò˜Ñ Ô Ð ØˆŒØ&+ˆÔ#à”~ˆŒØ!'Ô!9ˆÔØÔ)ˆŒà<BÔ<NÐW�4œ9 VÔ%7Ñ8Ô8Ð8ÐTWˆÔÝ;¸FÑCÔCˆÔÝ DÀVÑ LÔ LˆÔå”mØfÐfÐfÐfÅeÈFÔLdÑFeÔFeÐfÑfÔfñ
ô 
ˆŒð 	�ŠÑÔÐÐÐr3   NTr  r*   Úoutput_attention_maskr»   rD   c                 ó  — |                       ||¦  «        }|| j        z  }|                      |¦  «        }t          j                             || j        | j        ¬¦  «        }t          j                             || j        | j        ¬¦  «        }d}|�…|                      ||j	        d         ¬¦  «        }| 
                    d¦  «                             d|j	        d         d¦  «        }||                     dd¦  «        z  }| 
                    d¦  «        }| j        D ]:}d}	| j        r!t          j        g ¦  «        }
|
| j        k     rd}	|	s ||f||d	œ|¤Ž}Œ;t#          ||�|r|                     ¦   «         nd¬
¦  «        S )a�  
        output_attention_mask (`bool`, *optional*, defaults to `True`):
            Whether to return the output attention mask. Only effective when `attention_mask` is provided.

        Example:

        ```python
        >>> from transformers import AutoProcessor, ParakeetEncoder
        >>> from datasets import load_dataset, Audio

        >>> model_id = "nvidia/parakeet-ctc-1.1b"
        >>> processor = AutoProcessor.from_pretrained(model_id)
        >>> encoder = ParakeetEncoder.from_pretrained(model_id)

        >>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
        >>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

        >>> inputs = processor(ds[0]["audio"]["array"])
        >>> encoder_outputs = encoder(**inputs)

        >>> print(encoder_outputs.last_hidden_state.shape)
        ```
        r   Nr   ©r?  rQ   r   FT)r*   rÙ   )Úlast_hidden_stater*   )r\  r[  r]  r   r‚   rƒ   r�   rW  rC  rY   r¨   rZ   r^   rÿ   r/   ÚrandrX  r)   rñ   )rB   r  r*   r`  r»   rO   rÙ   Úoutput_maskÚencoder_layerÚto_dropÚdropout_probabilitys              r4   ri   zParakeetEncoder.forwardD  sÂ  € ðF ×(Ò(¨¸ÑHÔHˆØ%¨Ô(8Ñ8ˆØ"×3Ò3°MÑBÔBÐåœ×-Ò-¨m¸t¼|ÐVZÔVcÐ-ÑdÔdˆÝ œm×3Ò3Ø 4Ô#9ÀDÄMð 4ñ 
ô 
Ðð ˆØÐ%Ø×9Ò9¸.ÐXeÔXkÐlmÔXnÐ9ÑoÔoˆKØ(×2Ò2°1Ñ5Ô5×<Ò<¸RÀÔATÐUVÔAWÐY[Ñ\Ô\ˆNØ+¨n×.FÒ.FÀqÈ!Ñ.LÔ.LÑLˆNØ+×5Ò5°aÑ8Ô8ˆNà!œ[ð 	ð 	ˆMàˆGØŒ}ð #Ý&+¤j°¡n¤nÐ#Ø&¨¬Ò7Ð7Ø"�Gàð Ø - Ø!ð!à#1Ø(;ð!ð !ð ð	!ð !�øõ *Ø+Ø0>Ð0JÐOdÐ0J˜;Ÿ?š?Ñ,Ô,Ð,Ðjnð
ñ 
ô 
ð 	
r3   )NT)r+   r,   r-   r!   r1   rD  r>   r   r   r   r   r/   r0   rœ   r   r   r   ri   rn   ro   s   @r4   rQ  rQ  (  sõ   ø€ € € € € € ð "Ð!Ð!Ñ!Ø!ÐðÐ4ð ð ð ð ð ð ð& ØØØð /3Ø&*ð	B
ð B
àœðB
ð œ tÑ+ðB
ð  $ð	B
ð
 Ð+Ô,ðB
ð 
ðB
ð B
ð B
ñ Ôñ „_ñ  Ôñ „^ðB
ð B
ð B
ð B
ð B
r3   rQ  c                   ó¾   — e Zd ZU dZej        ed<   dZeej	                 dz  ed<   dZ
eeej	                          dz  ed<   dZeeej	                          dz  ed<   dS )ÚParakeetCTCGenerateOutputaz  
    Outputs of Parakeet CTC model generation.

    Args:
        sequences (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
            The generated sequences. The second dimension (sequence_length) is either equal to `max_length` or shorter
            if all batches finished early due to the `eos_token_id`.
        logits (`tuple(torch.FloatTensor)` *optional*, returned when `output_logits=True`):
            Unprocessed prediction scores of the language modeling head (scores for each vocabulary token before SoftMax)
            at each generation step. Tuple of `torch.FloatTensor` with up to `max_new_tokens` elements (one element for
            each generated token), with each tensor of shape `(batch_size, config.vocab_size)`.
        attentions (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `output_attentions=True`):
            Tuple (one element for each generated token) of tuples (one element for each layer of the decoder) of
            `torch.FloatTensor` of shape `(batch_size, num_heads, generated_length, sequence_length)`.
        hidden_states (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `output_hidden_states=True`):
            Tuple (one element for each generated token) of tuples (one element for each layer of the decoder) of
            `torch.FloatTensor` of shape `(batch_size, generated_length, hidden_size)`.
    Ú	sequencesNÚlogitsr-  rO   )r+   r,   r-   r.   r/   Ú
LongTensorr1   rl  rò   ÚFloatTensorr-  rO   r2   r3   r4   rj  rj  �  sŽ   € € € € € € ðð ð& ÔÐÐÑØ.2€FˆE�%Ô#Ô$ tÑ+Ð2Ð2Ñ2Ø9=€J��e˜EÔ-Ô.Ô/°$Ñ6Ð=Ð=Ñ=Ø<@€M�5˜˜uÔ0Ô1Ô2°TÑ9Ð@Ð@Ñ@Ð@Ð@r3   rj  c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ÚParakeetGenerateOutputz`
    Deprecated alias for ParakeetCTCGenerateOutput. Use ParakeetCTCGenerateOutput instead.
    c                 ón   •—  t          ¦   «         j        |i |¤Ž t                               d¦  «         d S )Nz€`ParakeetGenerateOutput` is deprecated and removed starting from version 5.11.0; please use `ParakeetCTCGenerateOutput` instead.)r=   r>   ÚloggerÚwarning_once)rB   Úargsr»   rC   s      €r4   r>   zParakeetGenerateOutput.__init__®  sG   ø€ Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ý×Òð Oñ	
ô 	
ð 	
ð 	
ð 	
r3   )r+   r,   r-   r.   r>   rn   ro   s   @r4   rp  rp  ¨  sB   ø€ € € € € ðð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r3   rp  zS
    Parakeet Encoder with a Connectionist Temporal Classification (CTC) head.
    c                   ó6  ‡ — e Zd ZU eed<   defˆ fd„Zee	 	 ddej	        dej	        dz  dej	        dz  de
e         def
d	„¦   «         ¦   «         Z ej        ¦   «         	 	 	 ddej	        dej	        dz  dededz  de
e         deej        z  fd„¦   «         Zˆ xZS )ÚParakeetForCTCr8   c                 ó  •— t          ¦   «                              |¦  «         t          j        |j        ¦  «        | _        t          j        |j        j        |j	        d¬¦  «        | _
        |                      ¦   «          d S )Nr   rö   )r=   r>   r   Úfrom_configr8  rR  r   r�   rJ   Ú
vocab_sizeÚctc_headr_  r}   s     €r4   r>   zParakeetForCTC.__init__½  sh   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý Ô,¨VÔ-BÑCÔCˆŒåœ	 &Ô"7Ô"CÀVÔEVÐdeÐfÑfÔfˆŒà�ŠÑÔÐÐÐr3   Nr  r*   Úlabelsr»   rD   c           
      óH  — |�|                      dd¦  «          | j        d||dœ|¤Ž}|j        }|                      |                     dd¦  «        ¦  «                             dd¦  «        }d}|��|j                             d¦  «        }	|| j        j        k    }
|
                     d¦  «        }| 	                    |
¦  «        }t          j                             |dt          j        ¬¦  «                             d	d¦  «        }t          j        j                             d
¬¦  «        5  t          j                             |||	|| j        j        | j        j        | j        j        ¬¦  «        }ddd¦  «         n# 1 swxY w Y   t+          |||j        |j        ¬¦  «        S )a¾  
        Example:

        ```python
        >>> from transformers import AutoProcessor, ParakeetForCTC
        >>> from datasets import load_dataset, Audio

        >>> model_id = "nvidia/parakeet-ctc-1.1b"
        >>> processor = AutoProcessor.from_pretrained(model_id)
        >>> model = ParakeetForCTC.from_pretrained(model_id)

        >>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
        >>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

        >>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
        >>> outputs = model(**inputs)

        >>> print(outputs.loss)
        ```Nr`  T©r  r*   r   r   rQ   r½   r   F)rU   )ÚblankÚ	reductionÚzero_infinity)Úlossrl  rO   r-  r2   )Ú
setdefaultrR  rc  rz  r^   r*   r  r8   Úpad_token_idÚmasked_selectr   r‚   Úlog_softmaxr/   rÁ   ÚbackendsÚcudnnÚflagsÚctc_lossÚctc_loss_reductionÚctc_zero_infinityr   rO   r-  )rB   r  r*   r{  r»   Úencoder_outputsrO   rl  r�  Úencoder_lengthsÚlabels_maskÚtarget_lengthsÚflattened_targetsÚ	log_probss                 r4   ri   zParakeetForCTC.forwardÅ  sî  € ð: ÐØ×ÒÐ5°tÑ<Ô<Ð<Ø&˜$œ,ð 
Ø)Ø)ð
ð 
ð ð
ð 
ˆð (Ô9ˆØ—’˜}×6Ò6°q¸!Ñ<Ô<Ñ=Ô=×GÒGÈÈ1ÑMÔMˆàˆØÑØ-Ô<×@Ò@ÀÑDÔDˆOð ! D¤KÔ$<Ò<ˆKØ(Ÿ_š_¨RÑ0Ô0ˆNØ &× 4Ò 4°[Ñ AÔ AÐõ œ×1Ò1°&¸bÍÌÐ1ÑVÔV×`Ò`ÐabÐdeÑfÔfˆIå”Ô%×+Ò+°EÐ+Ñ:Ô:ð 	ð 	Ý”}×-Ò-ØØ%Ø#Ø"Øœ+Ô2Ø"œkÔ<Ø"&¤+Ô"?ð .ñ ô �ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ØØØ)Ô7Ø&Ô1ð	
ñ 
ô 
ð 	
s   Ä+AE<Å<F ÆF FÚreturn_dict_in_generateÚcompile_configc                 óH  — |�|                       |¦  «        n| j        }d|d<    |d
||dœ|¤Ž}|j                             d¬¦  «        }|�2|                      ||j        d         ¬¦  «        }| j        j        || <   |r"t          ||j        |j	        |j
        ¬	¦  «        S |S )aÜ  
        compile_config ([`~generation.CompileConfig`], *optional*):
            If provided, `torch.compile` will be applied to the forward calls in the decoding loop.

        Example:

        ```python
        >>> from transformers import AutoProcessor, ParakeetForCTC
        >>> from datasets import load_dataset, Audio

        >>> model_id = "nvidia/parakeet-ctc-1.1b"
        >>> processor = AutoProcessor.from_pretrained(model_id)
        >>> model = ParakeetForCTC.from_pretrained(model_id)

        >>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
        >>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

        >>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
        >>> predicted_ids = model.generate(**inputs)
        >>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)

        >>> print(transcription)
        ```
        NTÚreturn_dictr}  rQ   rV   r   rb  )rk  rl  r-  rO   r2   )Úget_compiled_callÚ__call__rl  ÚargmaxrC  rY   r8   rƒ  rj  r-  rO   )	rB   r  r*   r’  r“  r»   Úmodel_forwardÚoutputsrk  s	            r4   ÚgeneratezParakeetForCTC.generate  sí   € ðB CQÐB\˜×.Ò.¨~Ñ>Ô>Ð>ÐbfÔboˆà $ˆˆ}ÑØ"/ -ð #
Ø)Ø)ð#
ð #
ð ð#
ð #
ˆð ”N×)Ò)¨bÐ)Ñ1Ô1ˆ	ð Ð%Ø!×<Ò<¸^Ð[dÔ[jÐklÔ[mÐ<ÑnÔnˆNØ)-¬Ô)AˆI�~�oÑ&à"ð 	Ý,Ø#Ø”~Ø"Ô-Ø%Ô3ð	ñ ô ð ð Ðr3   rk   )NFN)r+   r,   r-   r    r1   r>   r   r   r/   r0   r   r   r   ri   rm   rœ   r	   rj  rm  r›  rn   ro   s   @r4   rv  rv  µ  sl  ø€ € € € € € ð ÐÐÑðÐ0ð ð ð ð ð ð ð Øð /3Ø&*ð	B
ð B
àœðB
ð œ tÑ+ðB
ð ”˜tÑ#ð	B
ð
 Ð+Ô,ðB
ð 
ðB
ð B
ð B
ñ Ôñ „^ðB
ðH €U„]�_„_ð /3Ø(-Ø/3ð9ð 9àœð9ð œ tÑ+ð9ð "&ð	9ð
 &¨Ñ,ð9ð Ð+Ô,ð9ð 
# UÔ%5Ñ	5ð9ð 9ð 9ñ „_ð9ð 9ð 9ð 9ð 9r3   rv  c                   óZ   ‡ — e Zd ZdZdefˆ fd„Z	 d	dej        dedz  dej	        fd„Z
ˆ xZS )
ÚParakeetRNNTDecoderz'LSTM-based prediction network For RNN-Tr8   c                 óH  •— t          ¦   «                              ¦   «          |j        | _        t          j        |j        |j        ¦  «        | _        t          j        |j        |j        |j	        d¬¦  «        | _
        t          j        |j        |j        ¦  «        | _        d S )NT)Ú
input_sizerJ   rý   Úbatch_first)r=   r>   Úblank_token_idr   Ú	Embeddingry  Údecoder_hidden_sizeÚ	embeddingÚLSTMÚnum_decoder_layersÚlstmru   Údecoder_projectorr}   s     €r4   r>   zParakeetRNNTDecoder.__init__K  sŒ   ø€ Ý‰Œ×ÒÑÔÐØ$Ô3ˆÔÝœ fÔ&7¸Ô9SÑTÔTˆŒÝ”GØÔ1ØÔ2ØÔ0Øð	
ñ 
ô 
ˆŒ	õ "$¤¨6Ô+EÀvÔGaÑ!bÔ!bˆÔÐÐr3   NÚ	input_idsÚcacherD   c                 ó¸  — |�7|d d …df         | j         k    }|j        r|                     ¦   «         r|j        S |                      |¦  «        }|�-|j        }|s|                     |¦  «         |j        |j        f}nd }|                      ||¦  «        \  }\  }}	|  	                    |¦  «        }
|�'|r| nd }| 
                    |
||	|¬¦  «         |j        S |
S )NrQ   )Úmask)r¡  Úis_initializedr�   rª  r¤  Úlazy_initializationÚhidden_stateÚ
cell_stater§  r¨  Úupdate)rB   r©  rª  Ú
blank_maskÚ
embeddingsÚwas_initializedÚhidden_cell_statesÚlstm_outputr¯  r°  Údecoder_outputr¬  s               r4   ri   zParakeetRNNTDecoder.forwardW  s  € ð
 ÐØ" 1 1 1 b 5Ô)¨TÔ-@Ò@ˆJàÔ#ð #¨
¯ªÑ(8Ô(8ð #Ø”{Ð"à—^’^ IÑ.Ô.ˆ
ð ÐØ#Ô2ˆOØ"ð 6Ø×)Ò)¨*Ñ5Ô5Ð5Ø"'Ô"4°eÔ6FÐ!GÐÐà!%Ðà26·)²)¸JÐHZÑ2[Ô2[Ñ/ˆÑ/�l JØ×/Ò/°Ñ<Ô<ˆàÐØ"1Ð;�J�;�;°tˆDØ�LŠL˜¨°zÈˆLÑMÔMÐMØ”;ÐàÐr3   rj   )r+   r,   r-   r.   r"   r>   r/   rm  r$   r0   ri   rn   ro   s   @r4   r�  r�  H  s–   ø€ € € € € Ø1Ð1ð
cÐ1ð 
cð 
cð 
cð 
cð 
cð 
cð 26ðð àÔ#ðð (¨$Ñ.ðð 
Œð	ð ð ð ð ð ð ð r3   r�  c                   ót   ‡ — e Zd ZdZdefˆ fd„Zdej        dej        deej        ej        f         fd„Z	ˆ xZ
S )ÚParakeetRNNTJointNetworkzPJoint network that combines encoder and decoder outputs to predict token logits.r8   c                 óÖ   •— t          ¦   «                              ¦   «          t          |j                 | _        t          j        |j        |j        ¦  «        | _	        |j        | _        d S rj   )
r=   r>   r   ry   rz   r   ru   r£  ry  Úheadr}   s     €r4   r>   z!ParakeetRNNTJointNetwork.__init__{  sO   ø€ Ý‰Œ×ÒÑÔÐÝ  Ô!2Ô3ˆŒÝ”I˜fÔ8¸&Ô:KÑLÔLˆŒ	Ø Ô+ˆŒˆˆr3   Údecoder_hidden_statesÚencoder_hidden_statesrD   c                 ó\   — |                       ||z   ¦  «        }|                      |¦  «        S rj   )rz   r»  )rB   r¼  r½  Újoint_outputs       r4   ri   z ParakeetRNNTJointNetwork.forward�  s.   € ð
 —’Ð'<Ð?TÑ'TÑUÔUˆØ�yŠy˜Ñ&Ô&Ð&r3   )r+   r,   r-   r.   r"   r>   r/   r0   rò   ri   rn   ro   s   @r4   r¹  r¹  x  s�   ø€ € € € € ØZÐZð,Ð1ð ,ð ,ð ,ð ,ð ,ð ,ð'à$œ|ð'ð  %œ|ð'ð 
ˆuŒ|˜Uœ\Ð)Ô	*ð	'ð 'ð 'ð 'ð 'ð 'ð 'ð 'r3   r¹  c                   ód   — e Zd ZU dZdZej        dz  ed<   dZej        dz  ed<   dZ	e
dz  ed<   dS )ÚParakeetRNNTOutputa÷  
    Output of the Parakeet RNN-T forward pass.

    Args:
        loss (`torch.FloatTensor`, *optional*):
            RNN-T loss, returned when `labels` are provided.
        logits (`torch.FloatTensor`):
            Joint token logits. Shape is `(batch, T, U+1, vocab)` for training
            or `(batch, 1, 1, vocab)` for single-step inference.
        decoder_cache (`ParakeetRNNTDecoderCache`, *optional*):
            Decoder LSTM cache containing hidden state, cell state, and last output.
    Nr�  rl  Údecoder_cache)r+   r,   r-   r.   r�  r/   rn  r1   rl  rÂ  r$   r2   r3   r4   rÁ  rÁ  Š  sd   € € € € € € ðð ð &*€Dˆ%Ô
˜dÑ
"Ð)Ð)Ñ)Ø'+€FˆEÔ Ñ$Ð+Ð+Ñ+Ø59€MÐ+¨dÑ2Ð9Ð9Ñ9Ð9Ð9r3   rÁ  z?
    Parakeet Encoder with an RNN-T (RNN Transducer) head.
    c                   ón  ‡ — e Zd ZU eed<   dgZej        gZdefˆ fd„Z	e
	 ddej        dej        dz  dee         defd	„¦   «         Zee
	 	 	 	 	 	 	 ddej        dz  dej        dz  d
ej        dz  dedz  dedz  deeej                 z  dz  dej        dz  dee         defd„¦   «         ¦   «         Zˆ xZS )ÚParakeetForRNNTr8   r�  c                 óh  •— t          ¦   «                              |¦  «         t          j        |j        ¦  «        | _        t          j        |j        j        |j	        ¦  «        | _
        t          |¦  «        | _        t          |¦  «        | _        |j        | _        |                      ¦   «          d S rj   )r=   r>   r   rx  r8  rR  r   ru   rJ   r£  Úencoder_projectorr�  Údecoderr¹  ÚjointÚmax_symbols_per_stepr_  r}   s     €r4   r>   zParakeetForRNNT.__init__¨  sŒ   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý Ô,¨VÔ-BÑCÔCˆŒÝ!#¤¨6Ô+@Ô+LÈfÔNhÑ!iÔ!iˆÔÝ*¨6Ñ2Ô2ˆŒÝ-¨fÑ5Ô5ˆŒ
Ø$*Ô$?ˆÔ!à�ŠÑÔÐÐÐr3   Nr  r*   r»   rD   c                 ód   —  | j         d||dœ|¤Ž}|                      |j        ¦  «        |_        |S )Nr}  r2   )rR  rÆ  rc  Úpooler_output)rB   r  r*   r»   rŒ  s        r4   Úget_audio_featuresz"ParakeetForRNNT.get_audio_features²  sR   € ð '˜$œ,ð 
Ø)Ø)ð
ð 
ð ð
ð 
ˆð
 )-×(>Ò(>¸Ô?`Ñ(aÔ(aˆÔ%ØÐr3   Údecoder_input_idsrÂ  Úuse_decoder_cacherŒ  r{  c           
      ó„  — |€ | j         d	||dœ|¤Ž}|r|€t          | j        ¦  «        }|                      ||¬¦  «        }	|                      |j        dd…dd…ddd…f         |	dd…ddd…dd…f         ¬¦  «                             d¦  «        }
d}|�ƒ|j                             d¦  «        } | j	        d	|
dd…dt          |                     ¦   «         ¦  «        …f         |||| j        j        k                         d¦  «        | j        j        dœ|¤Ž}t          ||
|j        |j        |j        |j        |¬¦  «        S )
a?  
        decoder_input_ids (`torch.LongTensor` of shape `(batch_size, 1)`, *optional*):
            Decoder input token ids for single-step inference.
        decoder_cache (`ParakeetRNNTDecoderCache`, *optional*):
            Decoder LSTM cache. When provided and initialized, the cached `decoder_output` is reused
            (e.g. during blank-skipping) instead of running the decoder. When `input_ids` is provided,
            the decoder runs and the cache is updated in-place.
        use_decoder_cache (`bool`, *optional*):
            Whether to use a decoder cache. When `True` and `decoder_cache` is `None`, a new cache
            is created automatically during the forward pass.
        encoder_outputs (`tuple(torch.FloatTensor)`, *optional*):
            Pre-computed encoder outputs (last_hidden_state, pooler_output, hidden_states, attentions, attention_mask).
            Can be a tuple or `ParakeetEncoderModelOutput`.

        Example:

        ```python
        >>> from transformers import AutoProcessor, ParakeetForRNNT
        >>> from datasets import load_dataset, Audio

        >>> model_id = "nvidia/parakeet-rnnt-0.6b"
        >>> processor = AutoProcessor.from_pretrained(model_id)
        >>> model = ParakeetForRNNT.from_pretrained(model_id)

        >>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
        >>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

        >>> inputs = processor(ds[0]["audio"]["array"])
        >>> outputs = model(**inputs)
        ```
        Nr}  ©rª  ©r½  r¼  r   rQ   )rl  r{  Úlogit_lengthsÚlabel_lengthsr¡  ©r�  rl  rc  rË  rO   r-  rÂ  r2   )rÌ  r$   r8   rÇ  rÈ  rË  Úsqueezer*   r  Úloss_functionrñ   rA  r¡  rÁ  rc  rO   r-  )rB   r  r*   rÍ  rÂ  rÎ  rŒ  r{  r»   r¼  rl  r�  rÒ  s                r4   ri   zParakeetForRNNT.forwardÁ  s«  € ðX Ð"Ø5˜dÔ5ð Ø-Ø-ðð ð ðð ˆOð ð 	B Ð!6Ý4°T´[ÑAÔAˆMà $§¢Ð->Àm Ñ TÔ TÐØ—’Ø"1Ô"?ÀÀÀÀ1À1À1ÀdÈAÈAÈAÀÔ"NØ"7¸¸¸¸4ÀÀÀÀAÀAÀA¸Ô"Fð ñ 
ô 
÷ Š'�!‰*Œ*ð 	ð
 ˆØÐØ+Ô:×>Ò>¸rÑBÔBˆMØ%�4Ô%ð Ø˜a˜a˜aÐ!;¥3 }×'8Ò'8Ñ':Ô':Ñ#;Ô#;Ð!;Ð;Ô<ØØ+Ø%¨¬Ô)CÒC×HÒHÈÑLÔLØ#œ{Ô9ðð ð ðð ˆDõ "ØØØ-Ô?Ø)Ô7Ø)Ô7Ø&Ô1Ø'ð
ñ 
ô 
ð 	
r3   rj   ©NNNNNNN)r+   r,   r-   r"   r1   rH  r   ÚGREEDY_SEARCHÚ_supported_generation_modesr>   r   r/   r0   r   r   r)   rÌ  r   rm  r$   rœ   rò   rn  rÁ  ri   rn   ro   s   @r4   rÄ  rÄ  ž  sº  ø€ € € € € € ð ÐÐÑØ.Ð/ÐØ#1Ô#?Ð"@ÐðÐ1ð ð ð ð ð ð ð ð /3ðð àœðð œ tÑ+ðð Ð+Ô,ð	ð
 
$ðð ð ñ Ôðð Øð /3Ø.2Ø59Ø9=Ø)-ØX\Ø&*ðN
ð N
àœ tÑ+ðN
ð œ tÑ+ðN
ð !Ô+¨dÑ2ð	N
ð
 0°$Ñ6ðN
ð   $™;ðN
ð 4°e¸EÔ<MÔ6NÑNÐQUÑUðN
ð ”˜tÑ#ðN
ð Ð+Ô,ðN
ð 
ðN
ð N
ð N
ñ Ôñ „^ðN
ð N
ð N
ð N
ð N
r3   rÄ  c                   ó(   ‡ — e Zd ZdZdefˆ fd„Zˆ xZS )ÚParakeetTDTJointNetworka
  Extends the RNN-T joint network with a duration head.

    The only difference from [`ParakeetRNNTJointNetwork`] is the output width of `head`: it grows from
    `vocab_size` to `vocab_size + len(durations)` so the network jointly predicts tokens and durations.
    r8   c                 ó¼   •— t          ¦   «                              |¦  «         t          j        |j        |j        t          |j        ¦  «        z   ¦  «        | _        d S rj   )	r=   r>   r   ru   r£  ry  ÚlenÚ	durationsr»  r}   s     €r4   r>   z ParakeetTDTJointNetwork.__init__  sI   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý”I˜fÔ8¸&Ô:KÍcÐRXÔRbÑNcÔNcÑ:cÑdÔdˆŒ	ˆ	ˆ	r3   )r+   r,   r-   r.   r#   r>   rn   ro   s   @r4   rÛ  rÛ    sZ   ø€ € € € € ðð ðeÐ0ð eð eð eð eð eð eð eð eð eð er3   rÛ  zG
    Parakeet Encoder with a TDT (Token Duration Transducer) head.
    c                   ó  ‡ — e Zd ZU eed<   defˆ fd„Zee	 	 	 	 	 	 	 ddej	        dz  dej	        dz  dej
        dz  dedz  dedz  d	eeej                 z  dz  d
ej	        dz  dee         defd„¦   «         ¦   «         Zˆ xZS )ÚParakeetForTDTr8   c                 óš   •— t          ¦   «                              |¦  «         t          |¦  «        | _        |                      ¦   «          d S rj   )r=   r>   rÛ  rÈ  r_  r}   s     €r4   r>   zParakeetForTDT.__init__(  s@   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ý,¨VÑ4Ô4ˆŒ
à�ŠÑÔÐÐÐr3   Nr  r*   rÍ  rÂ  rÎ  rŒ  r{  r»   rD   c                 ó’  — |€ | j         d
||dœ|¤Ž}|r|€t          | j        ¦  «        }|                      ||¬¦  «        }	|                      |j        dd…dd…ddd…f         |	dd…ddd…dd…f         ¬¦  «                             d¦  «        }
d}|�Š | j        d
|
dd| j        j        …f         |
d| j        j        d…f         ||j	         
                    d¦  «        || j        j        k     
                    d¦  «        | j        j        | j        j        dœ|¤Ž}t          ||
|j        |j        |j        |j        |¬	¦  «        S )a?  
        decoder_input_ids (`torch.LongTensor` of shape `(batch_size, 1)`, *optional*):
            Decoder input token ids for single-step inference.
        decoder_cache (`ParakeetRNNTDecoderCache`, *optional*):
            Decoder LSTM cache. When provided and initialized, the cached `decoder_output` is reused
            (e.g. during blank-skipping) instead of running the decoder. When `input_ids` is provided,
            the decoder runs and the cache is updated in-place.
        use_decoder_cache (`bool`, *optional*):
            Whether to use a decoder cache. When `True` and `decoder_cache` is `None`, a new cache
            is created automatically during the forward pass.
        encoder_outputs (`tuple(torch.FloatTensor)`, *optional*):
            Pre-computed encoder outputs (last_hidden_state, pooler_output, hidden_states, attentions, attention_mask).
            Can be a tuple or `ParakeetEncoderModelOutput`.

        Example:

        ```python
        >>> from transformers import AutoProcessor, ParakeetForTDT
        >>> from datasets import load_dataset, Audio

        >>> model_id = "nvidia/parakeet-tdt-0.6b-v3"
        >>> processor = AutoProcessor.from_pretrained(model_id)
        >>> model = ParakeetForTDT.from_pretrained(model_id)

        >>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
        >>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

        >>> inputs = processor(ds[0]["audio"]["array"])
        >>> outputs = model(**inputs)
        ```
        Nr}  rÐ  rÑ  r   .rQ   )Útoken_logitsÚduration_logitsr{  rÒ  rÓ  r¡  rÞ  rÔ  r2   )rÌ  r$   r8   rÇ  rÈ  rË  rÕ  rÖ  ry  r*   r  rƒ  r¡  rÞ  rÁ  rc  rO   r-  )rB   r  r*   rÍ  rÂ  rÎ  rŒ  r{  r»   r¼  rl  r�  s               r4   ri   zParakeetForTDT.forward.  s³  € ðX Ð"Ø5˜dÔ5ð Ø-Ø-ðð ð ðð ˆOð ð 	B Ð!6Ý4°T´[ÑAÔAˆMà $§¢Ð->Àm Ñ TÔ TÐØ—’Ø"1Ô"?ÀÀÀÀ1À1À1ÀdÈAÈAÈAÀÔ"NØ"7¸¸¸¸4ÀÀÀÀAÀAÀA¸Ô"Fð ñ 
ô 
÷ Š'�!‰*Œ*ð 	ð
 ˆØÐØ%�4Ô%ð 	Ø# CÐ)A¨4¬;Ô+AÐ)AÐ$AÔBØ & s¨D¬KÔ,BÐ,DÐ,DÐ'DÔ EØØ-Ô<×@Ò@ÀÑDÔDØ%¨¬Ô)AÒA×FÒFÀrÑJÔJØ#œ{Ô9Øœ+Ô/ð	ð 	ð ð	ð 	ˆDõ "ØØØ-Ô?Ø)Ô7Ø)Ô7Ø&Ô1Ø'ð
ñ 
ô 
ð 	
r3   r×  )r+   r,   r-   r#   r1   r>   r   r   r/   r0   rm  r$   rœ   r)   rò   rn  r   r   rÁ  ri   rn   ro   s   @r4   rà  rà     sE  ø€ € € € € € ð ÐÐÑðÐ0ð ð ð ð ð ð ð Øð /3Ø.2Ø59Ø9=Ø)-ØX\Ø&*ðO
ð O
àœ tÑ+ðO
ð œ tÑ+ðO
ð !Ô+¨dÑ2ð	O
ð
 0°$Ñ6ðO
ð   $™;ðO
ð 4°e¸EÔ<MÔ6NÑNÐQUÑUðO
ð ”˜tÑ#ðO
ð Ð+Ô,ðO
ð 
ðO
ð O
ð O
ñ Ôñ „^ðO
ð O
ð O
ð O
ð O
r3   rà  )rv  rÄ  rà  rQ  r*  )r   )rš   )Rrú   Úcollections.abcr   Údataclassesr   r/   r   Ú r   r3  Úactivationsr   Ú
generationr	   r
   r   Úintegrationsr   r   Úmodeling_layersr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   r   Úutils.output_capturingr   Úautor   Úconfiguration_parakeetr    r!   r"   r#   Úgeneration_parakeetr$   r%   r&   Ú
get_loggerr+   rr  r)   ÚModuler6   rq   r†   r¥   r®   r0   rñ   rµ   rM   rÇ   rÉ   rô   r  r*  rQ  rj  rp  rv  r�  r¹  rÁ  rÄ  rÛ  rà  Ú__all__r2   r3   r4   ú<module>rø     s3  ðð* €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !à €€€Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ø !Ð !Ð !Ð !Ð !Ð !Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ &Ð &Ð &Ð &Ð &Ð &Ø _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ð _Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sÐ sØ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rð 
ˆÔ	˜HÑ	%Ô	%€ð €ððñ ô ð ð
/ð 
/ð 
/ð 
/ð 
/Ð!;ñ 
/ô 
/ñ „ñô ð
/ð/7ð /7ð /7ð /7ð /7¨2¬9ñ /7ô /7ð /7ðdð ð ð ð  ¤ñ ô ð ðE-ð E-ð E-ð E-ð E- r¤yñ E-ô E-ð E-ðP(ð (ð (ð ÐÐ*Ñ+Ô+ðð ð ñ ,Ô+ðð2	U˜Uœ\ð 	U°#ð 	U¸%¼,ð 	Uð 	Uð 	Uð 	Uð& ð%ð %ØŒIð%àŒ<ð%ð 
Œð%ð Œ<ð	%ð
 ”L 4Ñ'ð%ð ð%ð ð%ð Ð'Ô(ð%ð %ð %ð %ð2 ÐÐ)Ñ*Ô*ð_ ð _ ð _ ð _ ð _ ˜rœyñ _ ô _ ñ +Ô*ð_ ðDBð Bð Bð Bð B r¤yñ Bô Bð BðJ,ð ,ð ,ð ,ð ,Ð5ñ ,ô ,ð ,ð^ ð;ð ;ð ;ð ;ð ;˜oñ ;ô ;ñ „ð;ð| €ððñ ô ð
]
ð ]
ð ]
ð ]
ð ]
Ð-ñ ]
ô ]
ñô ð
]
ð@ ðAð Að Að Að A ñ Aô Añ „ðAð4 ð	
ð 	
ð 	
ð 	
ð 	
Ð6ñ 	
ô 	
ñ „ð	
ð €ððñ ô ð
Kð Kð Kð Kð KÐ,¨oñ Kô Kñô ð
Kð\-ð -ð -ð -ð -˜"œ)ñ -ô -ð -ð`'ð 'ð 'ð 'ð '˜rœyñ 'ô 'ð 'ð$ ð:ð :ð :ð :ð :Ð3ñ :ô :ñ „ð:ð& €ððñ ô ð
n
ð n
ð n
ð n
ð n
Ð-Ð/Jñ n
ô n
ñô ð
n
ðb	eð 	eð 	eð 	eð 	eÐ6ñ 	eô 	eð 	eð €ððñ ô ð
Z
ð Z
ð Z
ð Z
ð Z
Ð/°ñ Z
ô Z
ñô ð
Z
ðz pÐ
oÐ
o€€€r3   