Ë
    èÍ:jh  ã                   ó  — d dl Zd dlmZmZmZ  G d„ dej                  «      Z G d„ dej                  «      Z	 G d„ dej                  «      Z G d	„ d
ej                  «      Z G d„ dej                  «      Z G d„ dej                  «      Zy)é    N)Úattention_specÚcommon_specÚ
model_specc                   ó   — e Zd ZdZd„ Zy)ÚWav2Vec2BertConfigz)Configuration for the Wav2Vec2Bert model.c                  ó   — y ©N© ©Úselfs    úx/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/ctranslate2/specs/wav2vec2bert_spec.pyÚ__init__zWav2Vec2BertConfig.__init__	   s   € Øó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r
   r   r   r   r      s
   „ Ù3ór   r   c                   óJ   ‡ — e Zd Zˆ fd„Zed„ «       Zed„ «       Zd„ Zd„ Zˆ xZ	S )ÚWav2Vec2BertSpecc                 ó˜   •— t         ‰| �  «        t        j                  d«      j	                  |«      | _        t        |||«      | _        y )NÚint16)Úsuperr   ÚnpÚdtypeÚtypeÚ
vocab_sizeÚWav2Vec2BertEncoderSpecÚencoder)r   Únum_hidden_layersÚnum_adapter_layersr   Úreturn_hiddenÚ	__class__s        €r   r   zWav2Vec2BertSpec.__init__   s@   ø€ ô 	‰ÑÔÜŸ(™( 7Ó+×0Ñ0°Ó<ˆŒÜ.ØØØó
ˆ�r   c                  ó   — y)Nr   r
   r   s    r   ÚnamezWav2Vec2BertSpec.name   s   € à!r   c                  ó   — y)Né   r
   r   s    r   ÚrevisionzWav2Vec2BertSpec.revision!   s   € àr   c                 ó   — t        «       S r	   )r   r   s    r   Úget_default_configz#Wav2Vec2BertSpec.get_default_config%   s   € Ü!Ó#Ð#r   c                 óH   — t        | j                  j                  «       «      S r	   )Úintr   Únumpyr   s    r   Úget_vocabulary_sizez$Wav2Vec2BertSpec.get_vocabulary_size(   s   € Ü�4—?‘?×(Ñ(Ó*Ó+Ð+r   )
r   r   r   r   Úpropertyr$   r'   r)   r-   Ú__classcell__)r"   s   @r   r   r      s:   ø„ ô
ð ñ"ó ð"ð ñó ðò$ö,r   r   c                   ó   — e Zd Zdd„Zy)ÚWav2Vec2BertFeedForwardSpecc                 ó    — t        j                  «       | _        t        j                  «       | _        |rt        j                  «       | _        y y r	   )r   Ú
LinearSpecÚlinear_0Úlinear_1Úlinear_0_noact)r   ÚgluÚrms_norms      r   r   z$Wav2Vec2BertFeedForwardSpec.__init__-   s;   € Ü#×.Ñ.Ó0ˆŒÜ#×.Ñ.Ó0ˆŒÙÜ"-×"8Ñ"8Ó":ˆDÕð r   N)FF©r   r   r   r   r
   r   r   r1   r1   ,   s   „ ô;r   r1   c                   ó   — e Zd Zd„ Zy)ÚEncoderSpecc                 óš  — t        j                  «       | _        t        «       | _        t        j                  «       | _        t        j                  dd¬«      | _        | j                  `	t        j                  «       | _
        t        j                  «       | _        | j                  `t        j                  «       | _        | j                  `t        j                  «       | _        t        j                  «       | _        | j                   `t        j                  «       | _        t        «       | _        t        j                  «       | _        y )NT©Úself_attentionÚrelative_asymmetric_position)r   ÚLayerNormSpecÚenc_ffn1_layer_normr1   Úenc_ffn1Úenc_attn_layer_normr   ÚMultiHeadAttentionSpecÚenc_attnÚ
layer_normÚenc_conv_layer_normÚ
Conv1DSpecÚenc_conv_pointwise_conv1ÚbiasÚenc_conv_depthwise_convÚenc_conv_depthwise_layer_normÚenc_conv_pointwise_conv2Úenc_ffn2_layer_normÚenc_ffn2Úenc_final_layer_normr   s    r   r   zEncoderSpec.__init__5   s÷   € Ü#.×#<Ñ#<Ó#>ˆÔ Ü3Ó5ˆŒÜ#.×#<Ñ#<Ó#>ˆÔ Ü&×=Ñ=ØØ)-ô
ˆŒð �M‰MÐ$Ü#.×#<Ñ#<Ó#>ˆÔ Ü(3×(>Ñ(>Ó(@ˆÔ%Ø×)Ñ)Ð.Ü'2×'=Ñ'=Ó'?ˆÔ$Ø×(Ñ(Ð-Ü-8×-FÑ-FÓ-HˆÔ*Ü(3×(>Ñ(>Ó(@ˆÔ%Ø×)Ñ)Ð.Ü#.×#<Ñ#<Ó#>ˆÔ Ü3Ó5ˆŒÜ$/×$=Ñ$=Ó$?ˆÕ!r   Nr9   r
   r   r   r;   r;   4   s   „ ó@r   r;   c                   ó   — e Zd Zd„ Zy)ÚAdapterSpecc                 ól  — t        j                  «       | _        t        j                  «       | _        t        j                  «       | _        t        j                  «       | _        t        j                  dd¬«      | _	        | j                  `
t        j                  «       | _        t        «       | _        y )NTFr=   )r   r@   Úadpt_residual_layer_normrH   Úadpt_residual_convÚadpt_attn_layer_normÚadpt_attn_convr   rD   Úadpt_attn_layerrF   Úadpt_ffn_layer_normr1   Úadpt_ffnr   s    r   r   zAdapterSpec.__init__L   sˆ   € Ü(3×(AÑ(AÓ(CˆÔ%Ü"-×"8Ñ"8Ó":ˆÔÜ$/×$=Ñ$=Ó$?ˆÔ!Ü)×4Ñ4Ó6ˆÔÜ-×DÑDØØ).ô 
ˆÔð × Ñ Ð+Ü#.×#<Ñ#<Ó#>ˆÔ Ü3Ó5ˆ�r   Nr9   r
   r   r   rR   rR   K   s   „ ó6r   rR   c                   ó   — e Zd Zd„ Zy)r   c                 óL  — t        j                  «       | _        t        j                  «       | _        t        |«      D �cg c]  }t        «       ‘Œ c}| _        t        |«      D �cg c]  }t        «       ‘Œ c}| _	        |st        j                  «       | _
        y y c c}w c c}w r	   )r   r@   Úfp_layer_normr3   Úfp_projectionÚranger;   Úencoder_layersrR   Úadapter_layersÚlm_head)r   r   r    r!   Ú_s        r   r   z Wav2Vec2BertEncoderSpec.__init__[   s{   € Ü(×6Ñ6Ó8ˆÔÜ(×3Ñ3Ó5ˆÔÜ6;Ð<MÓ6NÖO°œ{�}ÒOˆÔÜ6;Ð<NÓ6OÖP°œ{�}ÒPˆÔÙÜ&×1Ñ1Ó3ˆD�Lð ùò PùÚPs   Á BÁ&B!Nr9   r
   r   r   r   r   Z   s   „ ó4r   r   )r,   r   Úctranslate2.specsr   r   r   ÚModelConfigr   ÚLanguageModelSpecr   Ú	LayerSpecr1   r;   rR   r   r
   r   r   ú<module>rh      s|   ðÛ ç EÑ Eô˜×/Ñ/ô ô,�z×3Ñ3ô ,ô>; *×"6Ñ"6ô ;ô@�*×&Ñ&ô @ô.6�*×&Ñ&ô 6ô4˜j×2Ñ2õ 4r   