
    h-=                     6   S SK r S SKrS SKrS SKJr  S SKJr  \ R                  " \	5      r
  S(S\S\R                  S\S\S\4
S	 jjr S)S\S\R                  S\S\S
\4
S jjr S*S\S\R                  S\S\4S jjr S*S\S\R                  S\S\S\4
S jjrS\\\R(                  \R(                  4      S\\\R(                  \R(                  4      4S jrS\\\R(                  \R(                  \R(                  \R(                  4      4S jr  S+S\S\R                  S\S
\4S jjr S*S\R                  S\S
\4S jjr S*S\R                  S\S
\4S jjr S*S\S\R                  S\S\S\4
S jjr  S(S\S\R                  S\S\S\4
S jjr   S,S\S\R                  S\S\S\S\S
\4S jjr  S-S\S\R                  S\S\S\S\S
\4S  jjr  S-S\S\R                  S\S\S\S\S\S\S
\4S! jjrS"\S#\4S$ jr S\S%\\!   S&\\!   4S' jr"g).    N)WhisperConfig)InferenceSessionconfigdevice
batch_sizesequence_lengthuse_fp16c                     U(       a  [         R                  O[         R                  n[         R                  " X R                  X1US9nU$ Nr   dtype)torchfloat16float32randnnum_mel_bins)r   r   r   r   r	   torch_dtypeaudio_featuress          p/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/transformers/models/whisper/whisper_inputs.pyget_sample_audio_featuresr   !   s4     $,%--K[[-@-@/hstN    	use_int32c                     U(       a  [         R                  O[         R                  n[         R                  " SU R                  X#4XS9nU$ )Nr   )lowhighsizer   r   )r   int32int64randint
vocab_size)r   r   r   r   r   r   decoder_input_idss          r   get_sample_decoder_input_idsr"   /   s?     "+%++KF%%Z,IRX r   c                     U(       a  [         R                  O[         R                  n[         R                  " X R                  U R
                  XS9nU$ r   )r   r   r   r   max_source_positionsd_model)r   r   r   r	   r   encoder_hidden_statess         r    get_sample_encoder_hidden_statesr'   ?   s=     $,%--K!KK// ! r   past_seq_lenc                    U R                   nU R                  U-  nU R                  nU(       a  [        R                  O[        R
                  n[        U R                  5       V	s/ s H/  n	[        R                  " X%X6XS9[        R                  " X%X6XS94PM1     n
n	[        U R                  5       V	s/ s H/  n	[        R                  " X%XvXS9[        R                  " X%XvXS94PM1     nn	[        X5      $ s  sn	f s  sn	f r   )
decoder_attention_headsr%   r$   r   r   r   rangedecoder_layersrandflatten_past_key_values)r   r   r   r(   r	   	num_heads	head_sizer$   r   _self_attention_kv_cachescross_attention_kv_cachess               r   get_sample_past_key_valuesr4   O   s     ..I)+I##  $,%--K v,,- 
 .A JJzlfhJJzlfh	
 .    v,,-!
 .A JJz.BV\pJJz.BV\p	
 .  ! ##;WW !s   &6C856C=self_attn_kv_cachescross_attn_kv_cachesc                 d    / n[        XSS9 H  u  u  p4u  pVX4XV4nUR                  U5        M!     U$ )NF)strict)zipappend)r5   r6   past_key_valuesself_k_cacheself_v_cachecross_k_cachecross_v_cachelayer_kv_cachess           r   r.   r.   o   sL     OHK%ID$&D} (}T/	I
 r   	kv_cachesc                     / / p!U  HJ  u  p4pVUR                  U5        UR                  U5        UR                  U5        UR                  U5        ML     X4$ N)r:   )rA   r5   r6   r<   r=   r>   r?   s          r   group_past_key_valuesrD   ~   s`     13B-DM@M""<0""<0##M2##M2	 EN
 44r   num_alignment_headsc                     U(       a  [         R                  O[         R                  n[         R                  " US4XS9nU$ )N   r   )r   r   r   ones)r   r   rE   r   r   alignment_headss         r   get_sample_alignment_headsrJ      s1     "+%++Kjj"5q!9&\Or   sot_sequence_lengthc                     U(       a  [         R                  O[         R                  n[         R                  " U/XS9nU$ r   r   r   r   tensor)r   rK   r   r   
sot_lengths        r   get_sample_sot_sequence_lengthrP      s/    
 "+%++K23FVJr   segment_lengthc                     U(       a  [         R                  O[         R                  n[         R                  " U/XS9nU$ r   rM   )r   rQ   r   r   segment_sizes        r   get_sample_segment_lengthrT      s.    
 "+%++K<< 0SLr   c                     U R                   nU(       a  [        R                  O[        R                  n[	        U R
                  5       Vs/ s H#  n[        R                  " X%X0R                  XS9PM%     nnU$ s  snf r   )r*   r   r   r   r+   r,   r-   r$   )	r   r   r   r   r	   r/   r   r1   QKss	            r   get_sample_QKsrW      st     ..I#+%--K
 v,,-	 .A 	

?4O4OX^	
 .	   Js   *A9c                 $    [        XX#U5      nSU0$ )Nr   )r   )r   r   r   r   r	   r   s         r   get_sample_encoder_inputsrY      s     /vz\deNn--r   decoder_sequence_lengthencoder_sequence_lengthc                 >    [        XX$U5      n[        XX#U5      nXxS.$ )N)r   r!   )r   r"   )	r   r   r   rZ   r[   r	   r   r   r!   s	            r   &get_sample_encoder_decoder_init_inputsr]      s,     /vzdlmN4VZjst,UUr   past_sequence_lengthc                 Z    [        XX$U5      n[        XX%5      n[        XX#U5      n	UUU	S.$ )N)r!   r&   r;   )r"   r'   r4   )
r   r   r   r^   r   r	   r   r!   r&   r;   s
             r   get_sample_decoder_inputsr`      sC     5VZbkl<VZb0cklO.!6* r   c	                 n    [        XXH5      n	[        X5      n[        X5      n[        XX#U5      n
U	UUU
S.$ )N)rI   rK   rQ   rV   )rJ   rP   rT   rW   )r   r   r   r   rE   rK   rQ   r	   r   rI   rV   s              r   get_sample_jump_times_inputsrb      sJ     1AT`O8U.vFN
h
OC*2(	 r   inputsmodelc                    Su  p#Su  pEpgSu  pSU ;   a"  [        U S   5      u  p#US   R                  u  pEpg0 n
[        [        S UR	                  5       5      5      nSU;   nU GH  nUS;   a3  U S	   R                  5       R                  5       R                  5       X'   M=  US
:X  a3  U S
   R                  5       R                  5       R                  5       X'   Mv  US;   a3  U S   R                  5       R                  5       R                  5       X'   M  SU;   d  SU;   a  UR                  S5      R                  5       R                  5       R                  5       nU(       a8  [        R                  " XEX4UR                  S9nXS U2S U2S U2S U24'   XU'   GM5  XU'   GM<  SU;   d  SU;   aB  UR                  S5      R                  5       R                  5       R                  5       nXU'   GM  US:X  a)  [        R                  " U/[        R                  S9X'   GM  US:X  a*  [        R                  " XHU	4[        R                  S9X'   GM  US:X  a4  U S   R                  5       R                  5       R                  5       X'   GM#  US:X  a4  U S   R                  5       R                  5       R                  5       X'   GM]  US:X  a4  U S   R                  5       R                  5       R                  5       X'   GM  SU;   aC  U S   R                  S5      R                  5       R                  5       R                  5       X'   GM  [        SU 35      e   U
$ )N)NN)r   r   r   r   )   i  r;   r   c                     U R                   $ rC   )name)is    r   <lambda>(convert_inputs_for_ort.<locals>.<lambda>  s    affr   cache_indirection>   r   encoder_input_idsr   r&   >   	input_idsr!   r!   past_key_selfpast_value_self)r   past_key_crosspast_value_crossr^   rI   rK   rQ   cross_qkrV   zUnknown name not recognized: )rD   shapelistmap
get_inputsdetachcpunumpypopnpzerosr   arrayr   
ValueError)rc   rd   r5   r6   r   r/   r(   r0   	num_beamsmax_seq_len
ort_inputsmodel_inputsuse_buffer_sharingrh   orig_kv_cachenew_kv_caches                   r   convert_inputs_for_ortr     s     1;-5?2J<#IF"6KFSdLe6f3	9LQ9O9U9U6
|J,e.>.>.@ABL,<::%&67>>@DDFLLNJ,,%&=>EEGKKMSSUJ77%&9:AACGGIOOQJ$(9T(A/33A6==?CCEKKMM!!xx(W_l_r_rsS`[j[*9*m|mZiZOP#/4 #04 %);t)C044Q7>>@DDFLLNM,t++!xxbhhGJ((!xx(LTVT\T\]J&&%&78??AEEGMMOJ**%&;<CCEIIKQQSJ%%%&67>>@DDFLLNJ4%e}003::<@@BHHJJ<TFCDDU X r   input_namesoutput_namesc                    0 nX-    H  nUS;   a  SS0X4'   M  US;   a	  SSS.X4'   M   US:X  a  SS0X4'   M.  US	;   a  M6  US
:X  a	  SSS.X4'   ME  US:X  a  SS0X4'   MS  SU;   d  SU;   a	  SSS.X4'   Mh  SU;   d  SU;   a	  SSS.X4'   M}  SU;   d  SU;   d  SU;   d  SU;   a  SS0X4'   M  SU;   a	  SSS.X4'   M  SU;   a	  SSS.X4'   M  [        SU 35      e   U$ )N>   r   rm   r   r   >   rn   r!   r   )r   rf   rI   rE   >   rQ   rK   logitsr&   ro   rp   r^   )r   rG   present_key_selfpresent_value_selftotal_sequence_lengthrq   rr   present_key_crosspresent_value_crossrs   
jump_times
max_lengthz$Unknown input or output name found: )	Exception)r   r   r   dynamic_axesrh   s        r   get_model_dynamic_axesr   L  sG   
 L*::"#\!2L77%16G!HL&&"#%:!;L>>X%16G!HL,,"#\!2L$(9T(A%16L!ML4'+?4+G &26M!NL$!T)"d*$, #$\!2L4%16G!HLT!%1l!CLB4&IJJS +T r   )  F)T)F)   T)r   FT)FT)#loggingrz   r|   r   transformersr   onnxruntimer   	getLogger__name__loggerr   intboolr   r"   r'   r4   ru   tupleTensorr.   rD   rJ   rP   rT   rW   rY   r]   r`   rb   dictr   strr    r   r   <module>r      s      & (			8	$,  		LL	 	 		
 	& LL  	
 ( 	
!
!LL
! 
! 	
!* XXLLX X 	X
 X@
eELL%,,$>?@
uU\\5<<%?@A
	5E%,,ellELLPQR	5"  !	LL  	  LL  LL " LL  	
 .  ..LL. . 	.
 ." $(VVLLV V !	V
 !V V V. LL  	
   8 LL  	
     2:::|00c0 s)0r   