Ë
    ÛÓ^jF$  ã                   ó  — d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ d
dlmZmZmZmZmZmZmZmZmZmZmZ ddlmZ  G d„ de
«      Z G d„ de«      Z G d„ dej>                  «      Z  G d„ dej>                  «      Z! G d„ de«      Z" G d„ de«      Z# G d„ de«      Z$ G d„ de«      Z% G d„ dee«      Z&eZ' G d „ d!e&e«      Z( G d"„ d#e&e«      Z) G d$„ d%e«      Z* G d&„ d'e«      Z+ G d(„ d)e«      Z,g d*¢Z-y)+zPyTorch Data2VecText model.é    N)Únné   )Úinitialization)ÚACT2FN)ÚGradientCheckpointingLayer)ÚWav2Vec2BaseModelOutput)ÚPreTrainedModelé   )ÚWav2Vec2AdapterÚWav2Vec2EncoderÚWav2Vec2FeatureEncoderÚWav2Vec2FeatureProjectionÚ#Wav2Vec2ForAudioFrameClassificationÚWav2Vec2ForCTCÚ!Wav2Vec2ForSequenceClassificationÚWav2Vec2ForXVectorÚWav2Vec2ModelÚWav2Vec2PreTrainedModelÚWav2Vec2SamePadLayeré   )ÚData2VecAudioConfigc                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ÚData2VecAudioConvLayerc                 ó°  •— t         ‰| �  «        |dkD  r|j                  |dz
     nd| _        |j                  |   | _        t        j                  | j                  | j                  |j                  |   |j                  |   |j                  ¬«      | _
        t        j                  | j                  d¬«      | _        t        |j                     | _        y )Nr   r   )Úkernel_sizeÚstrideÚbiasT©Úelementwise_affine)ÚsuperÚ__init__Úconv_dimÚin_conv_dimÚout_conv_dimr   ÚConv1dÚconv_kernelÚconv_strideÚ	conv_biasÚconvÚ	LayerNormÚ
layer_normr   Úfeat_extract_activationÚ
activation)ÚselfÚconfigÚlayer_idÚ	__class__s      €ú~/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/data2vec/modular_data2vec_audio.pyr!   zData2VecAudioConvLayer.__init__+   s¯   ø€ Ü‰ÑÔØ<DÀqºL˜6Ÿ?™?¨8°a©<Ò8ÈaˆÔØ"ŸO™O¨HÑ5ˆÔä—I‘IØ×ÑØ×ÑØ×*Ñ*¨8Ñ4Ø×%Ñ% hÑ/Ø×!Ñ!ô
ˆŒ	ô Ÿ,™, t×'8Ñ'8ÈTÔRˆŒÜ  ×!?Ñ!?Ñ@ˆ�ó    c                 ó´   — | j                  |«      }|j                  dd«      }| j                  |«      }|j                  dd«      }| j                  |«      }|S )Néþÿÿÿéÿÿÿÿ)r)   Ú	transposer+   r-   ©r.   Úhidden_statess     r2   ÚforwardzData2VecAudioConvLayer.forward:   sV   € ØŸ	™	 -Ó0ˆà%×/Ñ/°°BÓ7ˆØŸ™¨Ó6ˆØ%×/Ñ/°°BÓ7ˆàŸ™¨Ó6ˆØÐr3   )r   ©Ú__name__Ú
__module__Ú__qualname__r!   r:   Ú__classcell__©r1   s   @r2   r   r   *   s   ø„ õAör3   r   c                   ó   — e Zd Zy)ÚData2VecAudioPadLayerN©r<   r=   r>   © r3   r2   rB   rB   E   ó   „ Ør3   rB   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú Data2VecAudioPositionalConvLayerc                 óz  •— t         ‰| �  «        t        j                  |j                  |j                  |j
                  |j
                  dz  |j                  ¬«      | _        t        |j
                  «      | _	        t        |j                     | _        t        j                  |j                  d¬«      | _        y )Nr
   )r   ÚpaddingÚgroupsFr   )r    r!   r   r%   Úhidden_sizeÚconv_pos_kernel_sizeÚnum_conv_pos_embedding_groupsr)   rB   rI   r   r,   r-   r*   r+   )r.   r/   r1   s     €r2   r!   z)Data2VecAudioPositionalConvLayer.__init__J   sŽ   ø€ Ü‰ÑÔÜ—I‘IØ×ÑØ×ÑØ×3Ñ3Ø×/Ñ/°1Ñ4Ø×7Ñ7ô
ˆŒ	ô -¨V×-HÑ-HÓIˆŒÜ  ×!?Ñ!?Ñ@ˆŒäŸ,™, v×'9Ñ'9ÈeÔTˆ�r3   c                 óÖ   — | j                  |«      }| j                  |«      }|j                  dd«      }| j                  |«      }|j                  dd«      }| j	                  |«      }|S ©Nr   r
   )r)   rI   r7   r+   r-   r8   s     r2   r:   z(Data2VecAudioPositionalConvLayer.forwardY   sd   € ØŸ	™	 -Ó0ˆØŸ™ ]Ó3ˆà%×/Ñ/°°1Ó5ˆØŸ™¨Ó6ˆØ%×/Ñ/°°1Ó5ˆØŸ™¨Ó6ˆØÐr3   r;   r@   s   @r2   rG   rG   I   s   ø„ ôUör3   rG   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú$Data2VecAudioPositionalConvEmbeddingc                 ó´   •— t         ‰| �  «        t        j                  t	        |j
                  «      D �cg c]  }t        |«      ‘Œ c}«      | _        y c c}w )N)r    r!   r   Ú
ModuleListÚrangeÚnum_conv_pos_embeddingsrG   Úlayers)r.   r/   Ú_r1   s      €r2   r!   z-Data2VecAudioPositionalConvEmbedding.__init__e   s@   ø€ Ü‰ÑÔÜ—m‘mÜ?DÀV×EcÑEcÓ?dÖe¸!Ô-¨fÕ5Òeó
ˆ�ùÚes   ¶Ac                 ó€   — |j                  dd«      }| j                  D ]
  } ||«      }Œ |j                  dd«      }|S rO   )r7   rV   )r.   r9   Úlayers      r2   r:   z,Data2VecAudioPositionalConvEmbedding.forwardk   sI   € Ø%×/Ñ/°°1Ó5ˆØ—[‘[ò 	1ˆEÙ! -Ó0‰Mð	1à%×/Ñ/°°1Ó5ˆØÐr3   r;   r@   s   @r2   rQ   rQ   d   s   ø„ ô
ör3   rQ   c                   ó   — e Zd Zd„ Zy)ÚData2VecAudioFeatureEncoderc           	      óô   — t         j                  j                  | «       t        j                  t	        |j
                  «      D �cg c]  }t        ||¬«      ‘Œ c}«      | _        d| _        d| _	        y c c}w )N)r0   FT)
r   ÚModuler!   rS   rT   Únum_feat_extract_layersr   Úconv_layersÚgradient_checkpointingÚ_requires_grad)r.   r/   Úis      r2   r!   z$Data2VecAudioFeatureEncoder.__init__t   s^   € Ü
�	‰	×Ñ˜4Ô ÜŸ=™=ÜAFÀv×GeÑGeÓAfÖg¸AÔ# F°QÖ7Ògó
ˆÔð ',ˆÔ#Ø"ˆÕùò hs   ÁA5N)r<   r=   r>   r!   rD   r3   r2   r[   r[   s   s   „ ó#r3   r[   c                   ó   — e Zd Zy)ÚData2VecAudioFeatureProjectionNrC   rD   r3   r2   rd   rd   }   rE   r3   rd   c                   ó   — e Zd Zy)ÚData2VecAudioEncoderNrC   rD   r3   r2   rf   rf   �   rE   r3   rf   c                   ó   — e Zd Zy)ÚData2VecAudioAdapterNrC   rD   r3   r2   rh   rh   …   rE   r3   rh   c                   ót   — e Zd ZU eed<   dZdZdZdZdZ	dZ
dZ ej                  «       d„ «       Zd„ Zd„ Zd	„ Zy
)ÚData2VecAudioPreTrainedModelr/   Údata2vec_audioÚinput_valuesÚaudioTc                 ó   — t        j                  | |«       t        |t        «      r‡t	        j
                  d|j                  j                  z  «      }t        j                  |j                  j                  | |¬«       t        j                  |j                  j                  | |¬«       yt        |t        «      r+t        j                  |j                  j                  d«       yt        |t        j                   «      rŒt        j"                  |j                  «       |j                  �`t	        j
                  |j$                  |j&                  |j(                  d   z  z  «      }t        j                  |j                  | |¬«       yyy)zInitialize the weightsr   )ÚaÚbr   N)r	   Ú_init_weightsÚ
isinstancerd   ÚmathÚsqrtÚ
projectionÚin_featuresÚinitÚuniform_Úweightr   rG   Ú	constant_r)   r   r%   Úkaiming_normal_rJ   Úin_channelsr   )r.   ÚmoduleÚks      r2   rq   z*Data2VecAudioPreTrainedModel._init_weights“   s  € ô 	×%Ñ% d¨FÔ3Ü�fÔ<Ô=Ü—	‘	˜!˜f×/Ñ/×;Ñ;Ñ;Ó<ˆAÜ�M‰M˜&×+Ñ+×2Ñ2°q°b¸AÕ>Ü�M‰M˜&×+Ñ+×0Ñ0°Q°B¸!Ö<Ü˜Ô @ÔAÜ�N‰N˜6Ÿ;™;×+Ñ+¨QÕ/Ü˜¤§	¡	Ô*Ü× Ñ  §¡Ô/à�{‰{Ð&Ü—I‘I˜fŸm™m¨v×/AÑ/AÀF×DVÑDVÐWXÑDYÑ/YÑZÓ[�Ü—‘˜fŸk™k¨a¨R°1Ö5ð 'ð +r3   c                 ó   — t        d«      ‚©NzNot needed for Data2VecAudio©ÚAttributeError©r.   s    r2   Ú_get_adaptersz*Data2VecAudioPreTrainedModel._get_adapters¤   ó   € ÜÐ;Ó<Ð<r3   c                 ó   — t        d«      ‚r€   r�   rƒ   s    r2   Úinit_adapter_layersz0Data2VecAudioPreTrainedModel.init_adapter_layers§   r…   r3   c                 ó   — t        d«      ‚r€   r�   rƒ   s    r2   Úload_adapterz)Data2VecAudioPreTrainedModel.load_adapterª   r…   r3   N)r<   r=   r>   r   Ú__annotations__Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnÚtorchÚno_gradrq   r„   r‡   r‰   rD   r3   r2   rj   rj   ‰   sY   … ØÓØ(ÐØ$€OØÐØ&*Ð#ØÐØ€NØÐà€U‡]�]ƒ_ñ6ó ð6ò =ò=ó=r3   rj   c                   ó0   ‡ — e Zd Zdefd„Zd„ Zˆ fd„Zˆ xZS )ÚData2VecAudioModelr/   c                 óÀ  — t         j                  | |«       || _        t        |«      | _        t        |«      | _        |j                  dkD  s|j                  dkD  rEt        j                  t        j                  |j                  «      j                  «       «      | _        t!        |«      | _        |j$                  rt'        |«      nd | _        | j+                  «        y )Ng        )rj   r!   r/   r[   Úfeature_extractorrd   Úfeature_projectionÚmask_time_probÚmask_feature_probr   Ú	Parameterr’   ÚTensorrK   rx   Úmasked_spec_embedrf   ÚencoderÚadd_adapterrh   ÚadapterÚ	post_init)r.   r/   s     r2   r!   zData2VecAudioModel.__init__²   s¨   € Ü$×-Ñ-¨d°FÔ;ØˆŒÜ!<¸VÓ!DˆÔÜ"@ÀÓ"HˆÔð × Ñ  3Ò&¨&×*BÑ*BÀSÒ*HÜ%'§\¡\´%·,±,¸v×?QÑ?QÓ2R×2[Ñ2[Ó2]Ó%^ˆDÔ"ä+¨FÓ3ˆŒà7=×7IÒ7IÔ+¨FÔ3ÈtˆŒð 	�‰Õr3   c                 ó8   — | j                   j                  «        y)z¨
        Calling this function will disable the gradient computation for the feature encoder so that its parameter will
        not be updated during training.
        N)r—   Ú_freeze_parametersrƒ   s    r2   Úfreeze_feature_encoderz)Data2VecAudioModel.freeze_feature_encoderÃ   s   € ð
 	×Ñ×1Ñ1Õ3r3   c                 ó"   •— t        ‰| �  di |¤ŽS ©NrD   ©r    r:   ©r.   Úsuper_kwargsr1   s     €r2   r:   zData2VecAudioModel.forwardÊ   ó   ø€ Ü‰w‰Ñ. Ñ.Ð.r3   )r<   r=   r>   r   r!   r¤   r:   r?   r@   s   @r2   r•   r•   ±   s   ø„ ðÐ2ó ò"4÷/ð /r3   r•   c                   ó0   ‡ — e Zd Zd„ Zd„ Zd„ Zˆ fd„Zˆ xZS )ÚData2VecAudioForCTCc                 ó¬  — t         j                  | |«       t        |«      | _        t	        j
                  |j                  «      | _        |j                  €t        d| j                  › d�«      ‚t        |d«      r|j                  r|j                  n|j                  }t	        j                  ||j                  «      | _        | j#                  «        y)aZ  
        config ([`Data2VecAudioForCTC`]):
            Model configuration class with all the parameters of the model. Initializing with a config file does not
            load the weights associated with the model, only the configuration. Check out the
            [`~PreTrainedModel.from_pretrained`]  method to load the model weights.
        NzYou are trying to instantiate zü with a configuration that does not define the vocabulary size of the language model head. Please instantiate the model as follows: `Data2VecAudioForCTC.from_pretrained(..., vocab_size=vocab_size)`. or define `vocab_size` of your model's configuration.rŸ   )rj   r!   r•   rk   r   ÚDropoutÚfinal_dropoutÚdropoutÚ
vocab_sizeÚ
ValueErrorr1   ÚhasattrrŸ   Úoutput_hidden_sizerK   ÚLinearÚlm_headr¡   )r.   r/   r´   s      r2   r!   zData2VecAudioForCTC.__init__Ï   sº   € ô 	%×-Ñ-¨d°FÔ;ä0°Ó8ˆÔÜ—z‘z &×"6Ñ"6Ó7ˆŒà×ÑÐ$ÜØ0°·±Ð0@ð AHð Hóð ô *1°¸Ô)GÈF×L^ÒL^ˆF×%Ò%Ðdj×dvÑdvð 	ô —y‘yÐ!3°V×5FÑ5FÓGˆŒð 	�‰Õr3   c                 ó   — t        d«      ‚r€   r�   rƒ   s    r2   Úfreeze_base_modelz%Data2VecAudioForCTC.freeze_base_modelê   r…   r3   c                 ó   — t        d«      ‚r€   r�   rƒ   s    r2   Útie_weightszData2VecAudioForCTC.tie_weightsí   r…   r3   c                 ó"   •— t        ‰| �  di |¤ŽS r¦   r§   r¨   s     €r2   r:   zData2VecAudioForCTC.forwardð   rª   r3   )r<   r=   r>   r!   r¸   rº   r:   r?   r@   s   @r2   r¬   r¬   Î   s   ø„ òò6=ò=÷/ð /r3   r¬   c                   ó   — e Zd Zy)Ú&Data2VecAudioForSequenceClassificationNrC   rD   r3   r2   r½   r½   ô   rE   r3   r½   c                   ó   — e Zd Zy)Ú(Data2VecAudioForAudioFrameClassificationNrC   rD   r3   r2   r¿   r¿   ø   rE   r3   r¿   c                   ó   — e Zd Zy)ÚData2VecAudioForXVectorNrC   rD   r3   r2   rÁ   rÁ   ü   rE   r3   rÁ   )r¿   r¬   r½   rÁ   r•   rj   ).Ú__doc__rs   r’   r   Ú r   rw   Úactivationsr   Úmodeling_layersr   Úmodeling_outputsr   Úmodeling_utilsr	   Úwav2vec2.modeling_wav2vec2r   r   r   r   r   r   r   r   r   r   r   Úconfiguration_data2vec_audior   r   rB   r]   rG   rQ   r[   rd   rf   rh   rj   ÚData2VecAudioBaseModelOutputr•   r¬   r½   r¿   rÁ   Ú__all__rD   r3   r2   ú<module>rÌ      s  ðñ "ã ã Ý å &Ý !Ý 9Ý 7Ý -÷÷ ÷ ñ õ >ôÐ7ô ô6	Ð0ô 	ô r§y¡yô ô6¨2¯9©9ô ô#Ð"8ô #ô	Ð%>ô 	ô	˜?ô 	ô	˜?ô 	ô"= ?Ð4Kô "=ðJ  7Ð ô/Ð5°}ô /ô:#/Ð6¸ô #/ôL	Ð-Nô 	ô	Ð/Rô 	ô	Ð0ô 	ò�r3   