Ë
    cQêj-=  ã                   óþ  — d dl Z d dlZd dlZd dlmZ d dlmZ  e j                  e	«      Z
	 	 d(dedej                  dededef
d	„Z	 d)dedej                  deded
ef
d„Z	 d*dedej                  dedefd„Z	 d*dedej                  dededef
d„Zdeeej(                  ej(                  f      deeej(                  ej(                  f      fd„Zdeeej(                  ej(                  ej(                  ej(                  f      fd„Z	 	 d+dedej                  ded
efd„Z	 d*dej                  ded
efd„Z	 d*dej                  ded
efd„Z	 d*dedej                  dededef
d„Z	 	 d(dedej                  dededef
d„Z	 	 	 d,dedej                  dedededed
efd„Z	 	 d-dedej                  dedededed
efd „Z	 	 d-dedej                  dedededededed
efd!„Zd"ed#efd$„Z ded%ee!   d&ee!   fd'„Z"y).é    N)ÚWhisperConfig)ÚInferenceSessionÚconfigÚdeviceÚ
batch_sizeÚsequence_lengthÚuse_fp16c                 ó’   — |rt         j                  nt         j                  }t        j                  || j                  |||¬«      }|S ©N©r   Údtype)ÚtorchÚfloat16Úfloat32ÚrandnÚnum_mel_bins)r   r   r   r   r	   Útorch_dtypeÚaudio_featuress          ú{/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/onnxruntime/transformers/models/whisper/whisper_inputs.pyÚget_sample_audio_featuresr   !   s9   € ñ $,”%—-’-´·±€KÜ—[‘[ ¨V×-@Ñ-@À/ÐZ`ÐhsÔt€NØÐó    Ú	use_int32c                 ó–   — |rt         j                  nt         j                  }t        j                  d| j                  ||f||¬«      }|S )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"   /   sD   € ñ "+”%—+’+´·±€KÜŸ™Ø�F×%Ñ%¨Z¸Ð,IÐRXÐ`kôÐð Ðr   c                 ó¦   — |rt         j                  nt         j                  }t        j                  || j                  | j
                  ||¬«      }|S r   )r   r   r   r   Úmax_source_positionsÚd_model)r   r   r   r	   r   Úencoder_hidden_statess         r   Ú get_sample_encoder_hidden_statesr'   ?   sB   € ñ $,”%—-’-´·±€KÜ!ŸK™KØ�F×/Ñ/°·±ÈÐVaôÐð !Ð r   Úpast_seq_lenc                 ó  — | j                   }| j                  |z  }| j                  }|rt        j                  nt        j
                  }t        | j                  «      D �	cg c]8  }	t        j                  ||||||¬«      t        j                  ||||||¬«      f‘Œ: }
}	t        | j                  «      D �	cg c]8  }	t        j                  ||||||¬«      t        j                  ||||||¬«      f‘Œ: }}	t        |
|«      S c c}	w c c}	w 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×,Ñ,Ó-ö ð
 ô �J‰J�z 9¨l¸IÈfÐ\gÔhÜ�J‰J�z 9¨l¸IÈfÐ\gÔhò	
ð Ðð  ô �v×,Ñ,Ó-ö!ð
 ô �J‰J�z 9Ð.BÀIÐV\ÐdoÔpÜ�J‰J�z 9Ð.BÀIÐV\ÐdoÔpò	
ð!Ðð !ô #Ð#;Ð=VÓWÐWùò ùò!s   Á!=DÂ7=DÚself_attn_kv_cachesÚcross_attn_kv_cachesc                 óp   — g }t        | |d¬«      D ]"  \  \  }}\  }}||||f}|j                  |«       Œ$ |S )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   s[   € ð €OÜHKØÐ1¸%ôIò 0ÑDÑ$ˆ�|Ñ&D }°mð (¨°}ÀmÐTˆØ×Ñ˜Õ/ð	0ð
 Ðr   Ú	kv_cachesc                 ó²   — g g }}| D ]K  \  }}}}|j                  |«       |j                  |«       |j                  |«       |j                  |«       ŒM ||fS ©N)r:   )rA   r5   r6   r<   r=   r>   r?   s          r   Úgroup_past_key_valuesrD   ~   sm   € ð 13°BÐ-ÐØDMò 3Ñ@ˆ�l M°=Ø×"Ñ" <Ô0Ø×"Ñ" <Ô0Ø×#Ñ# MÔ2Ø×#Ñ# MÕ2ð	3ð
 Ð 4Ð4Ð4r   Únum_alignment_headsc                 ó~   — |rt         j                  nt         j                  }t        j                  |df||¬«      }|S )Né   r   )r   r   r   Úones)r   r   rE   r   r   Úalignment_headss         r   Úget_sample_alignment_headsrJ   Œ   s4   € ñ "+”%—+’+´·±€KÜ—j‘jÐ"5°qÐ!9À&ÐP[Ô\€OØÐr   Úsot_sequence_lengthc                 ó|   — |rt         j                  nt         j                  }t        j                  |g| |¬«      }|S r   ©r   r   r   Útensor)r   rK   r   r   Ú
sot_lengths        r   Úget_sample_sot_sequence_lengthrP   ™   s1   € ñ
 "+”%—+’+´·±€KÜ—‘Ð2Ð3¸FÈ+ÔV€JØÐr   Úsegment_lengthc                 ó|   — |rt         j                  nt         j                  }t        j                  |g| |¬«      }|S r   rM   )r   rQ   r   r   Úsegment_sizes        r   Úget_sample_segment_lengthrT   ¥   s0   € ñ
 "+”%—+’+´·±€KÜ—<‘< Ð 0¸À{ÔS€LØÐr   c                 óö   — | j                   }|rt        j                  nt        j                  }t	        | j
                  «      D �cg c]'  }t        j                  |||| j                  ||¬«      ‘Œ) }}|S c c}w r   )r*   r   r   r   r+   r,   r-   r$   )	r   r   r   r   r	   r/   r   r1   ÚQKss	            r   Úget_sample_QKsrW   ±   sv   € ð ×.Ñ.€IÙ#+”%—-’-´·±€Kô
 �v×,Ñ,Ó-ö	ð ô 	�
‰
Ø˜	 ?°F×4OÑ4OÐX^Ðfqö	
ð€Cð ð €Jùòs   Á,A6c                 ó(   — t        | ||||«      }d|iS )Nr   )r   )r   r   r   r   r	   r   s         r   Úget_sample_encoder_inputsrY   Ä   s"   € ô /¨v°v¸zÈ?Ð\dÓe€NØ˜nÐ-Ð-r   Údecoder_sequence_lengthÚencoder_sequence_lengthc                 óH   — t        | ||||«      }t        | ||||«      }||dœS )N)r   r!   )r   r"   )	r   r   r   rZ   r[   r	   r   r   r!   s	            r   Ú&get_sample_encoder_decoder_init_inputsr]   Ð   s9   € ô /¨v°v¸zÐKbÐdlÓm€NÜ4°V¸VÀZÐQhÐjsÓtÐØ,ÐCTÑUÐUr   Úpast_sequence_lengthc                 óf   — t        | ||||«      }t        | |||«      }t        | ||||«      }	|||	dœS )N)r!   r&   r;   )r"   r'   r4   )
r   r   r   r^   r   r	   r   r!   r&   r;   s
             r   Úget_sample_decoder_inputsr`   á   sR   € ô 5°V¸VÀZÐQ`ÐbkÓlÐÜ<¸VÀVÈZÐYaÓbÐÜ0°¸ÀÐMaÐckÓl€Oà.Ø!6Ø*ñð r   c	                 óz   — t        | |||«      }	t        ||«      }t        ||«      }t        | ||||«      }
|	|||
dœ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   õ   sX   € ô 1°¸ÐATÐV_Ó`€Oä8¸ÐATÓUÐÜ.¨v°~ÓF€NÜ
˜ ¨°_ÀhÓ
O€Cà*Ø2Ø(Øñ	ð r   ÚinputsÚmodelc                 ó’  — d\  }}d\  }}}}d\  }}	d| v r%t        | d   «      \  }}|d   j                  \  }}}}i }
t        t        d„ |j	                  «       «      «      }d|v }|D �]Ü  }|dv r3| d	   j                  «       j                  «       j                  «       |
|<   Œ;|d
k(  r3| d
   j                  «       j                  «       j                  «       |
|<   Œs|dv r3| d   j                  «       j                  «       j                  «       |
|<   Œªd|v sd|v r�|j                  d«      j                  «       j                  «       j                  «       }|r=t        j                  |||	|f|j                  ¬«      }||d |…d |…d |…d |…f<   ||
|<   �Œ,||
|<   �Œ3d|v sd|v rB|j                  d«      j                  «       j                  «       j                  «       }||
|<   �Œ}|dk(  r+t        j                  |gt        j                  ¬«      |
|<   �Œ­|dk(  r-t        j                  |||	ft        j                  ¬«      |
|<   �Œß|dk(  r4| d   j                  «       j                  «       j                  «       |
|<   �Œ|dk(  r4| d   j                  «       j                  «       j                  «       |
|<   �ŒQ|dk(  r4| d   j                  «       j                  «       j                  «       |
|<   �ŒŠd|v rC| d   j                  d«      j                  «       j                  «       j                  «       |
|<   �ŒÑt        d|› �«      ‚ |
S )N)NN)r   r   r   r   )é   iÀ  r;   r   c                 ó   — | j                   S rC   )Úname)Úis    r   ú<lambda>z(convert_inputs_for_ort.<locals>.<lambda>  s
   €  a§f¡f€ r   Ú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†     sW  € ð 1;Ñ-ÐÐ-Ø5?Ñ2€J�	˜<¨Ø#Ñ€Iˆ{Ø˜FÑ"Ü6KÈFÐSdÑLeÓ6fÑ3Ð	Ð2Ø9LÈQÑ9O×9UÑ9UÑ6ˆ
�I˜|¨Yà€JÜœÑ,¨e×.>Ñ.>Ó.@ÓAÓB€LØ,°Ð<ÐØó *EˆØÐ:Ñ:à%Ð&6Ñ7×>Ñ>Ó@×DÑDÓF×LÑLÓNˆJ�tÒØÐ,Ò,à%Ð&=Ñ>×EÑEÓG×KÑKÓM×SÑSÓUˆJ�tÒØÐ7Ñ7à%Ð&9Ñ:×AÑAÓC×GÑGÓI×OÑOÓQˆJ�tÒØ Ñ$Ð(9¸TÑ(Aà/×3Ñ3°AÓ6×=Ñ=Ó?×CÑCÓE×KÑKÓMˆMÙ!Ü!Ÿx™x¨°YÀÈYÐ(WÐ_l×_rÑ_rÔs�ØS`�˜[˜j˜[¨*¨9¨*°m°|°mÀZÀiÀZÐOÑPØ#/�
˜4Ó à#0�
˜4Ó Ø Ñ%Ð);¸tÑ)Cà0×4Ñ4°QÓ7×>Ñ>Ó@×DÑDÓF×LÑLÓNˆMØ,ˆJ�tÓØÐ+Ò+ä!Ÿx™x¨¨¼b¿h¹hÔGˆJ�tÓØÐ(Ò(ä!Ÿx™x¨°YÀÐ(LÔTV×T\ÑT\Ô]ˆJ�tÓØÐ&Ò&à%Ð&7Ñ8×?Ñ?ÓA×EÑEÓG×MÑMÓOˆJ�tÓØÐ*Ò*à%Ð&;Ñ<×CÑCÓE×IÑIÓK×QÑQÓSˆJ�tÓØÐ%Ò%à%Ð&6Ñ7×>Ñ>Ó@×DÑDÓF×LÑLÓNˆJ�tÓØ˜4Ñà% e™}×0Ñ0°Ó3×:Ñ:Ó<×@Ñ@ÓB×HÑHÓJˆJ�tÓäÐ<¸T¸FÐCÓDÐDðU*EðX Ðr   Úinput_namesÚoutput_namesc                 ól  — i }||z   D ]©  }|dv rddi||<   Œ|dv r	dddœ||<   Œ|dk(  rddi||<   Œ)|d	v rŒ.|d
k(  r	dddœ||<   Œ<|dk(  rddi||<   ŒId|v sd|v r	dddœ||<   ŒZd|v sd|v r	dddœ||<   Œkd|v sd|v sd|v sd|v rddi||<   Œƒd|v r	dddœ||<   Œ�d|v r	dddœ||<   Œ�t        d|› �«      ‚ |S )N>   r   rl   r   r   >   rm   r!   r   )r   rf   rI   rE   >   rQ   rK   Úlogitsr&   rn   ro   r^   )r   rG   Úpresent_key_selfÚpresent_value_selfÚtotal_sequence_lengthrp   rq   Úpresent_key_crossÚpresent_value_crossrr   Ú
jump_timesÚ
max_lengthz$Unknown input or output name found: )Ú	Exception)r   r‡   rˆ   Údynamic_axesrh   s        r   Úget_model_dynamic_axesr”   L  sd  € ð
 €LØ˜lÑ*ò )KˆØÐ:Ñ:à"# \Ð!2ˆL˜ÒØÐ7Ñ7à%1Ð6GÑ!HˆL˜ÒØÐ&Ò&à"#Ð%:Ð!;ˆL˜ÒØÐ>Ñ>àØ�XÒà%1Ð6GÑ!HˆL˜ÒØÐ,Ò,à"# \Ð!2ˆL˜ÒØ Ñ$Ð(9¸TÑ(Aà%1Ð6LÑ!MˆL˜ÒØ 4Ñ'Ð+?À4Ñ+Gð &2Ð6MÑ!NˆL˜Òà Ñ$Ø! TÑ)Ø" dÑ*Ø$¨Ñ,ð #$ \Ð!2ˆL˜ÒØ˜4Ñà%1Ð6GÑ!HˆL˜ÒØ˜TÑ!à%1°lÑ!CˆL˜ÒäÐBÀ4À&ÐIÓJÐJðS)KðT Ðr   )é¸  F)T)F)é   T)r•   FT)FT)#Úloggingry   r{   r   Útransformersr   Úonnxruntimer   Ú	getLoggerÚ__name__Úloggerr   ÚintÚboolr   r"   r'   r4   rt   ÚtupleÚTensorr.   rD   rJ   rP   rT   rW   rY   r]   r`   rb   Údictr†   Ústrr”   © r   r   ú<module>r¤      sà  ðó ã Û Ý &å (à	ˆ×	Ñ	˜8Ó	$€ð,  Øñ	Øð	à�L‰Lð	ð ð	ð ð		ð
 ó	ð& ñØðà�L‰Lðð ðð ð	ð
 óð( ñ	
!Øð
!à�L‰Lð
!ð ð
!ð ó	
!ð* ñXØðXà�L‰LðXð ðXð ð	Xð
 óXð@
Ø˜e E§L¡L°%·,±,Ð$>Ñ?Ñ@ð
à˜u U§\¡\°5·<±<Ð%?Ñ@ÑAó
ð	5Ø�E˜%Ÿ,™,¨¯©°e·l±lÀEÇLÁLÐPÑQÑRó	5ð"  !Øñ	Øðà�L‰Lðð ðð ó	ð  ñØ�L‰Lðàðð óð ñØ�L‰Lðàðð óð" ñØðà�L‰Lðð ðð ð	ð
 óð.  Øñ.Øð.à�L‰Lð.ð ð.ð ð	.ð
 ó.ð" $(ØØñVØðVà�L‰LðVð ðVð !ð	Vð
 !ðVð ðVð óVð. ØñØðà�L‰Lðð ðð ð	ð
 ðð ðð óð8 ØñØðà�L‰Lðð ðð ð	ð
 ðð ðð ðð ðð óð2:Øð:àó:ð|0Øð0à�c‘ð0ð �s‘)ô0r   