Ë
    ÛÓ^jn  ã                   óÆ   — d dl mZmZ d dlmZmZmZ d dlmZ  e«       rddl	Z	 ej                  e«      Z G d„ ded¬	«      Ze ed
¬«       G d„ de«      «       «       ZdgZy)é   )ÚProcessingKwargsÚProcessorMixin)Úauto_docstringÚis_torch_availableÚlogging)Úrequiresé    Nc                   ó   — e Zd ZdddiiZy)ÚInklingProcessorKwargsÚaudio_kwargsÚload_audio_backendÚ
torchaudioN)Ú__name__Ú
__module__Ú__qualname__Ú	_defaults© ó    úy/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/inkling/processing_inkling.pyr   r      s   „ àØ  ,ð
ð�Ir   r   F)Útotal)Útorch)Úbackendsc                   ó¨   ‡ — e Zd ZeZ	 	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zdd„Zd„ Zdede	de
fd„Zded	e	de
fd
„Zedee
   fd„«       Zedee
   fd„«       Zˆ xZS )ÚInklingProcessorc                 ón  •— t        |d«      r|j                  n|| _        |j                  | j                  d¬«      d   | _        t        |d«      r|j                  n|| _        |j                  | j                  d¬«      d   | _        || _        |j                  | j                  d¬«      d   | _        || _        |j                  | j                  d¬«      d   | _	        |	| _
        |
| _        || _        t        j                  |
||	t        j                  ¬«      | _        t"        ‰| �I  ||||¬«       y)	aS  
        image_token (`str`, *optional*, defaults to `"<|unused_200054|>"`):
            Placeholder token for each image soft-token slot (replaced by image features).
        audio_token (`str`, *optional*, defaults to `"<|unused_200053|>"`):
            Placeholder token for each audio soft-token slot (replaced by audio features).
        image_bos_token (`str`, *optional*, defaults to `"<|content_image|>"`):
            Marker token that begins an image span (kept as an ordinary embedded token).
        audio_bos_token (`str`, *optional*, defaults to `"<|content_audio_input|>"`):
            Marker token that begins an audio span (kept as an ordinary embedded token).
        num_dmel_bins (`int`, *optional*, defaults to 16):
            Number of discrete bins each (clamped) log-mel value is quantized into.
        dmel_min_value (`float`, *optional*, defaults to -7.0):
            Lower clamp bound, in log10 space, used for dMel quantization.
        dmel_max_value (`float`, *optional*, defaults to 2.0):
            Upper clamp bound, in log10 space, used for dMel quantization.
        Úimage_tokenF)Úadd_special_tokensr	   Úaudio_token)Údtype)Úchat_templateN)Úhasattrr   ÚencodeÚimage_token_idr   Úaudio_token_idÚimage_bos_tokenÚimage_bos_token_idÚaudio_bos_tokenÚaudio_bos_token_idÚnum_dmel_binsÚdmel_min_valueÚdmel_max_valuer   ÚlinspaceÚfloat64Úbin_centersÚsuperÚ__init__)ÚselfÚfeature_extractorÚimage_processorÚ	tokenizerr    r   r   r%   r'   r)   r*   r+   ÚkwargsÚ	__class__s                €r   r0   zInklingProcessor.__init__)   s-  ø€ ô> 5<¸IÀ}Ô4U˜9×0Ò0Ð[fˆÔØ'×.Ñ.¨t×/?Ñ/?ÐTYÐ.ÓZÐ[\Ñ]ˆÔÜ4;¸IÀ}Ô4U˜9×0Ò0Ð[fˆÔØ'×.Ñ.¨t×/?Ñ/?ÐTYÐ.ÓZÐ[\Ñ]ˆÔØ.ˆÔØ"+×"2Ñ"2°4×3GÑ3GÐ\aÐ"2Ó"bÐcdÑ"eˆÔØ.ˆÔØ"+×"2Ñ"2°4×3GÑ3GÐ\aÐ"2Ó"bÐcdÑ"eˆÔð +ˆÔØ,ˆÔØ,ˆÔÜ Ÿ>™>¨.¸.È-Ô_d×_lÑ_lÔmˆÔä‰ÑÐ*¨O¸YÐVcÐÕdr   Úreturnc                 ór  — | j                   j                  |j                  «      }|j                  t        j                  «      j                  | j                  | j                  ¬«      }|j                  d«      |z
  j                  «       j                  d¬«      j                  t        j                  «      S )N)ÚminÚmaxéÿÿÿÿ)Údim)r.   ÚtoÚdevicer   r-   Úclampr*   r+   Ú	unsqueezeÚabsÚargminÚint32)r1   Úinput_featuresr.   Úmels       r   Ú_extract_dmel_binsz#InklingProcessor._extract_dmel_binsY   s‰   € Ø×&Ñ&×)Ñ)¨.×*?Ñ*?Ó@ˆØ×Ñ¤§¡Ó.×4Ñ4¸×9LÑ9LÐRV×ReÑReÐ4ÓfˆØ—‘˜bÓ! KÑ/×4Ñ4Ó6×=Ñ=À"Ð=ÓE×HÑHÌÏÉÓUÐUr   c                 óê   —  | j                   |fi |¤Ž}| j                  |d   «      |j                  d«      dœ}t        t	        |«      «      D �cg c]  }| j                  ||¬«      ‘Œ }}||fS c c}w )NrD   Úinput_features_mask)Úaudio_input_idsÚaudio_input_ids_mask)Ú	audio_idx)r2   rF   ÚgetÚrangeÚlenÚreplace_audio_token)r1   Úaudior5   Úaudio_inputsÚprocessed_audioÚidxÚaudio_replacementss          r   Ú_process_audiozInklingProcessor._process_audio^   s�   € Ø-�t×-Ñ-¨eÑ>°vÑ>ˆð  $×6Ñ6°|ÐDTÑ7UÓVØ$0×$4Ñ$4Ð5JÓ$Kñ
ˆô chÔhkÐlqÓhrÓbsÖtÐ[^˜d×6Ñ6°ÐRUÐ6ÕVÐtÐÐtØÐ 2Ð2Ð2ùò us   ÁA0Úimage_inputsÚ	image_idxc                 ó0   — |d   |   }| j                   |z  S ©NÚnum_patches)r   )r1   rV   rW   Únum_soft_tokenss       r   Úreplace_image_tokenz$InklingProcessor.replace_image_tokenh   s"   € Ø& }Ñ5°iÑ@ˆØ×Ñ /Ñ1Ð1r   rQ   rK   c                 ó¼   — |j                  d«      }|�t        ||   j                  «       «      }nt        |d   |   j                  d   «      }| j                  |z  S )NrJ   rI   éþÿÿÿ)rL   ÚintÚsumÚshaper   )r1   rQ   rK   rJ   r[   s        r   rO   z$InklingProcessor.replace_audio_tokenl   se   € Ø+×/Ñ/Ð0FÓGÐàÐ+Ü!Ð"6°yÑ"A×"EÑ"EÓ"GÓH‰Oä! ,Ð/@Ñ"AÀ)Ñ"L×"RÑ"RÐSUÑ"VÓWˆOØ×Ñ /Ñ1Ð1r   c                 ó   — dgS rY   r   )r1   s    r   Úunused_input_namesz#InklingProcessor.unused_input_namesu   s
   € àˆÐr   c                 óÐ   — ddg| j                   j                  ¢| j                  j                  ¢}t        j	                  |«      D �cg c]  }|| j
                  vsŒ|‘Œ c}S c c}w )NrI   rJ   )r3   Úmodel_input_namesr4   ÚdictÚfromkeysrc   )r1   ÚnamesÚnames      r   re   z"InklingProcessor.model_input_namesy   sg   € ð Ø"ð
ð ×!Ñ!×3Ñ3ð
ð �^‰^×-Ñ-ð	
ˆô "&§¡¨uÓ!5Ö]˜¸ÀT×E\ÑE\Ò9\’Ò]Ð]ùÒ]s   ÁA#ÁA#)NNNNz<|unused_200054|>z<|unused_200053|>z<|content_image|>z<|content_audio_input|>é   g      Àg       @)rD   útorch.Tensorr7   rk   )r   r   r   r   Úvalid_processor_kwargsr0   rF   rU   rf   r_   Ústrr\   rO   ÚpropertyÚlistrc   re   Ú__classcell__)r6   s   @r   r   r   $   sµ   ø„ ð 4Ðð ØØØØ'Ø'Ø+Ø1ØØØõ.eó`Vò
3ð2°ð 2Àð 2Èó 2ð2°ð 2Àð 2Èó 2ð ð D¨¡Iò ó ðð ð^ 4¨¡9ò ^ó ô^r   r   )Úprocessing_utilsr   r   Úutilsr   r   r   Úutils.import_utilsr   r   Ú
get_loggerr   Úloggerr   r   Ú__all__r   r   r   ú<module>rw      s{   ð÷  Aß @Ñ @Ý *ñ ÔÛð 
ˆ×	Ñ	˜HÓ	%€ôÐ-°Uõ ð Ù	�:Ôô[^�~ó [^ó ó ð[^ð| Ð
�r   