+
    œ°³jžS ã                   óÈ  € R t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^ RI	t	^ RI
Ht ^ RI	Ht ^ RIHt ^RIHt ^RIHt ^R	IHt ^R
IHt ^RIHt ^RIHt ^RIHt ^RIH t  ^RI!H"t"H#t#H$t$H%t%H&t&H't' ^RI(H)t)H*t*H+t+ ^RI,H-t- ^RI.H/t/H0t0H1t1H2t2H3t3H4t4H5t5 ^RI6H7t7H8t8 ^RI9H:t:H;t; ^RI<H=t= Rt>Rt?]5P€                  ! ]A4      tB^tC]1! RR7      ] ! R R]/4      4       4       tDRZR R lltER[R R lltF ! R  R!] 4      tG ! R" R#] 4      tH ! R$ R%] 4      tI ! R& R']P”                  4      tK ! R( R)]P”                  4      tL ! R* R+]P”                  4      tM ! R, R-]P”                  4      tNR\R. R/ lltO ! R0 R1]P”                  4      tP ! R2 R3]P”                  4      tQ ! R4 R5] 4      tR ! R6 R7] 4      tS ! R8 R9]P”                  4      tT ! R: R;]P”                  4      tU ! R< R=]P”                  4      tV ! R> R?]P”                  4      tW ! R@ RA]P”                  4      tX ! RB RC]P”                  4      tY]1 ! RD RE]*4      4       tZ]1 ! RF RG]Z4      4       t[]1! RHR7       ! RI RJ]Z4      4       t\]1! RKR7       ! RL RM]Z4      4       t]]1! RNR7       ! RO RP]Z4      4       t^]1 ! RQ RR]Z4      4       t_ ! RS RT]P”                  4      t` ! RU RV]P”                  4      ta]1! RWR7       ! RX RY]Z4      4       tb. R]OtcR# )^zPyTorch Wav2Vec2 model.N)ÚCallable)Ú	dataclass)Ú	load_file)Únn)ÚCrossEntropyLoss)Úinitialization)ÚACT2FN)Úfilter_output_hidden_states)Úis_deepspeed_zero3_enabled)Úis_fsdp_managed_module)Úcreate_bidirectional_mask)ÚFlashAttentionKwargs)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚCausalLMOutputÚSequenceClassifierOutputÚTokenClassifierOutputÚWav2Vec2BaseModelOutputÚXVectorOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModelÚ*get_torch_context_manager_or_global_device)ÚUnpack)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcached_fileÚcheck_torch_load_is_safeÚis_peft_availableÚlogging)Úcan_return_tupleÚmerge_with_config_defaults)ÚOutputRecorderÚcapture_outputs©ÚWav2Vec2Configzadapter.{}.binzadapter.{}.safetensorsza
    Output type of [`Wav2Vec2ForPreTraining`], with potential hidden states and attentions.
    )Úcustom_introc                   óP   a € ] tR t^Et o RtRtRtRtRtRt	Rt
RtRtV 3R ltRtV tR# )ÚWav2Vec2ForPreTrainingOutputa  
loss (*optional*, returned when `sample_negative_indices` are passed, `torch.FloatTensor` of shape `(1,)`):
    Total loss as the sum of the contrastive loss (L_m) and the diversity loss (L_d) as stated in the [official
    paper](https://huggingface.co/papers/2006.11477).
projected_states (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.proj_codevector_dim)`):
    Hidden-states of the model projected to *config.proj_codevector_dim* that can be used to predict the masked
    projected quantized states.
projected_quantized_states (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.proj_codevector_dim)`):
    Quantized extracted feature vectors projected to *config.proj_codevector_dim* representing the positive
    target vectors for contrastive loss.
codevector_perplexity (`torch.FloatTensor` of shape `(1,)`):
    The perplexity of the codevector distribution, used to measure the diversity of the codebook.
contrastive_loss (*optional*, returned when `sample_negative_indices` are passed, `torch.FloatTensor` of shape `(1,)`):
    The contrastive loss (L_m) as stated in the [official paper](https://huggingface.co/papers/2006.11477).
diversity_loss (*optional*, returned when `sample_negative_indices` are passed, `torch.FloatTensor` of shape `(1,)`):
    The diversity loss (L_d) as stated in the [official paper](https://huggingface.co/papers/2006.11477).
Nc                óª  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  ,          R,          ;R&   S[S[ P                  ,          R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R	&   # )
é   NÚlossÚprojected_statesÚprojected_quantized_statesÚcodevector_perplexityÚhidden_statesÚ
attentionsÚcontrastive_lossÚdiversity_loss)ÚtorchÚFloatTensorÚtuple)ÚformatÚ__classdict__s   "€Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/wav2vec2/modeling_wav2vec2.pyÚ__annotate__Ú)Wav2Vec2ForPreTrainingOutput.__annotate__E   sÑ   ø‡ ‚ ñ2 ×
Ñ
˜dÕ
"Ñ)ñ3 ñ4 ×'Ñ'¨$Õ.Ñ5ñ5 ñ6 !&× 1Ñ 1°DÕ 8Ñ?ñ7 ñ8 !×,Ñ,¨tÕ3Ñ:ñ9 ñ: ™×*Ñ*Õ+¨dÕ2Ñ9ñ; ñ< ‘e×'Ñ'Õ(¨4Õ/Ñ6ñ= ñ> ×'Ñ'¨$Õ.Ñ5ñ? ñ@ ×%Ñ%¨Õ,Ñ3òA ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r+   r,   r-   r.   r/   r0   r1   r2   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r7   s   @r8   r(   r(   E   s@   ø‡ € ñð$ &*€DØ15ÐØ;?ÐØ6:ÐØ59€MØ26€JØ15ÐØ/3€N÷A ƒ r;   r(   c                ó¸   € V ^8„  d   QhR\         \        \        3,          R\        R\        R\        P                  R,          R\        R\
        P                  /# )r*   ÚshapeÚ	mask_probÚmask_lengthÚattention_maskNÚ	min_masksÚreturn)r5   ÚintÚfloatr3   Ú
LongTensorÚnpÚndarray)r6   s   "r8   r9   r9   h   sc   € ÷ tñ tÜ””c��?ðtäðtô ðtô ×$Ñ$ tÕ+ð	tô
 ðtô ‡Z�Zñtr;   c           	     ó^  aaaaa€ V w  poS^8  d   \        R4      hSS8”  d   \        RS RS R24      h\        P                  P                  ^4      P	                  4       oVVVVV3R lpVe.   VP                  4       P                  R	4      P                  4       M\        V4       Uu. uF  pSNK  	  upp\        P                  ! VS3\        R7      p	. p
V! S4      pV^ 8X  d   V	# V FÌ  pV! V4      p\        P                  P                  \        P                  ! VS^,
          ,
          4      VRR7      p\        V4      ^ 8X  d   S^,
          pM	V^ ,          p\        P                  ! V\        P                  ! W½,
          \        P                   R7      V,          .4      pV
P#                  V4       KÎ  	  \        P$                  ! V
4      p
\        P&                  ! V
R
,          W[S34      p
V
P)                  W[S,          4      p
\        P                  ! S4      R,          p\        P&                  ! VW[S34      P)                  W[S,          4      pV
V,           p
V
P+                  4       S^,
          8”  d   S^,
          WªS^,
          8„  &   \        P,                  ! Wš^R	4       V	# u upi )a2  
Computes random mask spans for a given shape. Used to implement [SpecAugment: A Simple Data Augmentation Method for
ASR](https://huggingface.co/papers/1904.08779). Note that this method is not optimized to run on TPU and should be run on
CPU as part of the preprocessing during training.

Args:
    shape: The shape for which to compute masks. This should be of a tuple of size 2 where
           the first element is the batch size and the second element is the length of the axis to span.
    mask_prob:  The percentage of the whole axis (between 0 and 1) which will be masked. The number of
                independently generated mask spans of length `mask_length` is computed by
                `mask_prob*shape[1]/mask_length`. Note that due to overlaps, `mask_prob` is an upper bound and the
                actual percentage will be smaller.
    mask_length: size of the mask
    min_masks: minimum number of masked spans
    attention_mask: A (right-padded) attention mask which independently shortens the feature axis of
                    each batch dimension.
z&`mask_length` has to be bigger than 0.zO`mask_length` has to be smaller than `sequence_length`, but got `mask_length`: z and `sequence_length`: Ú`c                óì   <€ \        SV ,          S,          S,           4      p\        VS4      pVS,          S8”  d
   SS,          pV S^,
          ,
          V8  d   \        V S^,
          ,
          ^ 4      pV# )z;Given input length, compute how many spans should be masked)rL   Úmax)Úinput_lengthÚnum_masked_spanÚepsilonrH   rG   rJ   Úsequence_lengths   & €€€€€r8   Úcompute_num_masked_spanÚ6_compute_mask_indices.<locals>.compute_num_masked_spanŽ   so   ø€ ä˜i¨,Õ6¸ÕDÀwÕNÓOˆÜ˜o¨yÓ9ˆð ˜[Õ(¨?Ô:Ø-°Õ<ˆOð ˜;¨�?Õ+¨oÔ=Ü! ,°+Àµ/Õ"BÀAÓFˆOàÐr;   ©ÚdtypeF)Úreplaceéÿÿÿÿ)ºNNNr_   N)NNr_   )Ú
ValueErrorrO   ÚrandomÚrandÚitemÚdetachÚsumÚtolistÚrangeÚzerosÚboolÚchoiceÚarangeÚlenÚconcatenateÚonesÚint32ÚappendÚarrayÚbroadcast_toÚreshaperT   Úput_along_axis)rF   rG   rH   rI   rJ   Ú
batch_sizerY   Ú_Úinput_lengthsÚspec_aug_maskÚspec_aug_mask_idxsÚmax_num_masked_spanrU   rV   Úspec_aug_mask_idxÚdummy_mask_idxÚoffsetsrW   rX   s   &ff&f            @@r8   Ú_compute_mask_indicesr~   h   sŽ  ü€ ð0 #(Ñ€J�à�Q„ÜÐAÓBÐBà�_Ô$ÜØ]Ð^iÐ]jØ& Ð&7°qð:ó
ð 	
ô �i‰i�n‰n˜QÓ×$Ñ$Ó&€G÷ñ ð$ Ò%ð 	×ÑÓ×#Ñ# BÓ'×.Ñ.Ô0ä',¨ZÔ'8Ó9Ñ'8 !‹oÑ'8Ñ9ð ô —H’H˜j¨/Ð:Ä$ÔG€MØÐá1°/ÓBÐà˜aÔØÐã%ˆá1°,Ó?ˆô ŸI™I×,Ñ,Ü�IŠI�l k°A¥oÕ6Ó7¸ÐRWð -ó 
Ðô Ð Ó! QÔ&ð -¨qÕ0‰Nà.¨qÕ1ˆNäŸNšNØ¤§¢Ð(;Õ(MÔUW×U]ÑU]Ô ^ÐaoÕ oÐpó
Ðð 	×!Ñ!Ð"3Ö4ñ/ &ô2 ŸšÐ"4Ó5Ðô ŸšØ˜:Õ&¨È+Ð(VóÐð ,×3Ñ3°JÐVaÕ@aÓbÐô �iŠi˜Ó$ ]Õ3€GÜ�oŠo˜g¨
ÈÐ'UÓV×^Ñ^Ø¨+Õ5ó€Gð ,¨gÕ5Ðð ×ÑÓ /°AÕ"5Ô5ØGVÐYZÕGZÐ°À!Õ0CÑCÑDô ×Ò�m¸¸BÔ?àÐùòw :s   Â+J*c                ó^   € V ^8„  d   QhR\         R\        R\        P                  R,          /# )r*   Úfeatures_shapeÚnum_negativesÚmask_time_indicesN)r5   rL   rO   rP   )r6   s   "r8   r9   r9   ß   s.   € ÷ $ñ $¬Uð $Ä3ð $Ô[]×[eÑ[eÐhlÕ[lñ $r;   c                óØ  € V w  r4\         P                  ! V4      p\         P                  ! W4V3\         P                  R7      pVe   VP	                  \
        4      M\         P                  ! V \
        R7      p\        V4       Fã  pW',          P                  4       ^,
          pWRV,          ,          p	\         P                  ! \         P                  ! V^,           4      R,          V^,           V34      p
\         P                  P                  ^ Wˆ^,           V3R7      pW»V
8¬  ;;,          ^,          uu&   W›,          Wg,          W',          &   Wg;;,          Wt,          ,          uu&   Kå  	  V# )z6
Sample `num_negatives` vectors from feature vectors.
)rF   r\   r[   )Úsize©r_   N)rO   rk   rh   ro   Úastyperi   rn   rg   re   rr   ra   Úrandint)r€   r�   r‚   ru   rX   Úsequence_length_rangeÚsampled_negative_indicesÚ	batch_idxÚhighÚmapped_masked_indicesÚfeature_indicesÚsampled_indicess   &&&         r8   Ú_sample_negative_indicesr�   ß   s1  € ð #1Ñ€Jô ŸIšI oÓ6Ðô  "Ÿxšx¨zÈMÐ.ZÔbd×bjÑbjÔkÐð +<Ò*GÐ× Ñ ¤Ô&ÌRÏWÊWÐUcÔkoÔMpð ô ˜:Ö&ˆ	Ø Õ+×/Ñ/Ó1°AÕ5ˆØ 5È	Õ6RÕ SÐäŸ/š/¬"¯)ª)°D¸1µHÓ*=¸gÕ*FÈÐPQÍÐS`ÐHaÓbˆÜŸ)™)×+Ñ+¨A¨tÀ!½8À]Ð:SÐ+ÓTˆà¨?Ñ:×;¸qÕ@Ó;ð MbÕLrÐ Õ+Ð,=Õ,HÑIð 	!×+¨yÕ/JÕJÕ+ñ 'ð $Ð#r;   c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )ÚWav2Vec2NoLayerNormConvLayeri  c                óœ  <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \        VP                  ,          V n        R# )é    ©Úkernel_sizeÚstrideÚbiasN)ÚsuperÚ__init__Úconv_dimÚin_conv_dimÚout_conv_dimr   ÚConv1dÚconv_kernelÚconv_strideÚ	conv_biasÚconvr   Úfeat_extract_activationÚ
activation©ÚselfÚconfigÚlayer_idÚ	__class__s   &&&€r8   r™   Ú%Wav2Vec2NoLayerNormConvLayer.__init__  s—   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô ! ×!?Ñ!?Õ@ˆŽr;   c                óJ   € V P                  V4      pV P                  V4      pV# ©N)r¡   r£   ©r¥   r/   s   &&r8   ÚforwardÚ$Wav2Vec2NoLayerNormConvLayer.forward  s$   € ØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØÐr;   )r£   r¡   r›   rœ   ©r“   ©	r=   r>   r?   r@   r™   r­   rC   rD   Ú__classcell__©r¨   r7   s   @@r8   r‘   r‘     s   ù‡ € ÷A÷ò r;   r‘   c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )ÚWav2Vec2LayerNormConvLayeri  c                óê  <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \
        P                  ! V P                  RR7      V n        \        VP                  ,          V n        R# )r“   r”   T)Úelementwise_affineN)r˜   r™   rš   r›   rœ   r   r�   rž   rŸ   r    r¡   Ú	LayerNormÚ
layer_normr   r¢   r£   r¤   s   &&&€r8   r™   Ú#Wav2Vec2LayerNormConvLayer.__init__  s¯   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô Ÿ,š, t×'8Ñ'8ÈTÔRˆŒÜ  ×!?Ñ!?Õ@ˆŽr;   c                ó´   € V P                  V4      pVP                  RR4      pV P                  V4      pVP                  RR4      pV P                  V4      pV# )r*   éþÿÿÿr^   )r¡   Ú	transposer¸   r£   r¬   s   &&r8   r­   Ú"Wav2Vec2LayerNormConvLayer.forward&  sV   € ØŸ	™	 -Ó0ˆà%×/Ñ/°°BÓ7ˆØŸ™¨Ó6ˆØ%×/Ñ/°°BÓ7ˆàŸ™¨Ó6ˆØÐr;   ©r£   r¡   r›   r¸   rœ   r¯   r°   r²   s   @@r8   r´   r´     s   ù‡ € ÷A÷ò r;   r´   c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )ÚWav2Vec2GroupNormConvLayeri1  c                ó   <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \        VP                  ,          V n        \
        P                  ! V P                  V P                  RR7      V n        R# )r“   r”   T)Ú
num_groupsÚnum_channelsÚaffineN)r˜   r™   rš   r›   rœ   r   r�   rž   rŸ   r    r¡   r   r¢   r£   Ú	GroupNormr¸   r¤   s   &&&€r8   r™   Ú#Wav2Vec2GroupNormConvLayer.__init__2  s¹   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô ! ×!?Ñ!?Õ@ˆŒäŸ,š,°$×2CÑ2CÐRV×RcÑRcÐlpÔqˆŽr;   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r«   )r¡   r¸   r£   r¬   s   &&r8   r­   Ú"Wav2Vec2GroupNormConvLayer.forwardB  s2   € ØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØŸ™¨Ó6ˆØÐr;   r¾   r¯   r°   r²   s   @@r8   rÀ   rÀ   1  s   ù‡ € ÷r÷ ò r;   rÀ   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚWav2Vec2PositionalConvEmbeddingiI  c                óø  <€ \         SV `  4        \        P                  ! VP                  VP                  VP
                  VP
                  ^,          VP                  R7      V n        \        P                  P                  p\        \        P                  P                  R4      '       d%   \        P                  P                  P                  p\        4       '       Ed5   ^ RIpVP                  P                  V P                  P                   ^ R7      ;_uu_ 4        V! V P                  R^R7      V n        RRR4       \        V P                  R4      '       dV   V P                  P                  P                   P"                  pV P                  P                  P                   P$                  pM,V P                  P&                  pV P                  P(                  pVP                  P+                  W4       VP                  P+                  W4       MV! V P                  R^R7      V n        \-        VP
                  4      V n        \0        VP2                  ,          V n        R#   + '       g   i     EL7; i)r*   )r•   ÚpaddingÚgroupsÚweight_normN)Úmodifier_rankÚweight)ÚnameÚdimÚparametrizations)r˜   r™   r   r�   Úhidden_sizeÚnum_conv_pos_embeddingsÚnum_conv_pos_embedding_groupsr¡   ÚutilsrÎ   ÚhasattrrÓ   r
   Ú	deepspeedÚzeroÚGatheredParametersrÐ   Ú	original0Ú	original1Úweight_gÚweight_vÚregister_external_parameterÚWav2Vec2SamePadLayerrÌ   r   r¢   r£   )r¥   r¦   rÎ   rÙ   rÞ   rß   r¨   s   &&    €r8   r™   Ú(Wav2Vec2PositionalConvEmbedding.__init__J  s§  ø€ Ü‰ÑÔÜ—I’IØ×ÑØ×ÑØ×6Ñ6Ø×2Ñ2°aÕ7Ø×7Ñ7ô
ˆŒ	ô —h‘h×*Ñ*ˆÜ”2—8‘8×,Ñ,¨m×<Ò<ÜŸ(™(×3Ñ3×?Ñ?ˆKä%×'Ó'Ûà—‘×2Ñ2°4·9±9×3CÑ3CÐSTÐ2×UÕUÙ'¨¯	©	¸ÀaÔH�”	÷ Vä�t—y‘yÐ"4×5Ò5ØŸ9™9×5Ñ5×<Ñ<×FÑF�ØŸ9™9×5Ñ5×<Ñ<×FÑF‘àŸ9™9×-Ñ-�ØŸ9™9×-Ñ-�Ø�N‰N×6Ñ6°tÔFØ�N‰N×6Ñ6°tÕFá# D§I¡I°HÀ!ÔDˆDŒIä+¨F×,JÑ,JÓKˆŒÜ  ×!?Ñ!?Õ@ˆŽ÷ V×UÐUús   ÄI(É(I9	c                ó´   € VP                  ^^4      pV P                  V4      pV P                  V4      pV P                  V4      pVP                  ^^4      pV# ©é   )r¼   r¡   rÌ   r£   r¬   s   &&r8   r­   Ú'Wav2Vec2PositionalConvEmbedding.forwardk  sV   € Ø%×/Ñ/°°1Ó5ˆàŸ	™	 -Ó0ˆØŸ™ ]Ó3ˆØŸ™¨Ó6ˆà%×/Ñ/°°1Ó5ˆØÐr;   )r£   r¡   rÌ   r°   r²   s   @@r8   rÊ   rÊ   I  s   ù‡ € õA÷Bò r;   rÊ   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )rá   iv  c                ó`   <€ \         SV `  4        V^,          ^ 8X  d
   ^V n        R# ^ V n        R# )r*   N)r˜   r™   Únum_pad_remove)r¥   rÕ   r¨   s   &&€r8   r™   ÚWav2Vec2SamePadLayer.__init__w  s)   ø€ Ü‰ÑÔØ#:¸QÕ#>À!Ô#C˜aˆÖÈˆÖr;   c                óZ   € V P                   ^ 8”  d   VRRRV P                   ) 13,          pV# )r“   r_   N©ré   r¬   s   &&r8   r­   ÚWav2Vec2SamePadLayer.forward{  s6   € Ø×Ñ Ô"Ø)¨!¨QÐ0F°4×3FÑ3FÐ2FÐ0FÐ*FÕGˆMØÐr;   rì   r°   r²   s   @@r8   rá   rá   v  s   ù‡ € õK÷ò r;   rá   c                   óB   a a€ ] tR tRt oRtV 3R ltR tR tRtVt	V ;t
# )ÚWav2Vec2FeatureEncoderi�  z.Construct the features from raw audio waveformc           	     ó   <€ \         SV `  4        VP                  R 8X  dR   \        V^ R7      .\	        VP
                  ^,
          4       Uu. uF  p\        W^,           R7      NK  	  up,           pMYVP                  R8X  d0   \	        VP
                  4       Uu. uF  p\        WR7      NK  	  ppM\        RVP                   R24      h\        P                  ! V4      V n        RV n        RV n        R# u upi u upi )Úgroup)r§   Úlayerz`config.feat_extract_norm` is z), but has to be one of ['group', 'layer']FTN)r˜   r™   Úfeat_extract_normrÀ   rg   Únum_feat_extract_layersr‘   r´   r`   r   Ú
ModuleListÚconv_layersÚgradient_checkpointingÚ_requires_grad)r¥   r¦   Úirö   r¨   s   &&  €r8   r™   ÚWav2Vec2FeatureEncoder.__init__„  s÷   ø€ Ü‰ÑÔà×#Ñ# wÔ.Ü5°fÀqÔIÐJÜNSÐTZ×TrÑTrÐuvÕTvÔNwóNÙNwÈÔ,¨VÀ!½e×DÑNwñNõ ‰Kð ×%Ñ%¨Ô0äHMÈf×NlÑNlÔHmóÙHmÀ1Ô*¨6×>ÑHmð ð ˆKô Ø0°×1IÑ1IÐ0JÐJsÐtóð ô Ÿ=š=¨Ó5ˆÔØ&+ˆÔ#Ø"ˆÖùòNùòs   ÁC6ÂC;c                óP   € V P                  4        F
  pR Vn        K  	  R V n        R# )FN)Ú
parametersÚrequires_gradrø   ©r¥   Úparams   & r8   Ú_freeze_parametersÚ)Wav2Vec2FeatureEncoder._freeze_parameters—  s#   € Ø—_‘_Ö&ˆEØ"'ˆEÖñ 'à#ˆÖr;   c                ó¤   € VR,          pV P                   '       d   V P                  '       d   RVn        V P                   F  pV! V4      pK  	  V# )r_   Tr…   )rø   Útrainingrý   rö   )r¥   Úinput_valuesr/   Ú
conv_layers   &&  r8   r­   ÚWav2Vec2FeatureEncoder.forwardœ  sL   € Ø$ WÕ-ˆð ××Ð 4§=§= =Ø*.ˆMÔ'à×*Ô*ˆJÙ& }Ó5ŠMñ +ð Ðr;   )rø   rö   r÷   )r=   r>   r?   r@   rA   r™   r   r­   rC   rD   r±   r²   s   @@r8   rï   rï   �  s   ù‡ € Ù8õ#ò&$÷

ò 
r;   rï   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚWav2Vec2FeatureProjectioni©  c                óL  <€ \         SV `  4        \        P                  ! VP                  R,          VP
                  R7      V n        \        P                  ! VP                  R,          VP                  4      V n	        \        P                  ! VP                  4      V n        R# )rå   ©ÚepsNr^   )r˜   r™   r   r·   rš   Úlayer_norm_epsr¸   ÚLinearrÔ   Ú
projectionÚDropoutÚfeat_proj_dropoutÚdropout©r¥   r¦   r¨   s   &&€r8   r™   Ú"Wav2Vec2FeatureProjection.__init__ª  sf   ø€ Ü‰ÑÔÜŸ,š, v§¡°rÕ':À×@UÑ@UÔVˆŒÜŸ)š) F§O¡O°BÕ$7¸×9KÑ9KÓLˆŒÜ—z’z &×":Ñ":Ó;ˆŽr;   c                ón   € V P                  V4      pV P                  V4      pV P                  V4      pW3# r«   )r¸   r  r  )r¥   r/   Únorm_hidden_statess   && r8   r­   Ú!Wav2Vec2FeatureProjection.forward°  s7   € à!Ÿ_™_¨]Ó;ÐØŸ™Ð(:Ó;ˆØŸ™ ]Ó3ˆØÐ0Ð0r;   )r  r¸   r  r°   r²   s   @@r8   r  r  ©  s   ù‡ € õ<÷1ò 1r;   r  c                ó  € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        R	\
        \        ,          /# )
r*   ÚmoduleÚqueryÚkeyÚvaluerI   NÚscalingr  Úkwargs)r   ÚModuler3   ÚTensorrM   r   r   )r6   s   "r8   r9   r9   ¹  s{   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ð%ô Ô'Õ(ñ%r;   c                 ó¶  € Vf   VP                  R4      R,          p\        P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P
                  P                  VRR7      p\        P
                  P                  W†V P                  R7      p\        P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )N©rÒ   )Úpr  r^   ç      à¿)
r„   r3   Úmatmulr¼   r   Ú
functionalÚsoftmaxr  r  Ú
contiguous)
r  r  r  r  rI   r  r  r  Úattn_weightsÚattn_outputs
   &&&&&&&,  r8   Úeager_attention_forwardr*  ¹  s±   € ð ‚Ø—*‘*˜R“. DÕ(ˆô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LàÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r;   c                   ó\   a a€ ] tR tRt oRtRV3R lV 3R llltR	V3R lR lltRtVtV ;t	# )
ÚWav2Vec2AttentioniÕ  z=Multi-headed attention from 'Attention Is All You Need' paperc                óR   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[RS[RS[R,          /# )	r*   Ú	embed_dimÚ	num_headsr  Ú
is_decoderr—   Ú	is_causalr¦   N)rL   rM   ri   r%   )r6   r7   s   "€r8   r9   ÚWav2Vec2Attention.__annotate__Ø  s_   ø€ ÷ Cñ CáðCñ ðCñ ð	Cñ
 ðCñ ðCñ ðCñ  Õ%ñCr;   c                ó  <€ \         SV `  4        Wn        W n        W0n        W,          V n        Wpn        V P
                  V,          V P                  8w  d   \        R V P                   RV R24      hV P
                  R,          V n        W@n	        W`n
        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).)r—   Nr#  )r˜   r™   r.  r/  r  Úhead_dimr¦   r`   r  r0  r1  r   r  Úk_projÚv_projÚq_projÚout_proj)	r¥   r.  r/  r  r0  r—   r1  r¦   r¨   s	   &&&&&&&&€r8   r™   ÚWav2Vec2Attention.__init__Ø  sÎ   ø€ ô 	‰ÑÔØ"ŒØ"ŒØŒØ!Õ.ˆŒØŒà�M‰M˜IÕ%¨$¯.©.Ô8ÜØMÈdÏnÉnÐM]Ø$ Y K¨rð3óð ð —}‘} dÕ*ˆŒØ$ŒØ"Œä—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜŸ	š	 )¸TÔBˆŽr;   c                ó   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  S[ P                  R,          3,          /# )r*   r/   Úkey_value_statesNrI   Úoutput_attentionsr  rK   )r3   r  ri   r   r   r5   )r6   r7   s   "€r8   r9   r2  ÷  s~   ø€ ÷ 0)ñ 0)á—|‘|ð0)ñ  Ÿ,™,¨Õ-ð0)ñ Ÿ™ tÕ+ð	0)ñ
   $�;ð0)ñ Ñ-Õ.ð0)ñ 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñ0)r;   c           	     ó  € VRJpVP                   RR p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      p	V'       d   TMTp
. V
P                   RR ORNV P                  N5pV P                  V
4      P                  V4      P	                  ^^4      pV P                  V
4      P                  V4      P	                  ^^4      p\        P                  ! V P                  P                  \        4      pT! V V	VVV3RV P                  '       g   RMV P                  RV P                  RV/VB w  ppVP                  ! . VORN5!  P!                  4       pV P#                  V4      pVV3# )z#Input shape: Batch x Time x ChannelNr  ç        r  r<  r^   )rF   r4  r7  Úviewr¼   r5  r6  r   Úget_interfacer¦   Ú_attn_implementationr*  r  r  r  rs   r'  r8  )r¥   r/   r;  rI   r<  r  Úis_cross_attentionÚinput_shapeÚhidden_shapeÚquery_statesÚcurrent_statesÚkv_shapeÚ
key_statesÚvalue_statesÚattention_interfacer)  r(  s   &&&&&,           r8   r­   ÚWav2Vec2Attention.forward÷  s–  € ð .°TÐ9Ðð $×)Ñ)¨#¨2Ð.ˆà8˜Ð8 bÐ8¨$¯-©-Ñ8ˆð —{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆç-?Ñ)À]ˆØB�^×)Ñ)¨#¨2Ð.ÐB°ÐB°D·M±MÑBˆØ—[‘[ Ó0×5Ñ5°hÓ?×IÑIÈ!ÈQÓOˆ
Ø—{‘{ >Ó2×7Ñ7¸ÓA×KÑKÈAÈqÓQˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ
%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð
%
ð —L‘Lð
%
ð 0ð
%
ð ñ
%
Ñ!ˆ�\ð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆà˜LÐ(Ð(r;   )r¦   r  r.  r4  r1  r0  r5  r/  r8  r7  r  r6  )r>  FTFN)NNF)
r=   r>   r?   r@   rA   r™   r­   rC   rD   r±   r²   s   @@r8   r,  r,  Õ  s#   ù‡ € ÙG÷Cõ C÷>0)÷ 0)ò 0)r;   r,  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚWav2Vec2FeedForwardi*  c                ó  <€ \         SV `  4        \        P                  ! VP                  4      V n        \        P                  ! VP                  VP                  4      V n	        \        VP                  \        4      '       d   \        VP                  ,          V n        MVP                  V n        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                   4      V n        R # r«   )r˜   r™   r   r  Úactivation_dropoutÚintermediate_dropoutr  rÔ   Úintermediate_sizeÚintermediate_denseÚ
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnÚoutput_denseÚhidden_dropoutÚoutput_dropoutr  s   &&€r8   r™   ÚWav2Vec2FeedForward.__init__+  s®   ø€ Ü‰ÑÔÜ$&§J¢J¨v×/HÑ/HÓ$IˆÔ!ä"$§)¢)¨F×,>Ñ,>À×@XÑ@XÓ"YˆÔÜ�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÕ$à'-×'8Ñ'8ˆDÔ$äŸIšI f×&>Ñ&>À×@RÑ@RÓSˆÔÜ Ÿjšj¨×)>Ñ)>Ó?ˆÖr;   c                ó°   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P	                  V4      pV# r«   )rR  rV  rP  rW  rY  r¬   s   &&r8   r­   ÚWav2Vec2FeedForward.forward8  sX   € Ø×/Ñ/°Ó>ˆØ×0Ñ0°Ó?ˆØ×1Ñ1°-Ó@ˆà×)Ñ)¨-Ó8ˆØ×+Ñ+¨MÓ:ˆØÐr;   )rV  rR  rP  rW  rY  r°   r²   s   @@r8   rM  rM  *  s   ù‡ € õ@÷ò r;   rM  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚWav2Vec2EncoderLayeriB  c                ó¸  <€ \         SV `  4        \        VP                  VP                  VP
                  R VR7      V n        \        P                  ! VP                  4      V n
        \        P                  ! VP                  VP                  R7      V n        \        V4      V n        \        P                  ! VP                  VP                  R7      V n        R# )F©r.  r/  r  r0  r¦   r
  N)r˜   r™   r,  rÔ   Únum_attention_headsÚattention_dropoutÚ	attentionr   r  rX  r  r·   r  r¸   rM  Úfeed_forwardÚfinal_layer_normr  s   &&€r8   r™   ÚWav2Vec2EncoderLayer.__init__C  s�   ø€ Ü‰ÑÔÜ*Ø×(Ñ(Ø×0Ñ0Ø×,Ñ,ØØô
ˆŒô —z’z &×"7Ñ"7Ó8ˆŒÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ/°Ó7ˆÔÜ "§¢¨V×-?Ñ-?ÀV×EZÑEZÔ [ˆÖr;   c                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# ©r*   r/   rI   Nr  ©r3   r  r   r   )r6   r7   s   "€r8   r9   Ú!Wav2Vec2EncoderLayer.__annotate__R  s<   ø€ ÷ ñ á—|‘|ðñ Ÿ™ tÕ+ðñ Ñ+Õ,ñ	r;   c                óÜ   € TpV P                   ! V3R V/VB w  rV P                  V4      pWA,           pV P                  V4      pWP                  V4      ,           pV P	                  V4      pV# ©rI   )rc  r  r¸   rd  re  ©r¥   r/   rI   r  Úattn_residualrv   s   &&&,  r8   r­   ÚWav2Vec2EncoderLayer.forwardR  sr   € ð &ˆØŸ>š>¨-ÑaÈÐaÐZ`ÑaÑˆØŸ™ ]Ó3ˆØ%Õ5ˆàŸ™¨Ó6ˆØ%×(9Ñ(9¸-Ó(HÕHˆØ×-Ñ-¨mÓ<ˆàÐr;   )rc  r  rd  re  r¸   r«   r°   r²   s   @@r8   r^  r^  B  s   ù‡ € õ\÷÷ ò r;   r^  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )Ú#Wav2Vec2EncoderLayerStableLayerNormid  c                ó  <€ \         SV `  4        \        VP                  VP                  VP
                  R VR7      V n        \        P                  ! VP                  4      V n
        \        P                  ! VP                  VP                  R7      V n        \        V4      V n        \        P                  ! VP                  VP                  R7      V n        \#        VRR4      e   \%        V4      V n        R# RV n        R# )Fr`  r
  Úadapter_attn_dimN)r˜   r™   r,  rÔ   ra  rb  rc  r   r  rX  r  r·   r  r¸   rM  rd  re  ÚgetattrÚWav2Vec2AttnAdapterLayerÚadapter_layerr  s   &&€r8   r™   Ú,Wav2Vec2EncoderLayerStableLayerNorm.__init__e  sÂ   ø€ Ü‰ÑÔÜ*Ø×(Ñ(Ø×0Ñ0Ø×,Ñ,ØØô
ˆŒô —z’z &×"7Ñ"7Ó8ˆŒÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ/°Ó7ˆÔÜ "§¢¨V×-?Ñ-?ÀV×EZÑEZÔ [ˆÔä�6Ð-¨tÓ4Ò@Ü!9¸&Ó!AˆDÖà!%ˆDÖr;   c                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# rh  ri  )r6   r7   s   "€r8   r9   Ú0Wav2Vec2EncoderLayerStableLayerNorm.__annotate__x  s<   ø€ ÷ ñ á—|‘|ðñ Ÿ™ tÕ+ðñ Ñ+Õ,ñ	r;   c                ó"  € TpV P                  V4      pV P                  ! V3R V/VB w  rV P                  V4      pWA,           pWP                  V P	                  V4      4      ,           pV P
                  e   WP                  V4      ,           pV# rl  )r¸   rc  r  rd  re  rv  rm  s   &&&,  r8   r­   Ú+Wav2Vec2EncoderLayerStableLayerNorm.forwardx  s�   € ð &ˆØŸ™¨Ó6ˆØŸ>š>¨-ÑaÈÐaÐZ`ÑaÑˆØŸ™ ]Ó3ˆØ%Õ5ˆØ%×(9Ñ(9¸$×:OÑ:OÐP]Ó:^Ó(_Õ_ˆà×ÑÒ)Ø)×,>Ñ,>¸}Ó,MÕMˆMàÐr;   )rv  rc  r  rd  re  r¸   r«   r°   r²   s   @@r8   rq  rq  d  s   ù‡ € õ&÷&÷ ò r;   rq  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚWav2Vec2Encoderi‹  c                ó¢  <€ \         SV `  4        Wn        \        V4      V n        \
        P                  ! VP                  VP                  R 7      V n	        \
        P                  ! VP                  4      V n        \
        P                  ! \        VP                  4       Uu. uF  p\!        V4      NK  	  up4      V n        RV n        R# u upi ©r
  FN)r˜   r™   r¦   rÊ   Úpos_conv_embedr   r·   rÔ   r  r¸   r  rX  r  rõ   rg   Únum_hidden_layersr^  Úlayersr÷   ©r¥   r¦   rv   r¨   s   && €r8   r™   ÚWav2Vec2Encoder.__init__Œ  s•   ø€ Ü‰ÑÔØŒÜ=¸fÓEˆÔÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ—z’z &×"7Ñ"7Ó8ˆŒÜ—m’mÌ5ÐQW×QiÑQiÔKjÓ$kÑKjÀaÔ%9¸&Ö%AÑKjÑ$kÓlˆŒØ&+ˆÖ#ùò %ló   Â#Cc                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# rh  )r3   Útensorr  r   r   )r6   r7   s   "€r8   r9   ÚWav2Vec2Encoder.__annotate__•  sA   ø€ ÷ !@ñ !@á—|‘|ð!@ñ Ÿ™ tÕ+ð!@ñ Ñ+Õ,ñ	!@r;   c                óˆ  € Ve9   VP                  R4      P                  ^^VP                  ^,          4      p^ W( &   \        V P                  VVR7      pV P                  V4      pWP                  VP                  4      ,           pV P                  V4      pV P                  V4      p\        4       ;'       g    \        V 4      pV P                   Fb  p\        P                  ! . 4      pV P                  ;'       d    W€P                  P                   8  p	V	'       d   V'       g   KW  V! V3RV/VB pKd  	  \#        VR7      # ©N)r¦   Úinputs_embedsrI   rI   )Úlast_hidden_stater^   )Ú	unsqueezeÚrepeatrF   r   r¦   r€  ÚtoÚdevicer¸   r  r
   r   r‚  r3   rb   r  Ú	layerdropr   ©
r¥   r/   rI   r  Úexpand_attention_maskÚposition_embeddingsÚsynced_gpusrò   Údropout_probabilityÚskip_the_layers
   &&&,      r8   r­   ÚWav2Vec2Encoder.forward•  s  € ð Ò%à$2×$<Ñ$<¸RÓ$@×$GÑ$GÈÈ1Èm×NaÑNaÐbcÕNdÓ$eÐ!Ø45ˆMÐ0Ñ1ä2Ø—;‘;Ø'Ø)ô
ˆð #×1Ñ1°-Ó@ÐØ%×(>Ñ(>¸}×?SÑ?SÓ(TÕTˆØŸ™¨Ó6ˆØŸ™ ]Ó3ˆä0Ó2×RÐRÔ6LÈTÓ6Rˆà—[”[ˆEä"'§*¢*¨R£.Ðà!Ÿ]™]×ZÐZÐ/BÇ[Á[×EZÑEZÑ/ZˆNß!§[¡[á % mÑ ]ÀNÐ ]ÐV\Ñ ]’ñ !ô °Ô?Ð?r;   ©r¦   r  r÷   r¸   r‚  r€  r«   r°   r²   s   @@r8   r}  r}  ‹  s   ù‡ € õ,÷!@÷ !@ò !@r;   r}  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚWav2Vec2EncoderStableLayerNormi¹  c                ó¢  <€ \         SV `  4        Wn        \        V4      V n        \
        P                  ! VP                  VP                  R 7      V n	        \
        P                  ! VP                  4      V n        \
        P                  ! \        VP                  4       Uu. uF  p\!        V4      NK  	  up4      V n        RV n        R# u upi r  )r˜   r™   r¦   rÊ   r€  r   r·   rÔ   r  r¸   r  rX  r  rõ   rg   r�  rq  r‚  r÷   rƒ  s   && €r8   r™   Ú'Wav2Vec2EncoderStableLayerNorm.__init__º  s™   ø€ Ü‰ÑÔØŒÜ=¸fÓEˆÔÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ—z’z &×"7Ñ"7Ó8ˆŒÜ—m’mÜBGÈ×H`ÑH`ÔBaÓbÑBa¸QÔ0°Ö8ÑBaÑbó
ˆŒð ',ˆÖ#ùò cr…  c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r*   r  )r   r   )r6   r7   s   "€r8   r9   Ú+Wav2Vec2EncoderStableLayerNorm.__annotate__Å  s    ø€ ÷ #@ñ #@ñ Ñ+Õ,ñ	#@r;   c                óV  € Ve9   VP                  R4      P                  ^^VP                  ^,          4      p^ W( &   \        V P                  VVR7      pV P                  V4      pW,           pV P                  V4      p\        4       ;'       g    \        V 4      pV P                   Fb  p\        P                  ! . 4      pV P                  ;'       d    W€P                  P                  8  p	V	'       d   V'       g   KW  V! V3RV/VB pKd  	  V P                  V4      p\        VR7      # rŠ  )r�  rŽ  rF   r   r¦   r€  r  r
   r   r‚  r3   rb   r  r‘  r¸   r   r’  s
   &&&,      r8   r­   Ú&Wav2Vec2EncoderStableLayerNorm.forwardÅ  s  € ð Ò%à$2×$<Ñ$<¸RÓ$@×$GÑ$GÈÈ1Èm×NaÑNaÐbcÕNdÓ$eÐ!Ø45ˆMÐ0Ñ1ä2Ø—;‘;Ø'Ø)ô
ˆð #×1Ñ1°-Ó@ÐØ%Õ;ˆØŸ™ ]Ó3ˆä0Ó2×RÐRÔ6LÈTÓ6Rˆà—[”[ˆEä"'§*¢*¨R£.Ðà!Ÿ]™]×ZÐZÐ/BÇ[Á[×EZÑEZÑ/ZˆNß!§[¡[ñ !& mÑ ]ÀNÐ ]ÐV\Ñ ]’ñ !ð Ÿ™¨Ó6ˆä°Ô?Ð?r;   r™  r«   r°   r²   s   @@r8   r›  r›  ¹  s   ù‡ € õ	,÷#@÷ #@ò #@r;   r›  c                   óT   a a€ ] tR tRt oRtV 3R lt]RR l4       tRR ltRt	Vt
V ;t# )ÚWav2Vec2GumbelVectorQuantizerië  z¥
Vector quantization using gumbel softmax. See `[CATEGORICAL REPARAMETERIZATION WITH
GUMBEL-SOFTMAX](https://huggingface.co/papers/1611.01144) for more information.
c                ód  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V P                  ,          ^ 8w  d'   \        RVP                   RV P                   R24      h\        P                  ! \        P                  ! ^V P                  V P
                  ,          VP                  V P                  ,          4      4      V n        \        P                  ! VP                  R,          V P                  V P
                  ,          4      V n        ^V n        R# )r“   z`config.codevector_dim z5 must be divisible by `config.num_codevector_groups` z for concatenationNr^   )r˜   r™   Únum_codevector_groupsrÂ   Únum_codevectors_per_groupÚnum_varsÚcodevector_dimr`   r   Ú	Parameterr3   r4   Úcodevectorsr  rš   Úweight_projÚtemperaturer  s   &&€r8   r™   Ú&Wav2Vec2GumbelVectorQuantizer.__init__ñ  sì   ø€ Ü‰ÑÔØ ×6Ñ6ˆŒØ×8Ñ8ˆŒà× Ñ  4§?¡?Õ2°aÔ7ÜØ)¨&×*?Ñ*?Ð)@ð A5Ø59·_±_Ð4EÐEWðYóð ô Ÿ<š<Ü×Ò˜a §¡°4·=±=Õ!@À&×BWÑBWÐ[_×[jÑ[jÕBjÓkó
ˆÔô Ÿ9š9 V§_¡_°RÕ%8¸$¿/¹/ÈDÏMÉMÕ:YÓZˆÔð ˆÖr;   c                óÖ  € Ve„   VP                  4       R,          P                  V P                  4      p\        P                  ! W \        P
                  ! V 4      4      p V P                  ^ R7      VP                  4       ,          pMV P                  ^ R7      p\        P                  ! \        P                  ! \        P                  ! W34      RR7      ) 4      P                  4       pV# )Nr!  )r_   NNr^   )
ÚflattenÚexpandrF   r3   ÚwhereÚ
zeros_likere   ÚmeanÚexpÚxlogy)ÚprobsÚmaskÚmask_extendedÚmarginal_probsÚ
perplexitys   &&   r8   Ú_compute_perplexityÚ1Wav2Vec2GumbelVectorQuantizer._compute_perplexity  s¢   € àÒØ ŸL™L›N¨=Õ9×@Ñ@ÀÇÁÓMˆMÜ—K’K ´e×6FÒ6FÀuÓ6MÓNˆEØ"ŸY™Y¨1˜YÓ-°·±³
Õ:‰Nà"ŸZ™Z¨A˜ZÓ.ˆNä—Y’Y¤§	¢	¬%¯+ª+°nÓ*UÐ[]Ô ^Ð^Ó_×cÑcÓeˆ
ØÐr;   c                ó  € VP                   w  r4pV P                  V4      pVP                  W4,          V P                  ,          R4      pV P                  '       d£   \
        P                  P                  VP                  4       V P                  RR7      P                  V4      p\        P                  ! VP                  W4,          V P                  R4      P                  4       RR7      pV P                  Wr4      pM‚VP                  RR7      p	VP                  VP                   4      P!                  RV	P                  R^4      R4      pVP                  W4,          V P                  R4      pV P                  Wb4      pVP                  W4,          R4      pVP#                  R4      V P$                  ,          p
V
P                  W4,          V P                  V P&                  R4      pVP)                  R4      P                  W4R4      pW¸3# )rå   T)ÚtauÚhardr!  g      ð?r^   r»   )rF   r«  r?  rÂ   r  r   r%  Úgumbel_softmaxrM   r¬  Útype_asr3   r&  r»  ÚargmaxÚ	new_zerosÚscatter_r�  rª  r§  re   )r¥   r/   r‚   ru   rX   rÔ   Úcodevector_probsÚcodevector_soft_distrº  Úcodevector_idxÚcodevectors_per_grouprª  s   &&&         r8   r­   Ú%Wav2Vec2GumbelVectorQuantizer.forward  sË  € Ø3@×3FÑ3FÑ0ˆ
 [ð ×(Ñ(¨Ó7ˆØ%×*Ñ*¨:Õ+GÈ$Ï/É/Õ+YÐ[]Ó^ˆà�=�=ˆ=ä!Ÿ}™}×;Ñ;Ø×#Ñ#Ó%¨4×+;Ñ+;À$ð  <ó  ç‰g�mÓ$ð ô
 $)§=¢=Ø×"Ñ" :Õ#?ÀÇÁÐRTÓU×[Ñ[Ó]Ðceô$Ð ð ×1Ñ1Ð2FÓZ‰Jð +×1Ñ1°bÐ1Ó9ˆNØ,×6Ñ6°}×7JÑ7JÓK×TÑTØ�N×'Ñ'¨¨AÓ.°ó Ðð  0×4Ñ4°ZÕ5QÐSW×SbÑSbÐdfÓgÐà×1Ñ1Ð2BÓVˆJà+×0Ñ0°Õ1MÈrÓRÐà 0× :Ñ :¸2Ó >À×AQÑAQÕ QÐØ+×0Ñ0°Õ1MÈtÏÉÐ`d×`mÑ`mÐoqÓrˆØ!—o‘o bÓ)×.Ñ.¨zÈBÓOˆàÐ&Ð&r;   )rª  rÂ   r§  r¬  r«  r«   )r=   r>   r?   r@   rA   r™   Ústaticmethodr»  r­   rC   rD   r±   r²   s   @@r8   r£  r£  ë  s-   ù‡ € ñõ
ð( ó	ó ð	÷#'ô #'r;   r£  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚWav2Vec2Adapteri7  c                ó¶  <a€ \         SV `  4        SP                  SP                  8w  dW   \        P
                  ! SP                  SP                  4      V n        \        P                  ! SP                  4      V n        MR ;V n        V n        \        P                  ! V3R l\        SP                  4       4       4      V n        SP                  V n        R # )Nc              3   ó:   <"  € T F  p\        S4      x € K  	  R # 5ir«   )ÚWav2Vec2AdapterLayer)Ú.0rv   r¦   s   & €r8   Ú	<genexpr>Ú+Wav2Vec2Adapter.__init__.<locals>.<genexpr>B  s   øé € Ð#kÑJjÀQÔ$8¸×$@Ð$@ÓJjùs   ƒ)r˜   r™   Úoutput_hidden_sizerÔ   r   r  Úprojr·   Úproj_layer_normrõ   rg   Únum_adapter_layersr‚  r‘  r  s   &f€r8   r™   ÚWav2Vec2Adapter.__init__8  s—   ù€ Ü‰ÑÔð ×$Ñ$¨×(:Ñ(:Ô:ÜŸ	š	 &×"4Ñ"4°f×6OÑ6OÓPˆDŒIÜ#%§<¢<°×0IÑ0IÓ#JˆDÕ à/3Ð3ˆDŒI˜Ô,ä—m’mÔ#kÌ%ÐPV×PiÑPiÔJjÓ#kÓkˆŒØ×)Ñ)ˆŽr;   c                ó„  € V P                   e1   V P                  e#   V P                  V4      pV P                  V4      pVP                  ^^4      pV P                   FM  p\        P
                  P                  4       pV P                  '       d   W0P                  8”  g   KE  V! V4      pKO  	  VP                  ^^4      pV# r«   )rÔ  rÕ  r¼   r‚  rO   ra   r  r‘  )r¥   r/   rò   Úlayerdrop_probs   &&  r8   r­   ÚWav2Vec2Adapter.forwardE  s�   € à�9‰9Ò  T×%9Ñ%9Ò%EØ ŸI™I mÓ4ˆMØ ×0Ñ0°Ó?ˆMà%×/Ñ/°°1Ó5ˆà—[”[ˆEÜŸY™Y×-Ñ-Ó/ˆNØ—=—=�= ^·n±nÖ%DÙ % mÓ 4’ñ !ð
 &×/Ñ/°°1Ó5ˆØÐr;   )r‘  r‚  rÔ  rÕ  r°   r²   s   @@r8   rÌ  rÌ  7  s   ù‡ € õ*÷ò r;   rÌ  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )rÏ  iV  c                óÂ   <€ \         SV `  4        \        P                  ! VP                  ^VP                  ,          VP
                  VP                  ^R7      V n        R# )r*   )r–   rÌ   N)r˜   r™   r   r�   rÓ  Úadapter_kernel_sizeÚadapter_strider¡   r  s   &&€r8   r™   ÚWav2Vec2AdapterLayer.__init__W  sJ   ø€ Ü‰ÑÔÜ—I’IØ×%Ñ%Ø�×)Ñ)Õ)Ø×&Ñ&Ø×(Ñ(Øô
ˆŽ	r;   c                ój   € V P                  V4      p\        P                  P                  V^R7      pV# )rå   r!  )r¡   r   r%  Úglur¬   s   &&r8   r­   ÚWav2Vec2AdapterLayer.forwarda  s/   € ØŸ	™	 -Ó0ˆÜŸ™×)Ñ)¨-¸QÐ)Ó?ˆàÐr;   )r¡   r°   r²   s   @@r8   rÏ  rÏ  V  s   ù‡ € õ
÷ò r;   rÏ  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ru  ih  c                ó¦  <€ \         SV `  4        VP                  V n        VP                  V n        \        P                  ! V P
                  4      V n        \        P                  ! V P
                  V P                  4      V n
        \        P                  ! 4       V n        \        P                  ! V P                  V P
                  4      V n        R# )z‡
Implements adapter modules directly with 3D tensor weight as parameters and without using ModuleList to speed
up training throughput.
N)r˜   r™   rs  Ú	input_dimrÔ   Ú
hidden_dimr   r·   Únormr  Úlinear_1ÚReLUÚact_fnÚlinear_2r  s   &&€r8   r™   Ú!Wav2Vec2AttnAdapterLayer.__init__i  s   ø€ ô
 	‰ÑÔØ×0Ñ0ˆŒØ ×,Ñ,ˆŒä—L’L §¡Ó1ˆŒ	ÜŸ	š	 $§/¡/°4·>±>ÓBˆŒÜ—g’g“iˆŒÜŸ	š	 $§.¡.°$·/±/ÓBˆŽr;   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r*   r/   )r3   r4   )r6   r7   s   "€r8   r9   Ú%Wav2Vec2AttnAdapterLayer.__annotate__w  s   ø€ ÷ ñ ¡U×%6Ñ%6ñ r;   c                óŽ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# r«   )rç  rè  rê  rë  r¬   s   &&r8   r­   Ú Wav2Vec2AttnAdapterLayer.forwardw  s@   € ØŸ	™	 -Ó0ˆàŸ™ mÓ4ˆØŸ™ MÓ2ˆØŸ™ mÓ4ˆàÐr;   )rê  ræ  rå  rè  rë  rç  r°   r²   s   @@r8   ru  ru  h  s   ù‡ € õC÷÷ ð r;   ru  c            	       óò   a a€ ] tR tRt oRtRtRtRtRtRt	Rt
R]].R]! ]^RR	7      /t]P"                  ! 4       V 3R
 l4       tRV3R lR lltRV3R lR lltR tR tRV3R lR lltV3R ltRtVtV ;t# )ÚWav2Vec2PreTrainedModeli�  Úwav2vec2r  ÚaudioTr/   r0   Úencoder)ÚindexÚ
layer_namec           
     ó4  <€ \         SV `  V4       \        V\        4      '       d7   VP                  P                  4        VP                  P                  4        R# \        V\        4      '       dz   \        P                  ! VP                  P                  R^R7       \        P                  ! VP                  P                  4       \        P                  ! VP                  4       R# \        V\         4      '       d³   \        P                  ! VP"                  P                  ^ ^\$        P&                  ! ^VP"                  P(                  ^ ,          VP"                  P*                  ,          ,          4      ,          R7       \        P,                  ! VP"                  P                  ^ 4       R# \        V\.        4      '       d�   \$        P&                  ! ^VP0                  P2                  ,          4      p\        P                  ! VP0                  P                  V) VR7       \        P                  ! VP0                  P                  V) VR7       R# \        V\4        P6                  4      '       d    \        P8                  ! VP                  4       VP                  ep   \$        P&                  ! VP:                  VP*                  VP(                  ^ ,          ,          ,          4      p\        P                  ! VP                  V) VR7       R# R# R# )zInitialize the weightsr>  )r³  Ústd)ÚaÚbN)r˜   Ú_init_weightsrS  ÚWav2Vec2ForPreTrainingÚproject_hidÚreset_parametersÚ	project_qr£  ÚinitÚnormal_r«  rÐ   Úzeros_r—   Úuniform_rª  rÊ   r¡   ÚmathÚsqrtr•   Úin_channelsÚ	constant_r  r  Úin_featuresr   r�   Úkaiming_normal_rÍ   )r¥   r  Úkr¨   s   && €r8   rü  Ú%Wav2Vec2PreTrainedModel._init_weights�  sô  ø€ ô 	‰Ñ˜fÔ%ä�fÔ4×5Ò5Ø×Ñ×/Ñ/Ô1Ø×Ñ×-Ñ-Ö/ä˜Ô =×>Ò>Ü�LŠL˜×+Ñ+×2Ñ2¸À!ÕDÜ�KŠK˜×*Ñ*×/Ñ/Ô0Ü�MŠM˜&×,Ñ,Ö-Ü˜Ô ?×@Ò@Ü�LŠLØ—‘×"Ñ"ØØœŸ	š	 ! v§{¡{×'>Ñ'>¸qÕ'AÀFÇKÁK×D[ÑD[Õ'[Õ"\Ó]Õ]õô
 �NŠN˜6Ÿ;™;×+Ñ+¨QÖ/Ü˜Ô 9×:Ò:Ü—	’	˜!˜f×/Ñ/×;Ñ;Õ;Ó<ˆAÜ�MŠM˜&×+Ñ+×2Ñ2°q°b¸AÕ>Ü�MŠM˜&×+Ñ+×0Ñ0°Q°B¸!×<Ü˜¤§	¡	×*Ò*Ü× Ò  §¡Ô/à�{‰{Ò&Ü—I’I˜fŸm™m¨v×/AÑ/AÀF×DVÑDVÐWXÕDYÕ/YÕZÓ[�Ü—’˜fŸk™k¨a¨R°1×5ñ 'ñ +r;   c                óX   <€ V ^8„  d   QhRS[ P                  S[,          RS[R,          /# )r*   rw   Úadd_adapterN)r3   rN   rL   ri   )r6   r7   s   "€r8   r9   Ú$Wav2Vec2PreTrainedModel.__annotate__¯  s.   ø€ ÷ ñ ¹e×>NÑ>NÑQTÕ>Tð ÑcgÐjnÕcnñ r;   c                óh  € Vf   V P                   P                  MTpR p\        V P                   P                  V P                   P                  4       F  w  rEV! WV4      pK  	  V'       dE   \        V P                   P                  4       F!  pV! V^V P                   P                  4      pK#  	  V# )z8
Computes the output length of the convolutional layers
c                 óN   € \         P                  ! W,
          VR R7      ^,           # )Úfloor)Úrounding_mode)r3   Údiv©rU   r•   r–   s   &&&r8   Ú_conv_out_lengthÚRWav2Vec2PreTrainedModel._get_feat_extract_output_lengths.<locals>._conv_out_length¶  s    € ô —9’9˜\Õ7¸ÈwÔWÐZ[Õ[Ð[r;   )r¦   r  Úziprž   rŸ   rg   rÖ  rÞ  )r¥   rw   r  r  r•   r–   rv   s   &&&    r8   Ú _get_feat_extract_output_lengthsÚ8Wav2Vec2PreTrainedModel._get_feat_extract_output_lengths¯  s•   € ð
 2=Ò1D�d—k‘k×-Ò-È+ˆò	\ô
 $' t§{¡{×'>Ñ'>ÀÇÁ×@WÑ@WÖ#XÑˆKÙ,¨]ÈÓPŠMñ $Y÷ Ü˜4Ÿ;™;×9Ñ9Ö:�Ù 0°ÀÀ4Ç;Á;×C]ÑC]Ó ^’ñ ;ð Ðr;   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )r*   Úfeature_vector_lengthrI   )rL   r3   rN   )r6   r7   s   "€r8   r9   r  Ä  s#   ø€ ÷ ñ Ù%(ðÙ:?×:JÑ:Jñr;   c                ó  € VP                  RR7      R,          pV P                  WCR7      pVP                  \        P                  4      pVP
                  ^ ,          p\        P                  ! Wa3VP                  VP                  R7      p^V\        P                  ! VP
                  ^ ,          VP                  R7      V^,
          3&   VP                  R.4      P                  R4      P                  R.4      P                  4       pV# )rå   r!  ©r  )r\   r�  )r�  r^   )r_   r^   )Úcumsumr  r�  r3   ÚlongrF   rh   r\   r�  rk   Úflipri   )r¥   r  rI   r  Únon_padded_lengthsÚoutput_lengthsru   s   &&&&   r8   Ú"_get_feature_vector_attention_maskÚ:Wav2Vec2PreTrainedModel._get_feature_vector_attention_maskÄ  sé   € ð
 ,×2Ñ2°rÐ2Ó:¸5ÕAÐà×>Ñ>Ð?QÐ>ÓkˆØ'×*Ñ*¬5¯:©:Ó6ˆà#×)Ñ)¨!Õ,ˆ
äŸšØÐ/°~×7KÑ7KÐTb×TiÑTiô
ˆð uvˆœŸš ^×%9Ñ%9¸!Õ%<À^×EZÑEZÔ[Ð]kÐnoÕ]oÐpÑqØ'×,Ñ,¨b¨TÓ2×9Ñ9¸"Ó=×BÑBÀBÀ4ÓH×MÑMÓOˆØÐr;   c                óÂ  € V P                   P                  f   \        V P                   R24      h/ pV P	                  4        FJ  w  r#\        V\        4      '       g   K  VP                  4        F  w  rEWQRP                  W$.4      &   K  	  KL  	  \        V \        4      '       d9   V P                  P                  4        F  w  r%WQRP                  RV.4      &   K  	  V# )NzF has no adapter layers. Make sure to define `config.adapter_attn_dim`.Ú.Úlm_head)r¦   rs  r`   r¨   Únamed_modulesrS  ru  Únamed_parametersÚjoinÚWav2Vec2ForCTCr(  )r¥   Úadapter_weightsrÑ   r  Ú
param_namerÿ   s   &     r8   Ú_get_adaptersÚ%Wav2Vec2PreTrainedModel._get_adaptersØ  sÃ   € Ø�;‰;×'Ñ'Ò/Ü §¡Ð/Ð/uÐvÓwÐwàˆØ ×.Ñ.Ö0‰LˆDÜ˜&Ô":×;Ô;Ø)/×)@Ñ)@Ö)BÑ%�JØDI C§H¡H¨dÐ-?Ó$@ÓAó *Cñ 1ô
 �dœN×+Ò+Ø#Ÿ|™|×<Ñ<Ö>‘�Ø?D §¡¨)°TÐ):Ó ;Ó<ñ  ?ð Ðr;   c                óì   € V P                  4        F,  p\        V\        4      '       g   K  V P                  V4       K.  	  \        V \        4      '       d   V P                  V P
                  4       R# R# )zS
(Re-)initialize attention adapter layers and lm head for adapter-only fine-tuning
N)ÚmodulesrS  ru  rü  r,  r(  )r¥   r  s   & r8   Úinit_adapter_layersÚ+Wav2Vec2PreTrainedModel.init_adapter_layersè  sV   € ð
 —l‘l–nˆFÜ˜&Ô":×;Ô;Ø×"Ñ" 6Ö*ñ %ô
 �dœN×+Ò+Ø×Ñ˜tŸ|™|Ö,ñ ,r;   c                ó    <€ V ^8„  d   QhRS[ /# )r*   Útarget_lang©rU  )r6   r7   s   "€r8   r9   r  õ  s   ø€ ÷ m'ñ m'©ñ m'r;   c                ó†  € V P                   P                  f   \        RV R24      hWP                  8X  d$   V'       g   \        P                  RV R24       R# VP                  RR4      pVP                  RR4      pVP                  R	R4      pVP                  R
R4      pVP                  RR4      pVP                  RR4      p	VP                  RR4      p
V P                   P                  pRpV
RJd5   \        P                  V4      p \        VVVVVVV	VR7      p\        V4      pVfM   \        P                  V4      p \        VVVVVVV	VR7      p\        4        \         P"                  ! VRRR7      pV P%                  4       p\'        VP)                  4       4      \'        VP)                  4       4      ,
          p\'        VP)                  4       4      \'        VP)                  4       4      ,
          p\+        V4      ^ 8”  d"   \        RX RRP-                  V4       R24      h\+        V4      ^ 8”  d"   \        RX RRP-                  V4       R24      hVR,          P.                  ^ ,          pVV P                   P0                  8w  dY   \2        P4                  ! V P                   P6                  VV P8                  V P:                  R7      V n        VV P                   n        VP?                  4        UUu/ uF  w  ppVVPA                  VV,          4      bK!  	  pppV PC                  VRR7       Wn        R#   \         d    T
'       d   h  EL*\         d"    T
'       d   \        RT RT RT R24      h ELTi ; i  \         d    h \         d    h \         d    \        RT RT RT R24      hi ; iu uppi )a“
  
Load a language adapter model from a pre-trained adapter model.

Parameters:
    target_lang (`str`):
        Has to be a language id of an existing adapter weight. Adapter weights are stored in the format
        adapter.<lang>.safetensors or adapter.<lang>.bin
    force_load (`bool`, defaults to `True`):
        Whether the weights shall be loaded even if `target_lang` matches `self.target_lang`.
    cache_dir (`Union[str, os.PathLike]`, *optional*):
        Path to a directory in which a downloaded pretrained model configuration should be cached if the
        standard cache should not be used.
    force_download (`bool`, *optional*, defaults to `False`):
        Whether or not to force the (re-)download of the model weights and configuration files, overriding the
        cached versions if they exist.
    proxies (`dict[str, str]`, *optional*):
        A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
        'http://hostname': 'foo.bar:4012'}`. The proxies are used on each request.
    local_files_only(`bool`, *optional*, defaults to `False`):
        Whether or not to only look at local files (i.e., do not try to download the model).
    token (`str` or `bool`, *optional*):
        The token to use as HTTP bearer authorization for remote files. If `True`, or not specified, will use
        the token generated when running `hf auth login` (stored in `~/.huggingface`).
    revision (`str`, *optional*, defaults to `"main"`):
        The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
        git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
        identifier allowed by git.

        <Tip>

        To test a pull request you made on the Hub, you can pass `revision="refs/pr/<pr_number>"`.

        </Tip>

    mirror (`str`, *optional*):
        Mirror source to accelerate downloads in China. If you are from China and have an accessibility
        problem, you can set this option to resolve it. Note that we do not guarantee the timeliness or safety.
        Please refer to the mirror site for more information.

<Tip>

Activate the special ["offline-mode"](https://huggingface.co/transformers/installation.html#offline-mode) to
use this method in a firewalled environment.

</Tip>

Examples:

```python
>>> from transformers import Wav2Vec2ForCTC, AutoProcessor

>>> ckpt = "facebook/mms-1b-all"
>>> processor = AutoProcessor.from_pretrained(ckpt)
>>> model = Wav2Vec2ForCTC.from_pretrained(ckpt, target_lang="eng")
>>> # set specific language
>>> processor.tokenizer.set_target_lang("spa")
>>> model.load_adapter("spa")
```
NzCannot load_adapter for ú- if `config.adapter_attn_dim` is not defined.z#Adapter weights are already set to r'  Ú	cache_dirÚforce_downloadFÚproxiesÚlocal_files_onlyÚtokenÚrevisionÚuse_safetensors)Úfilenamer;  r<  r=  r>  r?  r:  zCan't load the model for 'zœ'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'z=' is the correct path to a directory containing a file named ÚcpuT)Úmap_locationÚweights_onlyzThe adapter weights z has unexpected keys: z, z has missing keys: zlm_head.weight©r�  r\   )Ústrict)"r¦   rs  r`   r6  ÚloggerÚwarningÚpopÚ_name_or_pathÚWAV2VEC2_ADAPTER_SAFE_FILEr6   r   Úsafe_load_fileÚOSErrorÚ	ExceptionÚWAV2VEC2_ADAPTER_PT_FILEr   r3   Úloadr/  ÚsetÚkeysrl   r+  rF   Ú
vocab_sizer   r  rÓ  r�  r\   r(  Úitemsr�  Úload_state_dict)r¥   r6  Ú
force_loadr  r:  r;  r<  r=  r>  r?  r@  Úmodel_path_or_idÚ
state_dictÚfilepathÚweight_pathr-  Úunexpected_keysÚmissing_keysÚtarget_vocab_sizer  Úvs   &&&,                 r8   Úload_adapterÚ$Wav2Vec2PreTrainedModel.load_adapterõ  sÓ  € ðx �;‰;×'Ñ'Ò/ÜÐ7¸°}ÐDqÐrÓsÐsà×*Ñ*Ô*·:Ü�N‰NÐ@ÀÀÈQÐOÔPÙà—J‘J˜{¨DÓ1ˆ	ØŸ™Ð$4°eÓ<ˆØ—*‘*˜Y¨Ó-ˆØ!Ÿ:™:Ð&8¸%Ó@ÐØ—
‘
˜7 DÓ)ˆØ—:‘:˜j¨$Ó/ˆØ Ÿ*™*Ð%6¸Ó=ˆØŸ;™;×4Ñ4ÐØˆ
ð  %Ó'Ü1×8Ñ8¸ÓEˆHðÜ)Ø$Ø%Ø#1Ø#Ø%5ØØ%Ø'ô	�ô ,¨KÓ8�
ð& ÒÜ/×6Ñ6°{ÓCˆHð"Ü)Ø$Ø%Ø#1Ø#Ø%5ØØ%Ø'ô	�ô )Ô*Ü"ŸZšZØØ!&Ø!%ô�
ð. ×,Ñ,Ó.ˆÜ˜jŸo™oÓ/Ó0´3°×7KÑ7KÓ7MÓ3NÕNˆÜ˜?×/Ñ/Ó1Ó2´S¸¿¹Ó9JÓ5KÕKˆäˆÓ !Ô#ÜÐ3°K°=Ð@VÐW[×W`ÑW`ÐapÓWqÐVrÐrsÐtÓuÐuÜ�Ó Ô"ÜÐ3°K°=Ð@SÐTX×T]ÑT]Ð^jÓTkÐSlÐlmÐnÓoÐoð 'Ð'7Õ8×>Ñ>¸qÕAÐØ §¡× 6Ñ 6Ô6ÜŸ9š9Ø—‘×.Ñ.Ð0AÈ$Ï+É+Ð]a×]gÑ]gôˆDŒLð &7ˆD�K‰KÔ"ð ?I×>NÑ>NÔ>PÔQÑ>P±d°a¸�a˜Ÿ™˜o¨aÕ0Ó1Ò1Ñ>Pˆ
ÑQØ×Ñ˜Z°ÐÔ6ð 'Öøô] ô ß"ð ò #ô
 ô ç"Ü!Ø4Ð5EÐ4Fð G=à=MÐ<Nð O>Ø>F¸ZÀqðJóð ò #ðûôB ô ð äô Øäô äØ0Ð1AÐ0Bð C9à9IÐ8Jð K:Ø:B¸À1ðFóð ðüó6 RsH   ÄL> Å6N Ë;%N=Ì>N ÍN ÍN ÍN Í'N Í?N ÎN:Î
N:Î#N:c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # ©r*   r¦   r$   )r6   r7   s   "€r8   r9   r  �  s   ø‡ ‚ áÑò r;   )r(  r6  r«   )T)r=   r>   r?   r@   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnr^  rq  r"   r,  Ú_can_record_outputsr3   Úno_gradrü  r  r$  r/  r3  r_  rB   rC   rD   r±   r²   s   @@r8   rò  rò  �  sž   ù‡ € ð #ÐØ$€OØÐØ&*Ð#ØÐØ€NØÐàÐ.Ð0SÐTØ‘nÐ%6¸aÈIÔVðÐð
 ‡]‚]ƒ_ô6ó ð6÷<ò ÷*ò ò(ò -÷m'ò m'÷i … r;   rò  c                   óœ   a a€ ] tR tRt oV3R lV 3R lltR tRV3R lR llt]]! RR7      ]	RV3R	 lR
 ll4       4       4       t
RtVtV ;t# )ÚWav2Vec2Modeli¥  c                ó    <€ V ^8„  d   QhRS[ /# rb  r$   )r6   r7   s   "€r8   r9   ÚWav2Vec2Model.__annotate__§  s   ø€ ÷ ñ ™~ñ r;   c                ó  <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        VP                  R 8”  g   VP                  R 8”  dH   \        P                  ! \        P                  ! VP                  4      P                  4       4      V n        VP                   '       d   \#        V4      V n        M\'        V4      V n        VP(                  '       d   \+        V4      MRV n        V P/                  4        R# )r>  N)r˜   r™   r¦   rï   Úfeature_extractorr  Úfeature_projectionÚmask_time_probÚmask_feature_probr   r©  r3   r  rÔ   r  Úmasked_spec_embedÚdo_stable_layer_normr›  rõ  r}  r  rÌ  ÚadapterÚ	post_initr  s   &&€r8   r™   ÚWav2Vec2Model.__init__§  s¾   ø€ Ü‰Ñ˜Ô ØŒÜ!7¸Ó!?ˆÔÜ";¸FÓ"CˆÔð × Ñ  3Ô&¨&×*BÑ*BÀSÔ*HÜ%'§\¢\´%·,²,¸v×?QÑ?QÓ2R×2[Ñ2[Ó2]Ó%^ˆDÔ"à×&×&Ð&Ü9¸&ÓAˆD�Lä*¨6Ó2ˆDŒLà28×2D×2DÐ2D” vÔ.È$ˆŒð 	�‰Ör;   c                ó:   € V P                   P                  4        R# ©z�
Calling this function will disable the gradient computation for the feature encoder so that its parameter will
not be updated during training.
N)rq  r   ©r¥   s   &r8   Úfreeze_feature_encoderÚ$Wav2Vec2Model.freeze_feature_encoder»  s   € ð
 	×Ñ×1Ñ1Ö3r;   c                ó„   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          /# )r*   r/   r‚   NrI   )r3   r4   rN   )r6   r7   s   "€r8   r9   ro  Â  sE   ø€ ÷ ,ñ ,á×(Ñ(ð,ñ !×,Ñ,¨tÕ3ð,ñ ×(Ñ(¨4Õ/ñ	,r;   c                óò  € \        V P                  RR4      '       g   V# VP                  4       w  rEpVe)   V P                  P	                  VP
                  4      W&   MÑV P                  P                  ^ 8”  d·   V P                  '       d¥   \        WE3V P                  P                  V P                  P                  VV P                  P                  R7      p\        P                  ! W!P                  \        P                  R7      pV P                  P	                  VP
                  4      W&   V P                  P                  ^ 8”  d­   V P                  '       d›   \        WF3V P                  P                  V P                  P                   V P                  P"                  R7      p\        P                  ! WqP                  \        P                  R7      pVR,          P%                  RVR4      p^ W&   V# )zŠ
Masks extracted features along time axis and/or along feature axis according to
[SpecAugment](https://huggingface.co/papers/1904.08779).
Úapply_spec_augmentT)rG   rH   rI   rJ   rE  )rG   rH   rJ   r…   r^   )rt  r¦   r„   ru  r�  r\   rs  r  r~   Úmask_time_lengthÚmask_time_min_masksr3   r‡  r�  ri   rt  Úmask_feature_lengthÚmask_feature_min_masksr°  )r¥   r/   r‚   rI   ru   rX   rÔ   Úmask_feature_indicess   &&&&    r8   Ú_mask_hidden_statesÚ!Wav2Vec2Model._mask_hidden_statesÂ  sŠ  € ô �t—{‘{Ð$8¸$×?Ò?Ø Ð ð 4A×3EÑ3EÓ3GÑ0ˆ
 [àÒ(à/3×/EÑ/E×/HÑ/HÈ×I\ÑI\Ó/]ˆMÒ,Ø�[‰[×'Ñ'¨!Ô+°··°Ü 5ØÐ-ØŸ+™+×4Ñ4Ø ŸK™K×8Ñ8Ø-ØŸ+™+×9Ñ9ô!Ðô !&§¢Ð->×G[ÑG[Ôch×cmÑcmÔ nÐØ/3×/EÑ/E×/HÑ/HÈ×I\ÑI\Ó/]ˆMÑ,à�;‰;×(Ñ(¨1Ô,°··°ä#8ØÐ)ØŸ+™+×7Ñ7Ø ŸK™K×;Ñ;ØŸ+™+×<Ñ<ô	$Ð ô $)§<¢<Ð0D×MaÑMaÔin×isÑisÔ#tÐ Ø#7¸Õ#@×#GÑ#GÈÈOÐ]_Ó#`Ð Ø23ˆMÑ/àÐr;   F)Útie_last_hidden_statesc                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r*   r  NrI   r‚   r  rK   )r3   r  r4   r   r   r5   r   )r6   r7   s   "€r8   r9   ro  ó  sf   ø€ ÷ (
ñ (
á—l‘l TÕ)ð(
ñ Ÿ™ tÕ+ð(
ñ !×,Ñ,¨tÕ3ð	(
ñ
 Ñ+Õ,ð(
ñ 
Ñ(Õ	(ñ(
r;   c                ó€  € V P                  V4      pVP                  ^^4      pVe&   V P                  VP                  ^,          VRR7      pV P	                  V4      w  reV P                  WcVR7      pV P                  ! V3RV/VB pVP                  pV P                  e   V P                  V4      p\        VVR7      # )a  
mask_time_indices (`torch.BoolTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Indices to mask extracted features for contrastive loss. When in training mode, model learns to predict
    masked extracted features in *config.proj_codevector_dim* space.
Fr  )r‚   rI   rI   )rŒ  Úextract_features)
rq  r¼   r$  rF   rr  r‡  rõ  rŒ  rw  r   )r¥   r  rI   r‚   r  rŒ  r/   Úencoder_outputss   &&&&,   r8   r­   ÚWav2Vec2Model.forwardð  sã   € ð  ×1Ñ1°,Ó?ÐØ+×5Ñ5°a¸Ó;ÐàÒ%à!×DÑDØ ×&Ñ& qÕ)¨>Àuð Eó ˆNð +/×*AÑ*AÐBRÓ*SÑ'ˆØ×0Ñ0ØÈ~ð 1ó 
ˆð Ÿ,š,Øñ
à)ð
ð ñ
ˆð (×9Ñ9ˆà�<‰<Ò#Ø ŸL™L¨Ó7ˆMä&Ø+Ø-ô
ð 	
r;   )rw  r¦   rõ  rq  rr  ru  ©NN)r=   r>   r?   r@   r™   r}  r‡  r!   r#   r   r­   rC   rD   r±   r²   s   @@r8   rm  rm  ¥  sR   ù‡ € ÷ó ò(4÷,ò ,ð\  Ù¨EÔ2Ø÷(
ñ (
ó ó 3ó  ÷(
ð (
r;   rm  z?
    Wav2Vec2 Model with a quantizer and `VQ` head on top.
    c                   ó    a a€ ] tR tRt oV3R lV 3R lltV3R lR ltR t]RV3R lR ll4       t]	]
RV3R	 lR
 ll4       4       tRtVtV ;t# )rý  i  c                ó    <€ V ^8„  d   QhRS[ /# rb  r$   )r6   r7   s   "€r8   r9   Ú#Wav2Vec2ForPreTraining.__annotate__$  s   ø€ ÷ ñ ™~ñ r;   c                ó�  <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  4      V n        \        V4      V n	        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  4      V n        V P!                  4        R # r«   )r˜   r™   rm  ró  r   r  Úfeat_quantizer_dropoutÚdropout_featuresr£  Ú	quantizerr  rÔ   Úproj_codevector_dimrþ  r¨  r   rx  r  s   &&€r8   r™   ÚWav2Vec2ForPreTraining.__init__$  sˆ   ø€ Ü‰Ñ˜Ô Ü% fÓ-ˆŒÜ "§
¢
¨6×+HÑ+HÓ IˆÔä6°vÓ>ˆŒäŸ9š9 V×%7Ñ%7¸×9SÑ9SÓTˆÔÜŸš 6×#8Ñ#8¸&×:TÑ:TÓUˆŒð 	�‰Ör;   c                ó    <€ V ^8„  d   QhRS[ /# )r*   r¬  )rL   )r6   r7   s   "€r8   r9   r’  1  s   ø€ ÷ 1ñ 1±#ñ 1r;   c                ó&   € WP                   n        R# )zR
Set the Gumbel softmax temperature to a given value. Only necessary for training
N)r–  r¬  )r¥   r¬  s   &&r8   Úset_gumbel_temperatureÚ-Wav2Vec2ForPreTraining.set_gumbel_temperature1  s   € ð &1�‰Ö"r;   c                óN   € V P                   P                  P                  4        R# r{  ©ró  rq  r   r|  s   &r8   r}  Ú-Wav2Vec2ForPreTraining.freeze_feature_encoder7  ó   € ð
 	�‰×'Ñ'×:Ñ:Ö<r;   c                ón   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[/# )r*   Útarget_featuresÚnegative_featuresÚpredicted_featuresr¬  )r3   r4   rM   )r6   r7   s   "€r8   r9   r’  ?  sC   ø€ ÷ ñ Ù×*Ñ*ðá ×,Ñ,ðñ "×-Ñ-ðñ ñ	r;   c                óÐ   € \         P                  ! W.^ R7      p \         P                  ! VP                  4       V P                  4       RR7      P	                  V 4      pWC,          pV# )zÑ
Compute logits for contrastive loss based using cosine similarity as the distance measure between
`[positive_feature, negative_features]` and `[predicted_features]`. Additionally, temperature can be applied.
r!  r^   )r3   ÚcatÚcosine_similarityrM   rÁ  )r¢  r£  r¤  r¬  Úlogitss   &&&& r8   Úcompute_contrastive_logitsÚ1Wav2Vec2ForPreTraining.compute_contrastive_logits>  s\   € ô  Ÿ)š) _Ð$HÈaÔPˆä×(Ò(Ð);×)AÑ)AÓ)CÀ_×EZÑEZÓE\ÐbdÔe×mÑmØó
ˆð
 Õ%ˆØˆr;   c                óæ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r*   r  NrI   r‚   r‰   r  rK   )r3   r  Ú
BoolTensorr   r   r5   r(   )r6   r7   s   "€r8   r9   r’  U  sƒ   ø€ ÷ Q
ñ Q
á—l‘l TÕ)ðQ
ñ Ÿ™ tÕ+ðQ
ñ !×+Ñ+¨dÕ2ð	Q
ñ
 #(×"2Ñ"2°TÕ"9ðQ
ñ Ñ+Õ,ðQ
ñ 
Ñ-Õ	-ñQ
r;   c                ó  € Ve    VP                  \        P                  4      pV P                  ! V3RVRV/VB pV P	                  VP
                  4      pV P                  VP                  4      pVe&   V P                  VP                  ^,          VRR7      pV P                  WƒR7      w  ršV	P                  V P                  P                  P                  4      p	V P                  V	4      p	R;p;rÍVEeï   V	P                  w  rïpV	P                  RV4      VP                  4       P                  R4      ,          pVP                  WïRV4      P!                  ^^ ^^4      pV P#                  V	R,          VVV P$                  P&                  4      pV	V8H  P)                  R4      pVP+                  4       '       d   \-        R4      VR,          V&   VP/                  ^ ^4      P1                  RVP3                  ^ 4      4      p^VP                  4       ,
          R,          P/                  ^ ^4      P5                  4       p\6        P8                  P;                  VP-                  4       VR	R
7      pV P$                  P<                  V P$                  P>                  ,          pVV
,
          V,          VPA                  4       ,          pWÀP$                  PB                  V,          ,           p\E        VVV	V
VPF                  VPH                  VVR7      # )aE
  
mask_time_indices (`torch.BoolTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Indices to mask extracted features for contrastive loss. When in training mode, model learns to predict
    masked extracted features in *config.proj_codevector_dim* space.
sampled_negative_indices (`torch.BoolTensor` of shape `(batch_size, sequence_length, num_negatives)`, *optional*):
    Indices indicating which quantized target vectors are used as negative sampled vectors in contrastive loss.
    Required input for pre-training.

Example:

```python
>>> import torch
>>> from transformers import AutoFeatureExtractor, Wav2Vec2ForPreTraining
>>> from transformers.models.wav2vec2.modeling_wav2vec2 import _compute_mask_indices, _sample_negative_indices
>>> from datasets import load_dataset

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-base")
>>> model = Wav2Vec2ForPreTraining.from_pretrained("facebook/wav2vec2-base")

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> input_values = feature_extractor(ds[0]["audio"]["array"], return_tensors="pt").input_values  # Batch size 1

>>> # compute masked indices
>>> batch_size, raw_sequence_length = input_values.shape
>>> sequence_length = model._get_feat_extract_output_lengths(raw_sequence_length).item()
>>> mask_time_indices = _compute_mask_indices(
...     shape=(batch_size, sequence_length), mask_prob=0.2, mask_length=2
... )
>>> sampled_negative_indices = _sample_negative_indices(
...     features_shape=(batch_size, sequence_length),
...     num_negatives=model.config.num_negatives,
...     mask_time_indices=mask_time_indices,
... )
>>> mask_time_indices = torch.tensor(data=mask_time_indices, device=input_values.device, dtype=torch.long)
>>> sampled_negative_indices = torch.tensor(
...     data=sampled_negative_indices, device=input_values.device, dtype=torch.long
... )

>>> with torch.no_grad():
...     outputs = model(input_values, mask_time_indices=mask_time_indices)

>>> # compute cosine similarity between predicted (=projected_states) and target (=projected_quantized_states)
>>> cosine_sim = torch.cosine_similarity(outputs.projected_states, outputs.projected_quantized_states, dim=-1)

>>> # show that cosine similarity is much higher than random
>>> cosine_sim[mask_time_indices.to(torch.bool)].mean() > 0.5
tensor(True)

>>> # for contrastive loss training model should be put into train mode
>>> model = model.train()
>>> loss = model(
...     input_values, mask_time_indices=mask_time_indices, sampled_negative_indices=sampled_negative_indices
... ).loss
```NrI   r‚   Fr  )r‚   z-inf:rå   NNre   )Ú	reduction)r+   r,   r-   r.   r/   r0   r1   r2   r^   )Nr_   iœÿÿÿ)%r�  r3   ri   ró  rþ  rŒ  r•  rŒ  r$  rF   r–  r   rÐ   r\   r?  r   Úpermuter©  r¦   Úcontrastive_logits_temperatureÚallÚanyrM   r¼   rs   r„   r¯  r   r%  Úcross_entropyr¦  r¥  re   Údiversity_loss_weightr(   r/   r0   )r¥   r  rI   r‚   r‰   r  ÚoutputsÚtransformer_featuresrŒ  Úquantized_featuresr.   r+   r1   r2   ru   rX   rÔ   Únegative_quantized_featuresr¨  Ú
neg_is_posÚtargetÚnum_codevectorss   &&&&&,                r8   r­   ÚWav2Vec2ForPreTraining.forwardS  sæ  € ðB Ò(Ø 1× 4Ñ 4´U·Z±ZÓ @Ðà—-’-Øñ
à)ð
ð 0ð
ð ñ	
ˆð  $×/Ñ/°×0IÑ0IÓJÐð  ×0Ñ0°×1IÑ1IÓJÐàÒ%à!×DÑDØ ×&Ñ& qÕ)¨>Àuð Eó ˆNð 59·N±NØð 5Có 5
Ñ1Ðð 0×2Ñ2°4·>±>×3HÑ3H×3NÑ3NÓOÐØ!Ÿ^™^Ð,>Ó?Ðà37Ð7ˆÐ7ÐØ#Ó/Ø7I×7OÑ7OÑ4ˆJ¨ð +=×*AÑ*AÀ"ÀkÓ*RØ(×-Ñ-Ó/×4Ñ4°RÓ8õ+Ð'ð +F×*JÑ*JØ¨R°ó+ç‰g�a˜˜A˜qÓ!ð (ð ×4Ñ4Ø" 7Õ+Ø+Ø$Ø—‘×:Ñ:ó	ˆFð -Ð0KÑK×PÑPÐQSÓTˆJà�~‰~×ÒÜ).¨v«��r•
˜:Ñ&ð ×%Ñ% a¨Ó+×3Ñ3°B¸¿¹ÀA»ÓGˆFØÐ,×1Ñ1Ó3Õ3°tÕ;×FÑFÀqÈ!ÓL×TÑTÓVˆFä!Ÿ}™}×:Ñ:¸6¿<¹<»>È6Ð]bÐ:ÓcÐà"Ÿk™k×CÑCÀdÇkÁk×FgÑFgÕgˆOØ.Ð1FÕFÈ/ÕYÐ]n×]rÑ]rÓ]tÕtˆNð $§k¡k×&GÑ&GÈ.Õ&XÕXˆDä+ØØ1Ø'9Ø"7Ø!×/Ñ/Ø×)Ñ)Ø-Ø)ô	
ð 		
r;   )r•  rþ  r   r–  ró  )gš™™™™™¹?)NNN)r=   r>   r?   r@   r™   r›  r}  rÊ  r©  r    r   r­   rC   rD   r±   r²   s   @@r8   rý  rý    sa   ù‡ € ÷ó ÷1ð 1ò=ð ÷ñ ó ðð( Ø÷Q
ñ Q
ó ó ÷Q
ð Q
r;   rý  zp
    Wav2Vec2 Model with a `language modeling` head on top for Connectionist Temporal Classification (CTC).
    c                   ó~   a a€ ] tR tRt oR
V3R lV 3R llltR tR tR t]]	RV3R lR ll4       4       t
R	tVtV ;t# )r,  ié  c                ó.   <€ V ^8„  d   QhRS[ R,          /# )r*   r6  Nr7  )r6   r7   s   "€r8   r9   ÚWav2Vec2ForCTC.__annotate__ï  s   ø€ ÷ ñ ©C°$­Jñ r;   c                óÌ  <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  4      V n        W n        VP                  f   \        RV P                   R24      h\        VR4      '       d   VP                  '       d   VP                  MVP                  p\        P                   ! W1P                  4      V n        V P%                  4        R# )a
  
target_lang (`str`, *optional*):
    Language id of adapter weights. Adapter weights are stored in the format adapter.<lang>.safetensors or
    adapter.<lang>.bin. Only relevant when using an instance of [`Wav2Vec2ForCTC`] with adapters. Uses 'eng' by
    default.
NzYou are trying to instantiate z÷ with a configuration that does not define the vocabulary size of the language model head. Please instantiate the model as follows: `Wav2Vec2ForCTC.from_pretrained(..., vocab_size=vocab_size)`. or define `vocab_size` of your model's configuration.r  )r˜   r™   rm  ró  r   r  Úfinal_dropoutr  r6  rS  r`   r¨   rØ   r  rÓ  rÔ   r  r(  rx  )r¥   r¦   r6  rÓ  r¨   s   &&& €r8   r™   ÚWav2Vec2ForCTC.__init__ï  sÁ   ø€ ô 	‰Ñ˜Ô ä% fÓ-ˆŒÜ—z’z &×"6Ñ"6Ó7ˆŒà&Ôà×ÑÒ$ÜØ0°·±Ð0@ð AHð Hóð ô *1°¸×)GÒ)GÈF×L^×L^ÐL^ˆF×%Ò%Ðdj×dvÑdvð 	ô —y’yÐ!3×5FÑ5FÓGˆŒð 	�‰Ör;   c                óZ  € \        4       \        P                  ! R4      8X  d   R# V P                  pVe)   \	        V P
                  RR4      f   \        RV R24      hVf1   \	        V P
                  RR4      e   \        P                  R4       R# Ve   V P                  VRR7       R# R# )	a  
This method overwrites [`~PreTrainedModel.tie_weights`] so that adapter weights can be correctly loaded when
passing `target_lang=...` to `from_pretrained(...)`.

This method is **not** supposed to be called by the user and is prone to be changed in the future.
ÚmetaNrs  zCannot pass `target_lang`: r9  z)By default `target_lang` is set to 'eng'.T)rV  )
r   r3   r�  r6  rt  r¦   r`   rG  Úinfor_  )r¥   r  r6  s   &, r8   Útie_weightsÚWav2Vec2ForCTC.tie_weights  sœ   € ô 6Ó7¼5¿<º<ÈÓ;OÔOÙð ×&Ñ&ˆàÒ"¤w¨t¯{©{Ð<NÐPTÓ'UÒ']ÜÐ:¸;¸-ÐGtÐuÓvÐvØÒ ¤W¨T¯[©[Ð:LÈdÓ%SÒ%_Ü�K‰KÐCÖDØÒ$Ø×Ñ˜k°dÐÖ;ñ %r;   c                óN   € V P                   P                  P                  4        R# r{  rž  r|  s   &r8   r}  Ú%Wav2Vec2ForCTC.freeze_feature_encoder$  r   r;   c                óV   € V P                   P                  4        F
  pRVn        K  	  R# ©zº
Calling this function will disable the gradient computation for the base model so that its parameters will not
be updated during training. Only the classification head will be updated.
FN©ró  rü   rý   rþ   s   & r8   Úfreeze_base_modelÚ Wav2Vec2ForCTC.freeze_base_model+  ó#   € ð
 —]‘]×-Ñ-Ö/ˆEØ"'ˆEÖó 0r;   c                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# ©r*   r  NrI   Úlabelsr  rK   )r3   r  r   r   r5   r   )r6   r7   s   "€r8   r9   r¿  5  sc   ø€ ÷ :
ñ :
á—l‘l TÕ)ð:
ñ Ÿ™ tÕ+ð:
ñ —‘˜tÕ#ð	:
ñ
 Ñ+Õ,ð:
ñ 
‘Õ	ñ:
r;   c                óx  € VeL   VP                  4       V P                  P                  8¼  d#   \        RV P                  P                   24      hV P                  ! V3RV/VB pVP
                  pV P                  V4      pV P                  V4      pRpVEen   Ve   TM%\        P                  ! V\        P                  R7      pV P                  VP                  R
4      4      P                  \        P                  4      p	V^ 8¬  p
V
P                  R
4      pVP                  V
4      p\        P                   P#                  VR
\        P$                  R7      P'                  ^ ^4      p\        P(                  P*                  P-                  RR7      ;_uu_ 4        \        P                   P/                  VVV	VV P                  P0                  V P                  P2                  V P                  P4                  R7      pRRR4       \7        W‡VP8                  VP:                  R	7      #   + '       g   i     L2; i)a°  
labels (`torch.LongTensor` of shape `(batch_size, target_length)`, *optional*):
    Labels for connectionist temporal classification. Note that `target_length` has to be smaller or equal to
    the sequence length of the output logits. Indices are selected in `[-100, 0, ..., config.vocab_size - 1]`.
    All labels set to `-100` are ignored (masked), the loss is only computed for labels in `[0, ...,
    config.vocab_size - 1]`.
Nz$Label values must be <= vocab_size: rI   r[   )rÒ   r\   F)Úenabled)Úblankr®  Úzero_infinity©r+   r¨  r/   r0   r^   )rT   r¦   rS  r`   ró  rŒ  r  r(  r3   Ú	ones_liker   r  re   r�  Úmasked_selectr   r%  Úlog_softmaxÚfloat32r¼   ÚbackendsÚcudnnÚflagsÚctc_lossÚpad_token_idÚctc_loss_reductionÚctc_zero_infinityr   r/   r0   )r¥   r  rI   rÒ  r  rµ  r/   r¨  r+   rw   Úlabels_maskÚtarget_lengthsÚflattened_targetsÚ	log_probss   &&&&,         r8   r­   ÚWav2Vec2ForCTC.forward3  sß  € ð  Ò &§*¡*£,°$·+±+×2HÑ2HÔ"HÜÐCÀDÇKÁK×DZÑDZÐC[Ð\Ó]Ð]à—-’-Øñ
à)ð
ð ñ
ˆð  ×1Ñ1ˆØŸ™ ]Ó3ˆà—‘˜mÓ,ˆàˆØÓð #1Ò"<‘Ä%Ç/Â/ÐR^Ôfk×fpÑfpÔBqð ð !×AÑAÀ.×BTÑBTÐUWÓBXÓY×\Ñ\Ô]b×]gÑ]gÓhˆMð ! A™+ˆKØ(Ÿ_™_¨RÓ0ˆNØ &× 4Ñ 4°[Ó AÐô Ÿ™×1Ñ1°&¸bÌÏÉÐ1ÓV×`Ñ`ÐabÐdeÓfˆIä—‘×%Ñ%×+Ñ+°EÐ+×:Õ:Ü—}‘}×-Ñ-ØØ%Ø!Ø"ØŸ+™+×2Ñ2Ø"Ÿk™k×<Ñ<Ø"&§+¡+×"?Ñ"?ð .ó �÷ ;ô Ø°G×4IÑ4IÐV]×VhÑVhô
ð 	
÷ ;×:ús   ÆA#H)È)H9	)r  r(  r6  ró  r«   r�  )r=   r>   r?   r@   r™   rÆ  r}  rÍ  r    r   r­   rC   rD   r±   r²   s   @@r8   r,  r,  é  sD   ù‡ € ÷õ ò:<ò0=ò(ð Ø÷:
ñ :
ó ó ÷:
ð :
r;   r,  z—
    Wav2Vec2 Model with a sequence classification head on top (a linear layer over the pooled output) for tasks like
    SUPERB Keyword Spotting.
    c                   ór   a a€ ] tR tRt oV 3R ltR tR t]]]	RV3R lR ll4       4       4       t
RtVtV ;t# )	Ú!Wav2Vec2ForSequenceClassificationir  c                ó:  <€ \         SV `  V4       \        VR 4      '       d   VP                  '       d   \	        R4      h\        V4      V n        VP                  ^,           pVP                  '       d7   \        P                  ! \        P                  ! V4      V,          4      V n        \        P                  ! VP                  VP                   4      V n        \        P                  ! VP                   VP$                  4      V n        V P)                  4        R# )r  z_Sequence classification does not support the use of Wav2Vec2 adapters (config.add_adapter=True)N)r˜   r™   rØ   r  r`   rm  ró  r�  Úuse_weighted_layer_sumr   r©  r3   rn   Úlayer_weightsr  rÔ   Úclassifier_proj_sizeÚ	projectorÚ
num_labelsÚ
classifierrx  ©r¥   r¦   Ú
num_layersr¨   s   && €r8   r™   Ú*Wav2Vec2ForSequenceClassification.__init__y  sÉ   ø€ Ü‰Ñ˜Ô ä�6˜=×)Ò)¨f×.@×.@Ð.@ÜØqóð ô & fÓ-ˆŒØ×-Ñ-°Õ1ˆ
Ø×(×(Ð(Ü!#§¢¬e¯jªj¸Ó.DÀzÕ.QÓ!RˆDÔÜŸš 6×#5Ñ#5°v×7RÑ7RÓSˆŒÜŸ)š) F×$?Ñ$?À×ARÑARÓSˆŒð 	�‰Ör;   c                óN   € V P                   P                  P                  4        R# r{  rž  r|  s   &r8   r}  Ú8Wav2Vec2ForSequenceClassification.freeze_feature_encoderŠ  r   r;   c                óV   € V P                   P                  4        F
  pRVn        K  	  R# rË  rÌ  rþ   s   & r8   rÍ  Ú3Wav2Vec2ForSequenceClassification.freeze_base_model‘  rÏ  r;   c                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# rÑ  )r3   r  r   r   r5   r   )r6   r7   s   "€r8   r9   Ú.Wav2Vec2ForSequenceClassification.__annotate__œ  sd   ø€ ÷ 9
ñ 9
á—l‘l TÕ)ð9
ñ Ÿ™ tÕ+ð9
ñ —‘˜tÕ#ð	9
ñ
 Ñ+Õ,ð9
ñ 
Ñ)Õ	)ñ9
r;   c                ó(  € V P                   P                  '       d   RVR&   V P                  ! V3RV/VB pV P                   P                  '       dz   VP                  p\        P
                  ! V^R7      p\        P                  P                  V P                  RR7      pWgP                  R^^4      ,          P                  ^R7      pMVP                  pV P                  V4      pVf   VP                  ^R7      pM”V P                  VP                   ^,          V4      p	V	P#                  R4      P%                  ^^VP                   ^,          4      p
RWj( &   VP                  ^R7      V	P                  ^R7      P                  R^4      ,          pV P'                  V4      pRpVeG   \)        4       pV! VP                  RV P                   P*                  4      VP                  R4      4      p\-        VVVP                  VP.                  R7      # )	á´  
input_values (`torch.FloatTensor` of shape `(batch_size, sequence_length)`):
    Float values of input raw speech waveform. Values can be obtained by loading a `.flac` or `.wav` audio file
    into an array of type `list[float]`, a `numpy.ndarray` or a `torch.Tensor`, *e.g.* via the torchcodec library
    (`pip install torchcodec`) or the soundfile library (`pip install soundfile`).
    To prepare the array into `input_values`, the [`AutoProcessor`] should be used for padding and conversion
    into a tensor of type `torch.FloatTensor`. See [`Wav2Vec2Processor.__call__`] for details.
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
    config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
    `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
TÚoutput_hidden_statesrI   r!  Nr>  r×  r^   )r¦   rë  ró  r/   r3   Ústackr   r%  r&  rì  r?  re   rŒ  rî  r³  r$  rF   r�  rŽ  rð  r   rï  r   r0   )r¥   r  rI   rÒ  r  rµ  r/   Únorm_weightsÚpooled_outputÚpadding_maskÚexpand_padding_maskr¨  r+   Úloss_fcts   &&&&,         r8   r­   Ú)Wav2Vec2ForSequenceClassification.forward™  sá  € ð, �;‰;×-×-Ð-Ø-1ˆFÐ)Ñ*à—-’-Øñ
à)ð
ð ñ
ˆð �;‰;×-×-Ð-Ø#×1Ñ1ˆMÜ!ŸKšK¨¸1Ô=ˆMÜŸ=™=×0Ñ0°×1CÑ1CÈÐ0ÓLˆLØ*×->Ñ->¸rÀ1ÀaÓ-HÕH×MÑMÐRSÐMÓT‰Mà#×5Ñ5ˆMàŸ™ }Ó5ˆØÒ!Ø)×.Ñ.°1Ð.Ó5‰Mà×BÑBÀ=×CVÑCVÐWXÕCYÐ[iÓjˆLØ".×"8Ñ"8¸Ó"<×"CÑ"CÀAÀqÈ-×J]ÑJ]Ð^_ÕJ`Ó"aÐØ25ˆMÐ.Ñ/Ø)×-Ñ-°!Ð-Ó4°|×7GÑ7GÈAÐ7GÓ7N×7SÑ7SÐTVÐXYÓ7ZÕZˆMà—‘ Ó/ˆàˆØÒÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯K©K×,BÑ,BÓCÀVÇ[Á[ÐQSÃ_ÓUˆDä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r;   )rð  rì  rî  ró  r�  ©r=   r>   r?   r@   r™   r}  rÍ  r    r	   r   r­   rC   rD   r±   r²   s   @@r8   ré  ré  r  sB   ù‡ € õò"=ò(ð Ø Ø÷9
ñ 9
ó ó !ó ÷9
ð 9
r;   ré  c                   ór   a a€ ] tR tRt oV 3R ltR tR t]]]	RV3R lR ll4       4       4       t
RtVtV ;t# )	Ú#Wav2Vec2ForAudioFrameClassificationiØ  c                óü  <€ \         SV `  V4       \        VR 4      '       d   VP                  '       d   \	        R4      h\        V4      V n        VP                  ^,           pVP                  '       d7   \        P                  ! \        P                  ! V4      V,          4      V n        \        P                  ! VP                  VP                   4      V n        VP                   V n        V P%                  4        R# )r  zbAudio frame classification does not support the use of Wav2Vec2 adapters (config.add_adapter=True)N)r˜   r™   rØ   r  r`   rm  ró  r�  rë  r   r©  r3   rn   rì  r  rÔ   rï  rð  rx  rñ  s   && €r8   r™   Ú,Wav2Vec2ForAudioFrameClassification.__init__Ú  s¶   ø€ Ü‰Ñ˜Ô ä�6˜=×)Ò)¨f×.@×.@Ð.@ÜØtóð ô & fÓ-ˆŒØ×-Ñ-°Õ1ˆ
Ø×(×(Ð(Ü!#§¢¬e¯jªj¸Ó.DÀzÕ.QÓ!RˆDÔÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒØ ×+Ñ+ˆŒà�‰Ör;   c                óN   € V P                   P                  P                  4        R# r{  rž  r|  s   &r8   r}  Ú:Wav2Vec2ForAudioFrameClassification.freeze_feature_encoderê  r   r;   c                óV   € V P                   P                  4        F
  pRVn        K  	  R# rË  rÌ  rþ   s   & r8   rÍ  Ú5Wav2Vec2ForAudioFrameClassification.freeze_base_modelñ  rÏ  r;   c                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# rÑ  )r3   r  r   r   r5   r   )r6   r7   s   "€r8   r9   Ú0Wav2Vec2ForAudioFrameClassification.__annotate__ü  sd   ø€ ÷ 0
ñ 0
á—l‘l TÕ)ð0
ñ Ÿ™ tÕ+ð0
ñ —‘˜tÕ#ð	0
ñ
 Ñ+Õ,ð0
ñ 
Ñ&Õ	&ñ0
r;   c           	     óÞ  € V P                   P                  '       d   RVR&   V P                  ! V3RV/VB pV P                   P                  '       dz   VP                  p\        P
                  ! V^R7      p\        P                  P                  V P                  RR7      pWgP                  R^^4      ,          P                  ^R7      pMVP                  pV P                  V4      pRp	Ve^   \        4       p
V
! VP                  RV P                  4      \        P                   ! VP                  RV P                  4      ^R7      4      p	\#        V	VVP                  VP$                  R7      # )	rû  Trü  rI   r!  N)Úaxisr×  r^   )r¦   rë  ró  r/   r3   rý  r   r%  r&  rì  r?  re   rŒ  rð  r   rï  rÂ  r   r0   )r¥   r  rI   rÒ  r  rµ  r/   rþ  r¨  r+   r  s   &&&&,      r8   r­   Ú+Wav2Vec2ForAudioFrameClassification.forwardù  s?  € ð, �;‰;×-×-Ð-Ø-1ˆFÐ)Ñ*à—-’-Øñ
à)ð
ð ñ
ˆð �;‰;×-×-Ð-Ø#×1Ñ1ˆMÜ!ŸKšK¨¸1Ô=ˆMÜŸ=™=×0Ñ0°×1CÑ1CÈÐ0ÓLˆLØ*×->Ñ->¸rÀ1ÀaÓ-HÕH×MÑMÐRSÐMÓT‰Mà#×5Ñ5ˆMà—‘ Ó/ˆàˆØÒÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯O©OÓ<¼e¿lºlÈ6Ï;É;ÐWYÐ[_×[jÑ[jÓKkÐrsÔ>tÓuˆDä$ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r;   )rð  rì  rï  ró  r�  r  r²   s   @@r8   r  r  Ø  sB   ù‡ € õò =ò(ð Ø Ø÷0
ñ 0
ó ó !ó ÷0
ð 0
r;   r  c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )ÚAMSoftmaxLossi/  c                óÞ   <€ \         SV `  4        W0n        W@n        W n        \
        P                  ! \        P                  ! W4      R R7      V n	        \
        P                  ! 4       V n        R# )T)rý   N)r˜   r™   ÚscaleÚmarginrï  r   r©  r3   ÚrandnrÐ   r   r+   )r¥   rå  rï  r  r  r¨   s   &&&&&€r8   r™   ÚAMSoftmaxLoss.__init__0  sI   ø€ Ü‰ÑÔØŒ
ØŒØ$ŒÜ—l’l¤5§;¢;¨yÓ#EÐUYÔZˆŒÜ×'Ò'Ó)ˆŽ	r;   c                óî  € VP                  4       p\        P                  P                  V P                  ^ R7      p\        P                  P                  V^R7      p\
        P                  ! W4      pW@P                  ,
          p\        P                  P                  W P                  4      pV P                  \
        P                  ! VP                  4       WT4      ,          pV P                  Wr4      pV# )r“   r!  )r¯  r   r%  Ú	normalizerÐ   r3   Úmmr  Úone_hotrï  r  r±  ri   r+   )	r¥   r/   rÒ  rÐ   Ú	cos_thetaÚpsiÚonehotr¨  r+   s	   &&&      r8   r­   ÚAMSoftmaxLoss.forward8  s¨   € Ø—‘Ó!ˆÜ—‘×(Ñ(¨¯©¸!Ð(Ó<ˆÜŸ™×/Ñ/°À1Ð/ÓEˆÜ—H’H˜]Ó3ˆ	ØŸ+™+Õ%ˆä—‘×&Ñ& v¯©Ó?ˆØ—‘œeŸkšk¨&¯+©+«-¸ÓHÕHˆØ�y‰y˜Ó(ˆàˆr;   )r+   r  rï  r  rÐ   )g      >@gš™™™™™Ù?r°   r²   s   @@r8   r  r  /  s   ù‡ € ÷*÷ò r;   r  c                   óH   a a€ ] tR tRt oRV 3R lltV3R lR ltRtVtV ;t# )Ú	TDNNLayeriF  c                óÜ  <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          MVP                  V,          V n        VP                  V,          V n        VP
                  V,          V n        VP                  V,          V n        \        P                  ! V P                  V P                  ,          V P                  4      V n        \        P                  ! 4       V n        R# )r“   N)r˜   r™   Útdnn_dimr›   rœ   Útdnn_kernelr•   Útdnn_dilationÚdilationr   r  Úkernelré  r£   r¤   s   &&&€r8   r™   ÚTDNNLayer.__init__G  s¡   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈfÏoÉoÐ^fÕNgˆÔØ"ŸO™O¨HÕ5ˆÔØ!×-Ñ-¨hÕ7ˆÔØ×,Ñ,¨XÕ6ˆŒä—i’i × 0Ñ 0°4×3CÑ3CÕ CÀT×EVÑEVÓWˆŒÜŸ'š'›)ˆŽr;   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r*   r/   rK   )r3   r  )r6   r7   s   "€r8   r9   ÚTDNNLayer.__annotate__Q  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r;   c                óJ  € \        4       '       d   ^ RIHp \        4       '       d3   \        V P                  X4      '       d   \
        P                  ! R4       VP                  ^^4      pV P                  P                  P                  V P                  V P                  V P                  4      P                  ^^4      p\        P                  P                  WV P                  P                   V P"                  R7      pVP                  ^^4      pV P%                  V4      pV# )r“   )Ú	LoraLayerz‡Detected LoRA on TDNNLayer. LoRA weights won't be applied due to optimization. You should exclude TDNNLayer from LoRA's target modules.)r'  )r   Úpeft.tuners.lorar-  rS  r(  ÚwarningsÚwarnr¼   rÐ   r?  rœ   r•   r›   r   r%  Úconv1dr—   r'  r£   )r¥   r/   r-  rÐ   s   &&  r8   r­   ÚTDNNLayer.forwardQ  sß   € Ü×ÒÝ2ä×ÒÜ˜$Ÿ+™+ y×1Ò1Ü—’ðOôð &×/Ñ/°°1Ó5ˆØ—‘×#Ñ#×(Ñ(¨×):Ñ):¸D×<LÑ<LÈd×N^ÑN^Ó_×iÑiÐjkÐmnÓoˆÜŸ™×,Ñ,¨]ÀDÇKÁK×DTÑDTÐ_c×_lÑ_lÐ,ÓmˆØ%×/Ñ/°°1Ó5ˆàŸ™¨Ó6ˆØÐr;   )r£   r'  r›   r(  r•   rœ   r¯   r°   r²   s   @@r8   r"  r"  F  s   ù‡ € ÷$÷÷ ð r;   r"  zl
    Wav2Vec2 Model with an XVector feature extraction head on top for tasks like Speaker Verification.
    c                   ó„   a a€ ] tR tRt oV 3R ltR tR tV3R lR lt]]	]
R
V3R lR ll4       4       4       tR	tVtV ;t# )ÚWav2Vec2ForXVectorif  c                ó\  <€ \         SV `  V4       \        V4      V n        VP                  ^,           pVP
                  '       d7   \        P                  ! \        P                  ! V4      V,          4      V n
        \        P                  ! VP                  VP                  ^ ,          4      V n        \        \!        VP                  4      4       Uu. uF  p\#        W4      NK  	  pp\        P$                  ! V4      V n        \        P                  ! VP                  R,          ^,          VP(                  4      V n        \        P                  ! VP(                  VP(                  4      V n        \/        VP(                  VP0                  4      V n        V P5                  4        R# u upi )rå   Nr^   )r˜   r™   rm  ró  r�  rë  r   r©  r3   rn   rì  r  rÔ   r$  rî  rg   rl   r"  rõ   ÚtdnnÚxvector_output_dimrq  rð  r  rï  Ú	objectiverx  )r¥   r¦   rò  rù   Útdnn_layersr¨   s   &&   €r8   r™   ÚWav2Vec2ForXVector.__init__l  s   ø€ Ü‰Ñ˜Ô ä% fÓ-ˆŒØ×-Ñ-°Õ1ˆ
Ø×(×(Ð(Ü!#§¢¬e¯jªj¸Ó.DÀzÕ.QÓ!RˆDÔÜŸš 6×#5Ñ#5°v·±ÀqÕ7IÓJˆŒä5:¼3¸v¿¹Ó;OÔ5PÓQÑ5P°”y Ö+Ñ5PˆÐQÜ—M’M +Ó.ˆŒ	ä!#§¢¨6¯?©?¸2Õ+>ÀÕ+BÀF×D]ÑD]Ó!^ˆÔÜŸ)š) F×$=Ñ$=¸v×?XÑ?XÓYˆŒä& v×'@Ñ'@À&×BSÑBSÓTˆŒà�‰Öùò Rs   ÃF)c                óN   € V P                   P                  P                  4        R# r{  rž  r|  s   &r8   r}  Ú)Wav2Vec2ForXVector.freeze_feature_encoder  r   r;   c                óV   € V P                   P                  4        F
  pRVn        K  	  R# rË  rÌ  rþ   s   & r8   rÍ  Ú$Wav2Vec2ForXVector.freeze_base_model†  rÏ  r;   c                óD   <€ V ^8„  d   QhRS[ P                  S[,          /# )r*   rw   )r3   rN   rL   )r6   r7   s   "€r8   r9   ÚWav2Vec2ForXVector.__annotate__Ž  s   ø€ ÷ ñ ±e×6FÑ6FÉÕ6Lñ r;   c                óX   € R pV P                   P                   F  pV! W^4      pK  	  V# )z/
Computes the output length of the TDNN layers
c                 ó.   € W,
          V,          ^,           # rä   r<   r  s   &&&r8   r  ÚEWav2Vec2ForXVector._get_tdnn_output_lengths.<locals>._conv_out_length“  s   € ð !Õ.°6Õ9¸AÕ=Ð=r;   )r¦   r%  )r¥   rw   r  r•   s   &&  r8   Ú_get_tdnn_output_lengthsÚ+Wav2Vec2ForXVector._get_tdnn_output_lengthsŽ  s1   € ò
	>ð
  Ÿ;™;×2Ô2ˆKÙ,¨]ÈÓKŠMñ 3ð Ðr;   c                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# rÑ  )r3   r  r   r   r5   r   )r6   r7   s   "€r8   r9   r@     sj   ø€ ÷ F
ñ F
á—l‘l TÕ)ðF
ñ Ÿ™ tÕ+ðF
ñ —‘˜tÕ#ð	F
ñ
 Ñ+Õ,ðF
ñ 
‘Õ	ñF
r;   c                óà  € V P                   P                  '       d   RVR&   V P                  ! V3RV/VB pV P                   P                  '       dz   VP                  p\        P
                  ! V^R7      p\        P                  P                  V P                  RR7      pWgP                  R^^4      ,          P                  ^R7      pMVP                  pV P                  V4      pV P                   F  pV! V4      pK  	  Vf&   VP                  ^R7      p	VP!                  ^R7      p
MÌV P#                  VP                  ^R7      4      pV P%                  V4      p. p	. p
\'        V4       F[  w  rÞV	P)                  WmRV13,          P                  ^ R7      4       V
P)                  WmRV13,          P!                  ^ R7      4       K]  	  \        P
                  ! V	4      p	\        P
                  ! V
4      p
\        P*                  ! Wš.RR7      pV P-                  V4      pV P/                  V4      pRpVe   V P1                  VV4      p\3        VVVVP                  VP4                  R7      # )rû  Trü  rI   r!  N)r+   r¨  Ú
embeddingsr/   r0   r^   )r¦   rë  ró  r/   r3   rý  r   r%  r&  rì  r?  re   rŒ  rî  r6  r³  rù  r  rD  Ú	enumeraterp   r¦  rq  rð  r8  r   r0   )r¥   r  rI   rÒ  r  rµ  r/   rþ  Ú
tdnn_layerÚmean_featuresÚstd_featuresÚfeat_extract_output_lengthsÚtdnn_output_lengthsrù   ÚlengthÚstatistic_poolingÚoutput_embeddingsr¨  r+   s   &&&&,              r8   r­   ÚWav2Vec2ForXVector.forward�  sF  € ð, �;‰;×-×-Ð-Ø-1ˆFÐ)Ñ*à—-’-Øñ
à)ð
ð ñ
ˆð �;‰;×-×-Ð-Ø#×1Ñ1ˆMÜ!ŸKšK¨¸1Ô=ˆMÜŸ=™=×0Ñ0°×1CÑ1CÈÐ0ÓLˆLØ*×->Ñ->¸rÀ1ÀaÓ-HÕH×MÑMÐRSÐMÓT‰Mà#×5Ñ5ˆMàŸ™ }Ó5ˆàŸ)œ)ˆJÙ& }Ó5ŠMñ $ð Ò!Ø)×.Ñ.°1Ð.Ó5ˆMØ(×,Ñ,°Ð,Ó3‰Là*.×*OÑ*OÐP^×PbÑPbÐghÐPbÓPiÓ*jÐ'Ø"&×"?Ñ"?Ð@[Ó"\ÐØˆMØˆLÜ&Ð':Ö;‘	�Ø×$Ñ$ ]°g°v°g°:Õ%>×%CÑ%CÈÐ%CÓ%JÔKØ×#Ñ# M°W°f°W°*Õ$=×$AÑ$AÀaÐ$AÓ$HÖIñ <ô "ŸKšK¨Ó6ˆMÜ Ÿ;š; |Ó4ˆLÜ!ŸIšI }Ð&CÈÔLÐà ×2Ñ2Ð3DÓEÐØ—‘Ð!2Ó3ˆàˆØÒØ—>‘> &¨&Ó1ˆDäØØØ(Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r;   )rð  rq  rì  r8  rî  r6  ró  r�  )r=   r>   r?   r@   r™   r}  rÍ  rD  r    r	   r   r­   rC   rD   r±   r²   s   @@r8   r4  r4  f  sP   ù‡ € õò&=ò(÷ð ð Ø Ø÷F
ñ F
ó ó !ó ÷F
ð F
r;   r4  )Nr“   r«   )Nr>  )r  r,  rý  ré  r4  rm  rò  )drA   r  r/  Úcollections.abcr   Údataclassesr   ÚnumpyrO   r3   Úsafetensors.torchr   rL  r   Útorch.nnr   Ú r   r  Úactivationsr   Úbackbone_utilsr	   Úintegrations.deepspeedr
   Úintegrations.fsdpr   Úmasking_utilsr   Úmodeling_flash_attention_utilsr   Úmodeling_layersr   Úmodeling_outputsr   r   r   r   r   r   Úmodeling_utilsr   r   r   Úprocessing_utilsr   r×   r   r   r   r   r   r   r   Úutils.genericr    r!   Úutils.output_capturingr"   r#   Úconfiguration_wav2vec2r%   rO  rK  Ú
get_loggerr=   rG  Ú_HIDDEN_STATES_START_POSITIONr(   r~   r�   r‘   r´   rÀ   r  rÊ   rá   rï   r  r*  r,  rM  r^  rq  r}  r›  r£  rÌ  rÏ  ru  rò  rm  rý  r,  ré  r  r  r"  r4  Ú__all__r<   r;   r8   Ú<module>ri     s  ðñ ã Û Ý $Ý !ã Û Ý 9Ý Ý %å &Ý !Ý 9Ý @Ý 7Ý 6Ý BÝ 9÷÷ ÷ sÑ rÝ &÷÷ ñ ÷ Jß EÝ 2ð ,Ð Ø5Ð ð 
×	Ò	˜HÓ	%€ð !"Ð ñ ðôð
 ô4 ;ó 4ó óð4÷:t÷n$ôDÐ#=ô ô*Ð!;ô ô6Ð!;ô ô0* b§i¡iô *ôZ˜2Ÿ9™9ô ô%˜RŸY™Yô %ôP1 §	¡	ô 1÷ %ô8R)˜Ÿ	™	ô R)ôj˜"Ÿ)™)ô ô0Ð5ô ôD$Ð*Dô $ôN+@�b—i‘iô +@ô\/@ R§Y¡Yô /@ôdI' B§I¡Iô I'ôX�b—i‘iô ô>˜2Ÿ9™9ô ô$˜rŸy™yô ð2 ô`'˜oó `'ó ð`'ðF	 ôu
Ð+ó u
ó ðu
ñp ðôô
C
Ð4ó C
óð
C
ñL ðôô
A
Ð,ó A
óð
A
ñH ðôô]
Ð(?ó ]
óð]
ð@ ôS
Ð*Aó S
ó ðS
ôl�B—I‘Iô ô.�—	‘	ô ñ@ ðôô
{
Ð0ó {
óð
{
ò|‚r;   