Ë
    èÍ:jò  ã                   ó  — d dl mZmZmZ 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y)é    )ÚListÚOptionalÚTupleN)Úcommon_specÚ
model_specÚtransformer_specc                   ó   — e Zd ZdZd„ Zy)ÚWav2Vec2Configz%Configuration for the Wav2Vec2 model.c                  ó   — y ©N© ©Úselfs    út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/ctranslate2/specs/wav2vec2_spec.pyÚ__init__zWav2Vec2Config.__init__   s   € Øó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r
   r
      s
   „ Ù/ór   r
   c                   óJ   ‡ — e Zd Zˆ fd„Zed„ «       Zed„ «       Zd„ Zd„ Zˆ xZ	S )ÚWav2Vec2Specc                 óš   •— t         ‰| �  «        t        j                  d«      j	                  |«      | _        t        ||||«      | _        y )NÚint16)Úsuperr   ÚnpÚdtypeÚtypeÚ
vocab_sizeÚWav2Vec2EncoderSpecÚencoder)r   Úfeat_layersÚ
num_layersÚ	num_headsr   Úreturn_hiddenÚ	__class__s         €r   r   zWav2Vec2Spec.__init__   sC   ø€ ô 	‰ÑÔÜŸ(™( 7Ó+×0Ñ0°Ó<ˆŒÜ*ØØØØó	
ˆ�r   c                  ó   — y)Nr   r   r   s    r   ÚnamezWav2Vec2Spec.name!   s   € àr   c                  ó   — y)Né   r   r   s    r   ÚrevisionzWav2Vec2Spec.revision%   s   € àr   c                 ó   — t        «       S r   )r
   r   s    r   Úget_default_configzWav2Vec2Spec.get_default_config)   s   € ÜÓÐr   c                 óH   — t        | j                  j                  «       «      S r   )Úintr   Únumpyr   s    r   Úget_vocabulary_sizez Wav2Vec2Spec.get_vocabulary_size,   s   € Ü�4—?‘?×(Ñ(Ó*Ó+Ð+r   )
r   r   r   r   Úpropertyr(   r+   r-   r1   Ú__classcell__)r&   s   @r   r   r      s:   ø„ ô
ð" ñó ðð ñó ðò ö,r   r   c                   ó   — e Zd Zd„ Zy)ÚWav2Vec2LayerNormConvLayerc                 óh   — t        j                  «       | _        t        j                  «       | _        y r   )r   Ú
Conv1DSpecÚconvÚLayerNormSpecÚ
layer_normr   s    r   r   z#Wav2Vec2LayerNormConvLayer.__init__1   s"   € Ü×*Ñ*Ó,ˆŒ	Ü%×3Ñ3Ó5ˆ�r   N©r   r   r   r   r   r   r   r5   r5   0   s   „ ó6r   r5   c                   ó   — e Zd Zd„ Zy)ÚWav2Vec2PosEmbedConvLayerc                 ó6   — t        j                  «       | _        y r   )r   r7   r8   r   s    r   r   z"Wav2Vec2PosEmbedConvLayer.__init__7   s   € Ü×*Ñ*Ó,ˆ�	r   Nr;   r   r   r   r=   r=   6   s   „ ó-r   r=   c                   ó   — e Zd Zd„ Zy)r    c                 ó&  — t        j                  d«      j                  |«      | _        t	        «       | _        t        |dz
  «      D �cg c]  }t	        «       ‘Œ c}| _        t        j                  «       | _
        t        j                  «       | _        t        «       | _        t        j                  «       | _        t        |«      D �cg c]  }t!        j"                  «       ‘Œ c}| _        |st        j                  «       | _        y y c c}w c c}w )Nr   é   )r   r   r   r$   r5   Úfeat_layer0ÚrangeÚ
feat_layerr   r9   Úfp_layer_normÚ
LinearSpecÚfp_projectionr=   Úpos_conv_embedr:   r   ÚTransformerEncoderLayerSpecÚlayerÚlm_head)r   r"   r#   r$   r%   ÚiÚ_s          r   r   zWav2Vec2EncoderSpec.__init__<   sÐ   € ÜŸ™ 'Ó*×/Ñ/°	Ó:ˆŒÜ5Ó7ˆÔÜAFÀ{ÐUVÁÓAWÖX¸AÔ5Õ7ÒXˆŒÜ(×6Ñ6Ó8ˆÔÜ(×3Ñ3Ó5ˆÔÜ7Ó9ˆÔÜ%×3Ñ3Ó5ˆŒäDIÈ*ÓDUö
Ø?@Ô×8Ñ8Õ:ò
ˆŒ
ñ Ü&×1Ñ1Ó3ˆD�Lð ùò Yùò

s   Á	D	Ã	DNr;   r   r   r   r    r    ;   s   „ ó4r   r    )Útypingr   r   r   r0   r   Úctranslate2.specsr   r   r   ÚModelConfigr
   ÚLanguageModelSpecr   Ú	LayerSpecr5   r=   r    r   r   r   ú<module>rS      so   ðß (Ñ (ã ç GÑ Gô�Z×+Ñ+ô ô,�:×/Ñ/ô ,ôB6 ×!5Ñ!5ô 6ô- 
× 4Ñ 4ô -ô
4˜*×.Ñ.õ 4r   