+
    œ°³jŒk  ã                   ó°  € ^ RI t ^ RIHt ^ RIHt ^ RIt^ RIHt ^RIHt ^RI	H
t
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 ^RIHtHt ^RIHt ^RIHtHtH t H!t!H"t" ^RI#H$t$ ^RI%H&t& ^RI'H(t( ^RI)H*t*H+t+ ]!PX                  ! ]-4      t.R,R R llt/ ! R R]P`                  4      t1 ! R R]4      t2] ! R R]4      4       t3] ! R R]4      4       t4]! RR7      ] ! R R ]4      4       4       t5]! R!R7       ! R" R#]34      4       t6 ! R$ R%]P`                  4      t7]! R&R7       ! R' R(]34      4       t8]! R)R7       ! R* R+]3]4      4       t9. R-Ot:R# ).é    N)ÚCallable)Ú	dataclass)Únn)ÚACT2FN)ÚCacheÚEncoderDecoderCache)ÚGenerationMixin)Úcreate_bidirectional_mask)ÚFlashAttentionKwargs)ÚGradientCheckpointingLayer)ÚBaseModelOutputWithPastÚBaseModelOutputWithPoolingÚModelOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚloggingÚtorch_compilable_check)Úmerge_with_config_defaults)Úcapture_outputs)Ú	AutoModel)ÚAudioFlamingo3ConfigÚAudioFlamingo3EncoderConfigc                óì   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        /# )	é   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropout)r   ÚModuleÚtorchÚTensorÚfloat)Úformats   "Ú{/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/audioflamingo3/modeling_audioflamingo3.pyÚ__annotate__r,   0   sk   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ñ%ó    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)Údim©ÚpÚtrainingéÿÿÿÿç      à¿)
Úsizer'   ÚmatmulÚ	transposer   Ú
functionalÚsoftmaxr%   r2   Ú
contiguous)
r   r    r!   r"   r#   r$   r%   ÚkwargsÚattn_weightsÚattn_outputs
   &&&&&&&,  r+   Úeager_attention_forwardr>   0   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^Jt 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	# )	ÚAudioFlamingo3Attentionz=Multi-headed attention from 'Attention Is All You Need' paperc                óf   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[RS[RS[ R,          R	S[R,          /# )
r   Ú	embed_dimÚ	num_headsr%   Ú
is_decoderÚbiasÚ	is_causalÚ	layer_idxNÚconfig)Úintr)   Úboolr   )r*   Ú__classdict__s   "€r+   r,   Ú$AudioFlamingo3Attention.__annotate__M   sn   ø€ ÷ &Cñ &Cáð&Cñ ð&Cñ ð	&Cñ
 ð&Cñ ð&Cñ ð&Cñ ˜•:ð&Cñ % tÕ+ñ&Cr-   c	                ó˜  <€ \         S	V `  4        Wn        W n        W0n        W,          V n        W€n        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
        Vf6   V'       d.   \        P                  RV P                  P                   R24       Wpn        \         P"                  ! WR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).NzInstantiating a decoder z³ without passing `layer_idx` is not recommended and will to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` when creating this class.F©rE   r4   )ÚsuperÚ__init__rB   rC   r%   Úhead_dimrH   Ú
ValueErrorr$   rD   rF   ÚloggerÚwarning_onceÚ	__class__Ú__name__rG   r   ÚLinearÚk_projÚv_projÚq_projÚout_proj)
ÚselfrB   rC   r%   rD   rE   rF   rG   rH   rU   s
   &&&&&&&&&€r+   rP   Ú AudioFlamingo3Attention.__init__M   s  ø€ ô 	‰ÑÔØ"ŒØ"ŒØŒØ!Õ.ˆŒØŒà�M‰M˜IÕ%¨$¯.©.Ô8ÜØMÈdÏnÉnÐM]Ø$ Y K¨rð3óð ð —}‘} dÕ*ˆŒØ$ŒØ"ŒàÒ§Ü×ÑØ*¨4¯>©>×+BÑ+BÐ*Cð D,ð ,ôð
 #Œä—i’i 	¸5ÔAˆŒÜ—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜŸ	š	 )¸TÔBˆŽr-   c                ó<  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[ P                  R,          RS[RS[S[,          RS[S[ P                  S[ P                  R,          S[S[ P                  ,          R,          3,          /# )	r   Úhidden_statesÚkey_value_statesNÚpast_key_valuesr#   Úoutput_attentionsr;   Úreturn)r'   r(   r   rJ   r   r   Útuple)r*   rK   s   "€r+   r,   rL   u   s¡   ø€ ÷ I)ñ I)á—|‘|ðI)ñ  Ÿ,™,¨Õ-ðI)ñ  �ð	I)ñ
 Ÿ™ tÕ+ðI)ñ  ðI)ñ Ñ-Õ.ðI)ñ 
‰u�|‰|™UŸ\™\¨DÕ0±%¹¿¹Õ2EÈÕ2LÐLÕ	MñI)r-   c           	     ót  € VRJpVP                   RR	 p. VOR	NV P                  N5p	V P                  V4      V P                  ,          P	                  V	4      P                  ^^4      P                  4       p
RpVev   \        V\        4      '       d`   VP                  P                  V P                  4      pV'       d'   RVP                  V P                  &   VP                  pMVP                  pVe   TMTpV'       d`   V'       dX   V'       dP   VP                  V P                  ,          P                  pVP                  V P                  ,          P                   pM¿V^ ,          R	V P"                  V P                  3pV P%                  V4      P	                  V4      P                  ^^4      P                  4       pV P'                  V4      P	                  V4      P                  ^^4      P                  4       pVe   VP)                  WÞV P                  4      w  rÞ\*        P,                  ! V P.                  P0                  \2        4      pT! V V
VVV3RV P4                  '       g   RMV P6                  RRRV/VB w  ppVP8                  ! . VOR	N5!  P                  4       pV P;                  V4      pVV3# )
z#Input shape: Batch x Time x ChannelNFTr%   ç        r$   ç      ð?rb   r3   )ÚshaperQ   rZ   r$   Úviewr7   r:   Ú
isinstancer   Ú
is_updatedÚgetrG   Úcross_attention_cacheÚself_attention_cacheÚlayersÚkeysÚvaluesrC   rX   rY   Úupdater   Úget_interfacerH   Ú_attn_implementationr>   r2   r%   Úreshaper[   )r\   r_   r`   ra   r#   rb   r;   Úis_cross_attentionÚinput_shapeÚhidden_shapeÚquery_statesrk   Úcurrent_statesÚ
key_statesÚvalue_statesÚkv_shapeÚattention_interfacer=   r<   s   &&&&&&,            r+   ÚforwardÚAudioFlamingo3Attention.forwardu   sr  € ð .°TÐ9Ðà#×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆð Ÿ™ MÓ2°T·\±\ÕA×GÑGÈÓU×_Ñ_Ð`aÐcdÓe×pÑpÓrˆð ˆ
ØÒ&¬:°oÔGZ×+[Ò+[Ø(×3Ñ3×7Ñ7¸¿¹ÓGˆJß!à=A�×*Ñ*¨4¯>©>Ñ:Ø"1×"GÑ"G‘à"1×"FÑ"F�ð .>Ò-IÑ)È}ˆß§/·jà(×/Ñ/°·±Õ?×DÑDˆJØ*×1Ñ1°$·.±.ÕA×HÑH‰Lð
 $ A�¨¨D¯N©N¸D¿M¹MÐJˆHØŸ™ ^Ó4×9Ñ9¸(ÓC×MÑMÈaÐQRÓS×^Ñ^Ó`ˆJØŸ;™; ~Ó6×;Ñ;¸HÓE×OÑOÐPQÐSTÓU×`Ñ`ÓbˆLØÒ*Ø+:×+AÑ+AÀ*Ð\`×\jÑ\jÓ+kÑ(�
ä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ
%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð
%
ð ð
%
ð 0ð
%
ð ñ
%
Ñ!ˆ�\ð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆà˜LÐ(Ð(r-   )rH   r%   rB   rQ   rF   rD   rX   rG   rC   r[   rZ   r$   rY   )rf   FTFNN)NNNF©
rV   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rP   r   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rU   rK   s   @@r+   r@   r@   J   s'   ù‡ € ÙG÷&Cõ &C÷PI)÷ I)ò I)r-   r@   c                   óP   a a€ ] tR t^Át oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚAudioFlamingo3EncoderLayerc                ó    <€ V ^8„  d   QhRS[ /# ©r   rH   ©r   )r*   rK   s   "€r+   r,   Ú'AudioFlamingo3EncoderLayer.__annotate__Â   s   ø€ ÷ =ñ =Ñ3ñ =r-   c                óz  <€ \         SV `  4        VP                  V n        \	        V P                  VP
                  VP                  VR 7      V n        \        P                  ! V P                  4      V n
        VP                  V n        \        VP                  ,          V n        VP                  V n        \        P                   ! V P                  VP"                  4      V n        \        P                   ! VP"                  V P                  4      V n        \        P                  ! V P                  4      V n        R# ))rB   rC   r%   rH   N)rO   rP   Úd_modelrB   r@   Úencoder_attention_headsÚattention_dropoutÚ	self_attnr   Ú	LayerNormÚself_attn_layer_normr%   r   Úactivation_functionÚactivation_fnÚactivation_dropoutrW   Úencoder_ffn_dimÚfc1Úfc2Úfinal_layer_norm©r\   rH   rU   s   &&€r+   rP   Ú#AudioFlamingo3EncoderLayer.__init__Â   sÑ   ø€ Ü‰ÑÔØŸ™ˆŒä0Ø—n‘nØ×4Ñ4Ø×,Ñ,Øô	
ˆŒô %'§L¢L°·±Ó$@ˆÔ!Ø—~‘~ˆŒÜ# F×$>Ñ$>Õ?ˆÔØ"(×";Ñ";ˆÔÜ—9’9˜TŸ^™^¨V×-CÑ-CÓDˆŒÜ—9’9˜V×3Ñ3°T·^±^ÓDˆŒÜ "§¢¨T¯^©^Ó <ˆÖr-   c                ó~   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[ P                  /# )r   r_   r#   r;   rc   )r'   r(   r   r   )r*   rK   s   "€r+   r,   r�   Ô   sE   ø€ ÷ "ñ "á—|‘|ð"ñ Ÿ™ð"ñ Ñ+Õ,ð	"ñ
 
�‰ñ"r-   c                ó  € TpV P                  V4      pV P                  ! RRVRV/VB w  r\        P                  P	                  WP                  V P
                  R7      pWA,           pTpV P                  V4      pV P                  V P                  V4      4      p\        P                  P	                  WP                  V P
                  R7      pV P                  V4      p\        P                  P	                  WP                  V P
                  R7      pWA,           pVP                  \        P                  8X  dK   \        P                  ! VP                  4      P                  R,
          p\        P                   ! W) VR7      pV# )a  
Args:
    hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`
    attention_mask (`torch.FloatTensor`): attention mask of size
        `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
r_   r#   r0   iè  )ÚminÚmax© )r–   r”   r   r8   r%   r2   r�   r˜   r›   r™   rœ   Údtyper'   Úfloat16Úfinfor£   Úclamp)r\   r_   r#   r;   ÚresidualÚ_Úclamp_values   &&&,   r+   r   Ú"AudioFlamingo3EncoderLayer.forwardÔ   sI  € ð !ˆØ×1Ñ1°-Ó@ˆØŸ>š>ñ 
Ø'ð
à)ð
ð ñ
Ñˆô
 Ÿ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-ÓdˆØ Õ0ˆà ˆØ×-Ñ-¨mÓ<ˆØ×*Ñ*¨4¯8©8°MÓ+BÓCˆÜŸ™×-Ñ-¨m×?VÑ?VÐae×anÑanÐ-ÓoˆØŸ™ Ó/ˆÜŸ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-ÓdˆØ Õ0ˆà×Ñ¤%§-¡-Ô/ÜŸ+š+ m×&9Ñ&9Ó:×>Ñ>ÀÕEˆKÜ!ŸKšK¨¸<È[ÔYˆMàÐr-   )	r™   r˜   r%   rB   r›   rœ   r�   r”   r–   )	rV   r‚   rƒ   r„   rP   r   r†   r‡   rˆ   r‰   s   @@r+   r‹   r‹   Á   s   ù‡ € ÷=ó =÷$"÷ "ð "r-   r‹   c                   óP   a € ] tR t^ùt o 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# )	ÚAudioFlamingo3PreTrainedModelÚmodelTr@   ra   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r�   rŽ   )r*   rK   s   "€r+   r,   Ú*AudioFlamingo3PreTrainedModel.__annotate__ù   s   ø‡ ‚ á Ñ ò r-   r¤   N)ÚaudioÚtext)rV   r‚   rƒ   r„   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_skip_keys_device_placementÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_attention_backendÚ__annotate_func__r†   r‡   ©rK   s   @r+   r®   r®   ù   sC   ø‡ € ð  ÐØ(ÐØ&*Ð#Ø2Ð3ÐØ#4Ð"5ÐØÐØ€NØ"&Ð÷ ƒ r-   r®   c                   ó4   a € ] tR tRt o RtRtV 3R ltRtV tR# )Ú!AudioFlamingo3ModelOutputWithPasti  z[
audio_hidden_states (`torch.FloatTensor`, *optional*):
    Projected audio hidden states.
Nc                óH   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   # )r   NÚaudio_hidden_states)r'   ÚFloatTensor)r*   rK   s   "€r+   r,   Ú.AudioFlamingo3ModelOutputWithPast.__annotate__  s   ø‡ ‚ ñ ×*Ñ*¨TÕ1Ñ8ò r-   r¤   )	rV   r‚   rƒ   r„   r…   rÁ   r¼   r†   r‡   r½   s   @r+   r¿   r¿     s   ø‡ € ñð
 59Ð÷ ƒ r-   r¿   zZ
    Base class for AudioFlamingo3 causal language model (or autoregressive) outputs.
    ©Úcustom_introc                   óH   a € ] tR tRt o RtRtRtRtRtRt	Rt
V 3R ltRtV tR# )Ú$AudioFlamingo3CausalLMOutputWithPasti  a2  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Language modeling loss (for next-token prediction).
logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
    Prediction scores of the language modeling head.
past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
    It is a [`~cache_utils.Cache`] instance.
audio_hidden_states (`torch.FloatTensor`, *optional*):
    Hidden states of the audio encoder after projection.
Nc                ó:  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[R,          ;R&   S[S[ P                  ,          R,          ;R&   S[S[ P                  ,          R,          ;R&   S[ P                  R,          ;R&   # )r   NÚlossÚlogitsra   r_   Ú
attentionsrÁ   )r'   rÂ   r   rd   )r*   rK   s   "€r+   r,   Ú1AudioFlamingo3CausalLMOutputWithPast.__annotate__  s˜   ø‡ ‚ ñ$ ×
Ñ
˜dÕ
"Ñ)ñ% ñ& ×Ñ Õ$Ñ+ñ' ñ( ˜T•\Ñ(ñ) ñ* ™×*Ñ*Õ+¨dÕ2Ñ9ñ+ ñ, ‘e×'Ñ'Õ(¨4Õ/Ñ6ñ- ñ. ×*Ñ*¨TÕ1Ñ8ò/ r-   r¤   )rV   r‚   rƒ   r„   r…   rÉ   rÊ   ra   r_   rË   rÁ   r¼   r†   r‡   r½   s   @r+   rÇ   rÇ     s2   ø‡ € ñ	ð &*€DØ'+€FØ$(€OØ59€MØ26€JØ48Ð÷/ ƒ r-   rÇ   zT
    The audio model from AudioFlamingo3 without any head or projection on top.
    c                   óÎ   a a€ ] tR tRt oRtRtRtR.tR]R]	/t
V3R lV 3R	 lltR
 tV3R lR ltV3R lR lt]]RV3R lR ll4       4       tV3R lR ltV3R ltRtVtV ;t# )ÚAudioFlamingo3Encoderi*  zQ
AudioFlamingo3 encoder: Whisper encoder, average pool (time/2), then LayerNorm.
Úinput_featuresr²   r‹   r_   rË   c                ó    <€ V ^8„  d   QhRS[ /# r�   ©r   )r*   rK   s   "€r+   r,   Ú"AudioFlamingo3Encoder.__annotate__?  s   ø€ ÷ ñ Ñ:ñ r-   c                ó€  <€ \         SV `  V4       VP                  V n        VP                  V n        VP
                  pVP                  V n        VP                  V n        VP                  '       d   \        P                  ! V4      MR V n        \        P                  ! V P                  V^^R7      V n        \        P                  ! W"^^^R7      V n        \        P                   ! V P                  V4      V n        V P"                  P%                  R4       \        P&                  ! \)        VP*                  4       Uu. uF  p\-        V4      NK  	  up4      V n        \        P0                  ! VP
                  4      V n        \        P4                  ! ^^R7      V n        RV n        V P;                  4        R# u upi )rg   )Úkernel_sizeÚpadding)rÔ   ÚstriderÕ   F)rÖ   N)rO   rP   r%   Úencoder_layerdropÚ	layerdropr‘   Únum_mel_binsÚmax_source_positionsÚscale_embeddingÚmathÚsqrtÚembed_scaler   ÚConv1dÚconv1Úconv2Ú	EmbeddingÚembed_positionsÚrequires_grad_Ú
ModuleListÚrangeÚencoder_layersr‹   ro   r•   Ú
layer_normÚ	AvgPool1dÚ
avg_poolerÚgradient_checkpointingÚ	post_init)r\   rH   rB   rª   rU   s   &&  €r+   rP   ÚAudioFlamingo3Encoder.__init__?  s>  ø€ Ü‰Ñ˜Ô Ø—~‘~ˆŒØ×1Ñ1ˆŒà—N‘Nˆ	Ø"×/Ñ/ˆÔØ$*×$?Ñ$?ˆÔ!Ø39×3I×3IÐ3Iœ4Ÿ9š9 YÔ/ÈsˆÔä—Y’Y˜t×0Ñ0°)ÈÐTUÔVˆŒ
Ü—Y’Y˜yÀÈ1ÐVWÔXˆŒ
ä!Ÿ|š|¨D×,EÑ,EÀyÓQˆÔØ×Ñ×+Ñ+¨EÔ2ä—m’mÔQVÐW]×WlÑWlÔQmÓ$nÑQmÈAÔ%?ÀÖ%GÑQmÑ$nÓoˆŒÜŸ,š, v§~¡~Ó6ˆŒäŸ,š, q°Ô3ˆŒà&+ˆÔ#à�‰Öùò %os   Å F;c                óP   € V P                  4        F
  pR Vn        K  	  R V n        R# )FN)Ú
parametersÚrequires_gradÚ_requires_grad)r\   Úparams   & r+   Ú_freeze_parametersÚ(AudioFlamingo3Encoder._freeze_parametersX  s#   € Ø—_‘_Ö&ˆEØ"'ˆEÖñ 'à#ˆÖr-   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rc   ©r   r&   )r*   rK   s   "€r+   r,   rÒ   ]  s   ø€ ÷ ñ ¡b§i¡iñ r-   c                ó   € V P                   # ©N©rà   )r\   s   &r+   Úget_input_embeddingsÚ*AudioFlamingo3Encoder.get_input_embeddings]  s   € Ø�z‰zÐr-   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r"   rö   )r*   rK   s   "€r+   r,   rÒ   `  s   ø€ ÷ ñ ©"¯)©)ñ r-   c                ó   € Wn         R # rø   rù   )r\   r"   s   &&r+   Úset_input_embeddingsÚ*AudioFlamingo3Encoder.set_input_embeddings`  s   € ØŽ
r-   c                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# )r   rÏ   Úinput_features_maskNrc   )r'   r(   rd   r   )r*   rK   s   "€r+   r,   rÒ   e  s<   ø€ ÷ 3
ñ 3
áŸ™ð3
ñ #Ÿ\™\¨DÕ0ð3
ñ
 
Ñ+Õ	+ñ3
r-   c                ó  € VP                   R,          ^,
          ^,          ^,           pVP                  R4      pV^,
          ^,          ^,           p\        P                  ! WAP                  R7      VR,          8  p\
        P                  P                  V P                  V4      4      p\
        P                  P                  V P                  V4      4      pVP                  ^ ^^4      pW`P                  P                  ,           p\
        P                  P                  WpP                  V P                  R7      p\        V P                   VVR7      pV P"                   FL  p	V P                  ;'       d$    \        P$                  ! . 4      V P&                  8  p
V
'       d   KD  V	! Wx4      pKN  	  VP                  ^ ^^4      pV P)                  V4      P                  ^ ^^4      pV P+                  V4      p\-        VR7      # )a(  
Args:
    input_features (`torch.FloatTensor` of shape `(batch_size, feature_size, sequence_length)`):
        Log-Mel features extracted from raw audio. Use the processor/feature extractor to compute and pad
        these features from waveform input.
    input_features_mask (`torch.FloatTensor` of shape `(batch_size, sequence_length)`, *optional*):
        Mask to avoid performing attention on padding feature indices. Mask values selected in `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.
©Údevicer0   )rH   Úinputs_embedsr#   )Úlast_hidden_stater3   ©ºNNNN)rh   Úsumr'   Úaranger  r   r8   Úgelurà   rá   Úpermuterã   Úweightr%   r2   r
   rH   ro   ÚrandrØ   rê   rè   r   )r\   rÏ   r  r;   Úseq_lenÚinput_features_lengthsr  r_   r#   ÚlayerÚdrops   &&&,       r+   r   ÚAudioFlamingo3Encoder.forwardc  s�  € ð( "×'Ñ'¨Õ+¨aÕ/°AÕ5¸Õ9ˆØ!4×!8Ñ!8¸Ó!<ÐØ"8¸1Õ"<ÀÕ!BÀQÕ!FÐÜ#Ÿlšl¨7×;PÑ;PÔQÐTjÐkrÕTsÑsÐô Ÿ™×*Ñ*¨4¯:©:°nÓ+EÓFˆÜŸ™×*Ñ*¨4¯:©:°mÓ+DÓEˆØ%×-Ñ-¨a°°AÓ6ˆð &×(<Ñ(<×(CÑ(CÕCˆÜŸ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-Ódˆä2Ø—;‘;Ø'Ø.ô
ˆð —[”[ˆEØ—=‘=×DÐD¤U§Z¢Z°£^°d·n±nÑ%DˆDß‘4Ù % mÓ D’ñ !ð &×-Ñ-¨a°°AÓ6ˆØŸ™¨Ó6×>Ñ>¸qÀ!ÀQÓGˆØŸ™¨Ó6ˆä)Ø+ô
ð 	
r-   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   Úinput_lengths)r'   Ú
LongTensor)r*   rK   s   "€r+   r,   rÒ   ›  s   ø€ ÷ -ñ -¹e×>NÑ>Nñ -r-   c                ód   € V^,
          ^,          ^,           pV^,
          ^,          ^,           pW3# )zc
Computes the output length of the convolutional layers and the output length of the audio encoder
r¤   )r\   r  Úoutput_lengthss   && r+   Ú _get_feat_extract_output_lengthsÚ6AudioFlamingo3Encoder._get_feat_extract_output_lengths›  s5   € ð '¨Õ*¨qÕ0°1Õ4ˆØ'¨!Õ+°Õ1°AÕ5ˆØÐ,Ð,r-   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r�   rÑ   )r*   rK   s   "€r+   r,   rÒ   *  s   ø‡ ‚ ñ (Ñ'ò r-   )rñ   rê   rà   rá   r%   rã   rÞ   rë   rè   rØ   ro   rÚ   rÙ   rø   )rV   r‚   rƒ   r„   r…   Úmain_input_namerµ   r·   r‹   r@   Ú_can_record_outputsrP   ró   rú   rþ   r   r   r   r  r¼   r†   r‡   rˆ   r‰   s   @@r+   rÎ   rÎ   *  s�   ù‡ € ñð '€OØÐØ5Ð6Ðð 	Ð3ØÐ-ðÐ÷
ó ò2$÷
ð ÷ð ð  Ø÷3
ñ 3
ó ó  ð3
÷l-ð -÷c … r-   rÎ   c                   óH   a a€ ] tR tRt oRtV3R lV 3R lltR tRtVtV ;t	# )Ú!AudioFlamingo3MultiModalProjectori¤  z‰
Audio adaptor (small MLP) that projects AudioFlamingo3Encoder features
to the LLM embedding space so they can replace `<sound>` tokens.
c                ó    <€ V ^8„  d   QhRS[ /# r�   rŽ   )r*   rK   s   "€r+   r,   Ú.AudioFlamingo3MultiModalProjector.__annotate__ª  s   ø€ ÷ 
ñ 
Ñ3ñ 
r-   c                óœ  <€ \         SV `  4        \        P                  ! VP                  P
                  VP                  P
                  VP                  R 7      V n        \        VP                  ,          V n        \        P                  ! VP                  P
                  VP                  P
                  VP                  R 7      V n        R# )rN   N)rO   rP   r   rW   Úaudio_configÚhidden_sizeÚtext_configÚprojector_biasÚlinear_1r   Úprojector_hidden_actÚactÚlinear_2rž   s   &&€r+   rP   Ú*AudioFlamingo3MultiModalProjector.__init__ª  sŽ   ø€ Ü‰ÑÔÜŸ	š	Ø×Ñ×+Ñ+¨V×-?Ñ-?×-KÑ-KÐRX×RgÑRgô
ˆŒô ˜&×5Ñ5Õ6ˆŒÜŸ	š	Ø×Ñ×*Ñ*¨F×,>Ñ,>×,JÑ,JÐQW×QfÑQfô
ˆŽr-   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rø   )r'  r)  r*  )r\   Úaudio_featuresr_   s   && r+   r   Ú)AudioFlamingo3MultiModalProjector.forward´  s2   € ØŸ™ nÓ5ˆØŸ™ Ó/ˆØŸ™ mÓ4ˆØÐr-   )r)  r'  r*  r�   r‰   s   @@r+   r  r  ¤  s   ù‡ € ñ÷

ó 
÷ò r-   r  z“
    The AudioFlamingo3 model (fine-tuned Whisper encoder, multi-modal projector, Qwen2 language model),
    without a language modeling head.
    c                   ó®   a a€ ] tR tRt oRtRtRtV 3R lt]]	! RR7      V3R lR l4       4       t
V3R lR	 lt]]	RV3R
 lR ll4       4       tRtVtV ;t# )ÚAudioFlamingo3Modeli»  Nc                óú   <€ \         SV `  V4       \        P                  ! VP                  4      V n        \        P                  ! VP                  4      V n        \        V4      V n	        V P                  4        R # rø   )rO   rP   r   Úfrom_configr#  Úaudio_towerr%  Úlanguage_modelr  Úmulti_modal_projectorrì   rž   s   &&€r+   rP   ÚAudioFlamingo3Model.__init__Æ  sY   ø€ Ü‰Ñ˜Ô Ü$×0Ò0°×1DÑ1DÓEˆÔÜ'×3Ò3°F×4FÑ4FÓGˆÔÜ%FÀvÓ%NˆÔ"Ø�‰Ör-   zŸThis method is used to get the audio embeddings from input features (a log mel spectrogram), meaning inferring the audio encoder and the multi-modal projector.rÄ   c          	      óz   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[S[,          /# )r   rÏ   r  r;   rc   )r'   rÂ   r(   r   r   rd   r   )r*   rK   s   "€r+   r,   Ú AudioFlamingo3Model.__annotate__Ñ  sI   ø€ ÷ ñ á×)Ñ)ðñ #Ÿ\™\ðñ Ñ+Õ,ð	ñ
 
Ñ+Õ	+ñr-   c                óÔ  € V P                   ! V3RVRR/VB pV P                  VP                  4      pVP                  R4      P	                  \
        P                  4      pV P                   P                  V4      w  rx\
        P                  ! VP                  ^,          VP                  R7      R,          VR,          8  p	WYP	                  VP                  4      ,          Vn        V# )a	  
input_features (`torch.FloatTensor`):
    Float values of mel features extracted from the raw speech waveform.
input_features_mask (`torch.Tensor` of shape `(batch_size, feature_sequence_length)`):
    Mask to avoid performing attention on padded feature indices.
r  Úreturn_dictTr  r3   )Nr  r  )r3  r5  r  r	  Útor'   Úlongr  r
  rh   r  Úpooler_output)
r\   rÏ   r  r;   Úaudio_outputÚaudio_embedsr  rª   Úpost_lengthsÚ
valid_masks
   &&&,      r+   Úget_audio_featuresÚ&AudioFlamingo3Model.get_audio_featuresÍ  sÓ   € ð" ×'Ò'Øñ
Ø0Cð
ØQUð
ØY_ñ
ˆð ×1Ñ1°,×2PÑ2PÓQˆð ,×/Ñ/°Ó3×6Ñ6´u·z±zÓBˆØ×*Ñ*×KÑKÈMÓZ‰ˆÜ—\’\ ,×"4Ñ"4°QÕ"7À×@SÑ@SÔTÐU\Õ]Ð`lÐmtÕ`uÑuˆ
Ø%1·-±-À×@SÑ@SÓ2TÕ%UˆÔ"àÐr-   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   Ú	input_idsr  r-  )r'   r  rÂ   )r*   rK   s   "€r+   r,   r8  ë  s7   ø€ ÷ "ñ "Ù×)Ñ)ð"Ù:?×:KÑ:Kð"Ù]b×]nÑ]nñ"r-   c           
     ó@  € Vfo   W P                  4       ! \        P                  ! RV P                  P                  \        P
                  VP                  R7      4      8H  pVP                  R4      pMWP                  P                  8H  pVP                  4       pVP                  ^ ,          pVP                  R4      P                  V4      P                  VP                  4      p\        W$,          P                  4       VP                  4       8H  RV RV 24       V# )z×
Obtains multimodal placeholder mask from `input_ids` or `inputs_embeds`, and checks that the placeholder token count is
equal to the length of multimodal features. If the lengths are different, an error is raised.
)r¥   r  z6Audio features and audio tokens do not match, tokens: z, features: r¤   r3   )rú   r'   ÚfullrH   Úaudio_token_idr<  r  Úallr	  rh   Ú	unsqueezeÚ	expand_asr;  r   Únumel)r\   rE  r  r-  Úspecial_audio_maskÚn_audio_tokensÚn_audio_featuress   &&&&   r+   Úget_placeholder_maskÚ(AudioFlamingo3Model.get_placeholder_maskë  sþ   € ð ÒØ!.×2KÑ2KÔ2MÜ—
’
˜2˜tŸ{™{×9Ñ9ÄÇÁÐTa×ThÑThÔió3ñ "Ðð "4×!7Ñ!7¸Ó!;Ñà!*¯k©k×.HÑ.HÑ!HÐà+×/Ñ/Ó1ˆØ)×/Ñ/°Õ2ÐØ/×9Ñ9¸"Ó=×GÑGÈÓV×YÑYÐZg×ZnÑZnÓoÐÜØÕ-×3Ñ3Ó5¸×9MÑ9MÓ9OÑOØDÀ^ÐDTÐT`ÐaqÐ`rÐsô	
ð "Ð!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[ P                  R,          RS[R,          RS[ P                  R,          R	S[R,          R
S[S[,          RS[S[	,          /
# )r   rE  NrÏ   r  r#   Úposition_idsra   r  Ú	use_cacher;   rc   )
r'   r  rÂ   r(   r   rJ   r   r   rd   r¿   )r*   rK   s   "€r+   r,   r8    sÁ   ø€ ÷ .
ñ .
á×#Ñ# dÕ*ð.
ñ ×)Ñ)¨DÕ0ð.
ñ #Ÿ\™\¨DÕ0ð	.
ñ
 Ÿ™ tÕ+ð.
ñ ×&Ñ&¨Õ-ð.
ñ  �ð.
ñ ×(Ñ(¨4Õ/ð.
ñ ˜$•;ð.
ñ Ñ+Õ,ð.
ñ 
Ñ2Õ	2ñ.
r-   c	                ó¼  € Vf   V P                  4       ! V4      pRp
Vej   Vef   V P                  W#RR7      P                  p
V P                  WV
R7      pVP	                  WºP                  VP                  VP                  4      4      pV P                  ! RRVRVRVRVR	V/V	B p\        VP                  VP                  VP                  VP                  V
R
7      # )z›
input_features_mask (`torch.Tensor` of shape `(batch_size, feature_sequence_length)`):
    Mask to avoid performing attention on padding feature indices.
NT)r:  )r  r-  r  r#   rS  ra   rT  )r  ra   r_   rË   rÁ   r¤   )rú   rB  r=  rP  Úmasked_scatterr;  r  r¥   r4  r¿   r  ra   r_   rË   )r\   rE  rÏ   r  r#   rS  ra   r  rT  r;   r?  rM  Úoutputss   &&&&&&&&&,   r+   r   ÚAudioFlamingo3Model.forward  s  € ð$ Ò Ø ×5Ñ5Ô7¸	ÓBˆMàˆØÒ%¨)Ò*?Ø×2Ñ2°>ÐdhÐ2Ói×wÑwˆLð "&×!:Ñ!:ØÀ|ð ";ó "Ðð *×8Ñ8Ø"§O¡O°M×4HÑ4HÈ-×J]ÑJ]Ó$^óˆMð ×%Ò%ñ 
Ø'ð
à)ð
ð &ð
ð ,ð	
ð
  ð
ð ñ
ˆô 1Ø%×7Ñ7Ø#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø ,ô
ð 	
r-   )r3  r4  r5  )NNNNNNNN)rV   r‚   rƒ   r„   Ú_tp_planÚ_pp_planÚ_keep_in_fp32_modules_strictrP   r   r   rB  rP  r   r†   r‡   rˆ   r‰   s   @@r+   r0  r0  »  ss   ù‡ € ð €HØ€HØ#'Ð õð Ùð wô÷óó ð÷4"ð "ð0 Ø÷.
ñ .
ó ó ÷.
ð .
r-   r0  z†
    The AudioFlamingo3 model which consists of a fine-tuned Whisper encoder, a multi-modal projector and a Qwen2 language model.
    c                   óf   a a€ ] tR tRt oRtV 3R ltR t]]RV3R lR ll4       4       t	Rt
VtV ;t# )	Ú&AudioFlamingo3ForConditionalGenerationi6  Nc                óò   <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  P                  VP                  P                  R R7      V n	        V P                  4        R# )FrN   N)rO   rP   r0  r¯   r   rW   r%  r$  Ú
vocab_sizeÚlm_headrì   rž   s   &&€r+   rP   Ú/AudioFlamingo3ForConditionalGeneration.__init__>  sS   ø€ Ü‰Ñ˜Ô Ü(¨Ó0ˆŒ
Ü—y’y ×!3Ñ!3×!?Ñ!?À×ASÑAS×A^ÑA^ÐejÔkˆŒØ�‰Ör-   c                ó<   € V P                   P                  ! W3/ VB # rø   )r¯   rB  )r\   rÏ   r  r;   s   &&&,r+   rB  Ú9AudioFlamingo3ForConditionalGeneration.get_audio_featuresD  s   € Ø�z‰z×,Ò,¨^Ñ[ÐTZÑ[Ð[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[ P                  R,          RS[R,          RS[ P                  R,          R	S[ P                  R,          R
S[R,          RS[S[ P                  ,          RS[S[,          RS[	S[
,          /# )r   rE  NrÏ   r  r#   rS  ra   r  ÚlabelsrT  Úlogits_to_keepr;   rc   )r'   r  rÂ   r(   r   rJ   rI   r   r   rd   rÇ   )r*   rK   s   "€r+   r,   Ú3AudioFlamingo3ForConditionalGeneration.__annotate__I  sé   ø€ ÷ :
ñ :
á×#Ñ# dÕ*ð:
ñ ×)Ñ)¨DÕ0ð:
ñ #Ÿ\™\¨DÕ0ð	:
ñ
 Ÿ™ tÕ+ð:
ñ ×&Ñ&¨Õ-ð:
ñ  �ð:
ñ ×(Ñ(¨4Õ/ð:
ñ × Ñ  4Õ'ð:
ñ ˜$•;ð:
ñ ™eŸl™lÕ*ð:
ñ Ñ+Õ,ð:
ñ 
Ñ5Õ	5ñ:
r-   c                óÈ  € V P                   ! RRVRVRVRVRVRVRVRV	/VB pVP                  p\        V
\        4      '       d   \	        V
) R	4      MT
pV P                  VR
VR
3,          4      pR	pVe7   V P                  ! RRVRVRV P                  P                  P                  /VB p\        VVVP                  VP                  VP                  VP                  R7      # )aY  
input_features_mask (`torch.Tensor` of shape `(batch_size, feature_sequence_length)`):
    Mask to avoid performing attention on padding feature indices.
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss.

Example:

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

>>> model_id = "nvidia/audio-flamingo-3-hf"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = AudioFlamingo3ForConditionalGeneration.from_pretrained(model_id, device_map="auto")
```rE  rÏ   r  r#   rS  ra   r  rT  Nr  rÊ   re  r_  )rÉ   rÊ   ra   r_   rË   rÁ   r¤   )r¯   r  rj   rI   Úslicer`  Úloss_functionrH   r%  r_  rÇ   ra   r_   rË   rÁ   )r\   rE  rÏ   r  r#   rS  ra   r  re  rT  rf  r;   rW  r_   Úslice_indicesrÊ   rÉ   s   &&&&&&&&&&&,     r+   r   Ú.AudioFlamingo3ForConditionalGeneration.forwardG  s1  € ð> —*’*ñ 

Øð

à)ð

ð !4ð

ð *ð	

ð
 &ð

ð ,ð

ð (ð

ð  ð

ð ñ

ˆð  ×1Ñ1ˆÜ8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%ñ ØðØ&,ðØ9=¿¹×9PÑ9P×9[Ñ9[ðØ_eñˆDô 4ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø '× ;Ñ ;ô
ð 	
r-   )r`  r¯   )
NNNNNNNNNr   )rV   r‚   rƒ   r„   Ú_tied_weights_keysrP   rB  r   r   r   r†   r‡   rˆ   r‰   s   @@r+   r]  r]  6  s>   ù‡ € ð Ðõò\ð Ø÷:
ñ :
ó ó ÷:
ð :
r-   r]  )Nrf   )r]  r®   rÎ   r0  );rÜ   Úcollections.abcr   Údataclassesr   r'   r   Úactivationsr   Úcache_utilsr   r   Ú
generationr	   Úmasking_utilsr
   Úmodeling_flash_attention_utilsr   Úmodeling_layersr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úautor   Úconfiguration_audioflamingo3r   r   Ú
get_loggerrV   rS   r>   r&   r@   r‹   r®   r¿   rÇ   rÎ   r  r0  r]  Ú__all__r¤   r-   r+   Ú<module>r€     s{  ðó, Ý $Ý !ã Ý å !ß 5Ý )Ý 6Ý BÝ 9ß `Ñ `ß FÝ &ß jÕ jÝ 7Ý 5Ý ß [ð 
×	Ò	˜HÓ	%€÷%ô4t)˜bŸi™iô t)ôn5Ð!;ô 5ðp ô	' Oó 	'ó ð	'ð ô9Ð(?ó 9ó ð9ñ ðôð
 ô9¨;ó 9ó óð9ñ( ðôô
r-Ð9ó r-óð
r-ôj¨¯	©	ô ñ. ðôôr
Ð7ó r
óðr
ñj ðôô
H
Ð-JÈOó H
óð
H
òV‚r-   