+
    UV-jz  ã                   óî   € ^ RI Ht ^ RIHt ^ RIHt ^RIHt RR R llt	 ! R R]P                  4      t ! R R	]P                  4      t ! R
 R]P                  4      t ! R R]P                  4      tR# )é    )ÚOptionalN©ÚAudioConfigc                ó$   € V ^8„  d   QhR\         /# )é   Úkernel_size©Úint)Úformats   "Ún/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/minicpmo/audio.pyÚ__annotate__r   	   s   € ÷ #ñ #´ñ #ó    c                óV   € V P                   p\        V4      ^8w  d   R# V^,          V8H  # )zDReturn True when weights are in MLX Conv1d layout [out, kernel, in].F)ÚshapeÚlen)Úarrr   r   s   && r   Úcheck_conv1d_weight_shaper   	   s(   € à�I‰I€EÜ
ˆ5ƒz�Q„ÙØ��8�{Ñ"Ð"r   c                   óT   a a€ ] tR t^t oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚAudioAttentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfigr   )r   Ú__classdict__s   "€r   r   ÚAudioAttention.__annotate__   s   ø€ ÷ Mñ M™{ñ Mr   c                ó  <€ \         SV `  4        VP                  V n        VP                  V n        V P                  V P
                  ,          V n        V P                  V P
                  ,          V P                  8w  d'   \        R V P                   RV P
                   R24      hV P                  R,          V n        \        P                  ! V P                  V P                  RR7      V n        \        P                  ! V P                  V P                  RR7      V n        \        P                  ! V P                  V P                  RR7      V n        \        P                  ! V P                  V P                  RR7      V n        R# )zembed_dim (z") must be divisible by num_heads (z).F©ÚbiasTNg      à¿)ÚsuperÚ__init__Úd_modelÚ	embed_dimÚencoder_attention_headsÚ	num_headsÚhead_dimÚ
ValueErrorÚscaleÚnnÚLinearÚk_projÚv_projÚq_projÚout_proj©Úselfr   Ú	__class__s   &&€r   r   ÚAudioAttention.__init__   s  ø€ Ü‰ÑÔØŸ™ˆŒØ×7Ñ7ˆŒØŸ™¨$¯.©.Õ8ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØ˜dŸn™nÐ-Ð-OÐPT×P^ÑP^ÐO_Ð_aÐbóð ð —]‘] DÕ(ˆŒ
ô —i’i §¡°·±ÀUÔKˆŒÜ—i’i §¡°·±ÀTÔJˆŒÜ—i’i §¡°·±ÀTÔJˆŒÜŸ	š	 $§.¡.°$·.±.ÀtÔLˆŽr   c                óx   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[ P                  /# ©r   Úhidden_statesÚattention_maskÚreturn©ÚmxÚarrayr   )r   r   s   "€r   r   r   #   s:   ø€ ÷ )*ñ )*á—x‘xð)*ñ !¡§¡Õ*ð)*ñ 
�‰ñ	)*r   c           	     ó¬  € VP                   w  r4pV P                  V4      pV P                  V4      pV P                  V4      pVP	                  W4V P
                  V P                  4      P                  ^ ^^^4      pVP	                  W4V P
                  V P                  4      P                  ^ ^^^4      pVP	                  W4V P
                  V P                  4      P                  ^ ^^^4      pRp	Vev   \        P                  ! V4      p
\        P                  ! V
R,          \        P                  ! RVP                  R7      \        P                  ! RVP                  R7      4      p	\        P                  P                  VVVV P                  V	R7      pVP                  ^ ^^^4      P	                  W4V P                   4      pV P#                  V4      # )r   N©Údtypeg        )r&   Úmask)ºNNNNNr=   g    eÍÍÁ)r   r+   r)   r*   Úreshaper#   r$   Ú	transposer7   Úlogical_notÚwherer8   r;   ÚfastÚscaled_dot_product_attentionr&   r!   r,   )r.   r3   r4   Ú
batch_sizeÚseq_lenÚ_Úquery_statesÚ
key_statesÚvalue_statesr<   ÚinvalidÚattn_outputs   &&&         r   Ú__call__ÚAudioAttention.__call__#   s�  € ð
 "/×!4Ñ!4Ñˆ
˜Qà—{‘{ =Ó1ˆØ—[‘[ Ó/ˆ
Ø—{‘{ =Ó1ˆà#×+Ñ+Ø §¡°·±ó
ç
‰)�A�q˜!˜QÓ
ð 	ð  ×'Ñ'Ø §¡°·±ó
ç
‰)�A�q˜!˜QÓ
ð 	ð $×+Ñ+Ø §¡°·±ó
ç
‰)�A�q˜!˜QÓ
ð 	ð ˆØÒ%ä—n’n ^Ó4ˆGÜ—8’8ØÐ(Õ)Ü—’˜ \×%7Ñ%7Ô8Ü—’˜ L×$6Ñ$6Ô7óˆDô —g‘g×:Ñ:ØØØØ—*‘*Øð ;ó 
ˆð "×+Ñ+¨A¨q°!°QÓ7×?Ñ?Ø §¡ó
ˆð �}‰}˜[Ó)Ð)r   )r!   r$   r)   r#   r,   r+   r&   r*   ©N©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rL   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r/   r   s   @@r   r   r      s    ù‡ € ÷Mó M÷")*÷ )*ò )*r   r   c                   óT   a a€ ] tR t^Ot oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚAudioEncoderLayerc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚAudioEncoderLayer.__annotate__P   s   ø€ ÷ 	'ñ 	'™{ñ 	'r   c                ó  <€ \         SV `  4        \        P                  ! VP                  VP
                  R 7      V n        \        P                  ! VP                  VP
                  R 7      V n        \        V4      V n	        \        P                  ! VP                  VP                  RR7      V n        \        P                  ! VP                  VP                  RR7      V n        \        P                  ! 4       V n        R# )©ÚepsTr   N)r   r   r'   Ú	LayerNormr    Úlayer_norm_epsÚself_attn_layer_normÚfinal_layer_normr   Ú	self_attnr(   Úencoder_ffn_dimÚfc1Úfc2ÚGELUÚactivation_fnr-   s   &&€r   r   ÚAudioEncoderLayer.__init__P   s£   ø€ Ü‰ÑÔÜ$&§L¢LØ�N‰N × 5Ñ 5ô%
ˆÔ!ô !#§¢¨V¯^©^À×AVÑAVÔ WˆÔÜ'¨Ó/ˆŒÜ—9’9˜VŸ^™^¨V×-CÑ-CÈ$ÔOˆŒÜ—9’9˜V×3Ñ3°V·^±^È$ÔOˆŒÜŸWšW›YˆÖr   c                óx   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[ P                  /# r2   r6   )r   r   s   "€r   r   r[   [   s:   ø€ ÷ ñ á—x‘xðñ !¡§¡Õ*ðñ 
�‰ñ	r   c                óú   € TpV P                  V4      pV P                  W4      pW1,           pTpV P                  V4      pV P                  V4      pV P	                  V4      pV P                  V4      pW1,           pV# rN   )ra   rc   rb   re   rh   rf   )r.   r3   r4   Úresiduals   &&& r   rL   ÚAudioEncoderLayer.__call__[   s~   € ð
 !ˆØ×1Ñ1°-Ó@ˆØŸ™ }ÓEˆØ Õ0ˆà ˆØ×-Ñ-¨mÓ<ˆØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØŸ™ Ó/ˆØ Õ0ˆØÐr   )rh   re   rf   rb   rc   ra   rN   rO   rW   s   @@r   rY   rY   O   s   ù‡ € ÷	'ó 	'÷÷ ò r   rY   c                   óP   a a€ ] tR t^nt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚAudioProjectorc                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   Úin_dimÚout_dimr	   )r   r   s   "€r   r   ÚAudioProjector.__annotate__o   s   ø€ ÷ >ñ >™sð >©Sñ >r   c                óÌ   <€ \         SV `  4        \        P                  ! WR R7      V n        \        P
                  ! 4       V n        \        P                  ! W"R R7      V n        R# )Tr   N)r   r   r'   r(   Úlinear1ÚReLUÚreluÚlinear2)r.   rq   rr   r/   s   &&&€r   r   ÚAudioProjector.__init__o   s?   ø€ Ü‰ÑÔÜ—y’y °tÔ<ˆŒÜ—G’G“IˆŒ	Ü—y’y ¸Ô=ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úaudio_featuresr5   )r7   r8   )r   r   s   "€r   r   rs   u   s#   ø€ ÷ ñ ¡r§x¡xð ±B·H±Hñ r   c                óh   € V P                  V P                  V4      4      pV P                  V4      pV# rN   )rw   ru   rx   )r.   r{   r3   s   && r   rL   ÚAudioProjector.__call__u   s-   € ØŸ	™	 $§,¡,¨~Ó">Ó?ˆØŸ™ ]Ó3ˆØÐr   )ru   rx   rw   rO   rW   s   @@r   ro   ro   n   s   ù‡ € ÷>ó >÷÷ ð r   ro   c                   óZ   a a€ ] tR t^{t oV3R lV 3R lltRV3R lR lltR tRtVtV ;t	# )Ú
AudioModelc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r   ÚAudioModel.__annotate__|   s   ø€ ÷ Rñ R™{ñ Rr   c           	     óX  <€ \         SV `  4        VP                  V n        Wn        \        P
                  ! VP                  VP                  ^^^RR7      V n        \        P
                  ! VP                  VP                  ^^^RR7      V n	        \        P                  ! VP                  VP                  4      V n        \        VP                  4       Uu. uF  p\        V4      NK  	  upV n        \        P"                  ! VP                  VP$                  R7      V n        R# u upi )é   T)Úin_channelsÚout_channelsr   ÚstrideÚpaddingr   r]   N)r   r   Ú
model_typer   r'   ÚConv1dÚnum_mel_binsr    Úconv1Úconv2Ú	EmbeddingÚmax_source_positionsÚembed_positionsÚrangeÚencoder_layersrY   Úlayersr_   r`   Ú
layer_norm)r.   r   rF   r/   s   && €r   r   ÚAudioModel.__init__|   sâ   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒØŒä—Y’YØ×+Ñ+ØŸ™ØØØØô
ˆŒ
ô —Y’YØŸ™ØŸ™ØØØØô
ˆŒ
ô  "Ÿ|š|¨F×,GÑ,GÈÏÉÓXˆÔÜ:?À×@UÑ@UÔ:VÓWÑ:V°QÔ(¨Ö0Ñ:VÑWˆŒÜŸ,š, v§~¡~¸6×;PÑ;PÔQˆŽùò Xs   ÃD'c                óx   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[ P                  /# )r   Úinput_featuresÚfeature_lengthsr5   r6   )r   r   s   "€r   r   r�   •   s:   ø€ ÷ ñ áŸ™ðñ "¡"§(¡(Õ+ðñ 
�‰ñ	r   c                óê  € VP                   ^8w  d   \        RVP                   24      hVP                  ^ ^^4      p\        P
                  ! V P                  V4      4      p\        P
                  ! V P                  V4      4      pVP                  w  rEp\        P                  ! V\        P                  R7      p\        P                  ! VR,          WE34      pW0P                  V4      ,           pRpVeP   V^,
          ^,          ^,           p	\        P                  ! V\        P                  R7      R,          p
W©R,          8  pV P                   F  pV! W84      pK  	  V P                  V4      pV# )rƒ   z4Expected input_features with 3 dims [B, 80, T], got r:   N)Nr=   )r=   N)Úndimr%   r   r?   r'   Úgelur‹   rŒ   r7   ÚarangeÚint32Úbroadcast_tor�   r’   r“   )r.   r–   r—   r3   rD   rE   rF   Úposition_idsr4   Úconv_lengthsÚ	token_idsÚlayers   &&&         r   rL   ÚAudioModel.__call__•   s4  € ð ×Ñ !Ô#ÜØFÀ~×G[ÑG[ÐF\Ð]óð ð '×0Ñ0°°A°qÓ9ˆÜŸš §
¡
¨=Ó 9Ó:ˆÜŸš §
¡
¨=Ó 9Ó:ˆà!.×!4Ñ!4Ñˆ
˜Qä—y’y ´·±Ô9ˆÜ—’ |°GÕ'<¸zÐ>SÓTˆØ%×(<Ñ(<¸\Ó(JÕJˆàˆØÒ&Ø,¨qÕ0°QÕ6¸!Õ;ˆLÜŸ	š	 '´·±Ô:¸7ÕCˆIØ&°gÕ)>Ñ>ˆNà—[”[ˆEÙ! -Ó@ŠMñ !àŸ™¨Ó6ˆØÐr   c                ó  € / pVP                  4        Fu  w  r4VP                  R 4      '       g   VP                  R4      '       d?   \        VP                  4      ^8X  d%   \	        V4      '       g   VP                  ^ ^^4      pWBV&   Kw  	  V# )zconv1.weightzconv2.weight)ÚitemsÚendswithr   r   r   r?   )r.   ÚweightsÚsanitized_weightsÚkeyÚvalues   &&   r   ÚsanitizeÚAudioModel.sanitizeµ   su   € ØÐØ!Ÿ-™-ž/‰JˆCØ�|‰|˜N×+Ò+¨s¯|©|¸N×/KÒ/Kä�u—{‘{Ó# qÔ(Ô1JÈ5×1QÒ1QØ!ŸO™O¨A¨q°!Ó4�EØ%*˜cÓ"ñ *ð !Ð r   )r   r‹   rŒ   r�   r“   r’   rˆ   rN   )
rP   rQ   rR   rS   r   rL   rª   rT   rU   rV   rW   s   @@r   r   r   {   s&   ù‡ € ÷Ró R÷2ò ÷@!ò !r   r   )rƒ   )Útypingr   Úmlx.coreÚcorer7   Úmlx.nnr'   r   r   r   ÚModuler   rY   ro   r   © r   r   Ú<module>r²      sY   ðÝ å Ý å ÷#ô;*�R—Y‘Yô ;*ô|˜Ÿ	™	ô ô>
�R—Y‘Yô 
ôB!�—‘ö B!r   