
    C1i                        S SK JrJrJr  S SKrS SKJrJrJ	r	   " S S\R                  5      r " S S\R                  5      r " S S	\R                  5      r " S
 S\R                  5      r " S S\R                  5      rg)    )ListOptionalTupleN)common_spec
model_spectransformer_specc                       \ rS rSrSrS rSrg)Wav2Vec2Config   z%Configuration for the Wav2Vec2 model.c                     g N selfs    Y/home/james-whalen/.local/lib/python3.13/site-packages/ctranslate2/specs/wav2vec2_spec.py__init__Wav2Vec2Config.__init__   s        r   N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r
   r
      s
    /r   r
   c                   T   ^  \ rS rSrU 4S jr\S 5       r\S 5       rS rS r	Sr
U =r$ )Wav2Vec2Spec   c                    > [         TU ]  5         [        R                  " S5      R	                  U5      U l        [        UUUU5      U l        g )Nint16)superr   npdtypetype
vocab_sizeWav2Vec2EncoderSpecencoder)r   feat_layers
num_layers	num_headsr$   return_hidden	__class__s         r   r   Wav2Vec2Spec.__init__   sC     	((7+00<*	
r   c                     g)Nr   r   r   s    r   nameWav2Vec2Spec.name!   s    r   c                     g)N   r   r   s    r   revisionWav2Vec2Spec.revision%   s    r   c                     [        5       $ r   )r
   r   s    r   get_default_configWav2Vec2Spec.get_default_config)   s    r   c                 H    [        U R                  R                  5       5      $ r   )intr$   numpyr   s    r   get_vocabulary_size Wav2Vec2Spec.get_vocabulary_size,   s    4??((*++r   )r&   r$   )r   r   r   r   r   propertyr.   r2   r5   r:   r   __classcell__)r+   s   @r   r   r      s?    
"     , ,r   r   c                       \ rS rSrS rSrg)Wav2Vec2LayerNormConvLayer0   c                 l    [         R                  " 5       U l        [         R                  " 5       U l        g r   )r   
Conv1DSpecconvLayerNormSpec
layer_normr   s    r   r   #Wav2Vec2LayerNormConvLayer.__init__1   s"    **,	%335r   )rC   rE   Nr   r   r   r   r   r   r   r   r   r?   r?   0   s    6r   r?   c                       \ rS rSrS rSrg)Wav2Vec2PosEmbedConvLayer6   c                 8    [         R                  " 5       U l        g r   )r   rB   rC   r   s    r   r   "Wav2Vec2PosEmbedConvLayer.__init__7   s    **,	r   )rC   NrG   r   r   r   rI   rI   6   s    -r   rI   c                       \ rS rSrS rSrg)r%   ;   c                 H   [         R                  " S5      R                  U5      U l        [	        5       U l        [        US-
  5       Vs/ s H  n[	        5       PM     snU l        [        R                  " 5       U l
        [        R                  " 5       U l        [        5       U l        [        R                  " 5       U l        [        U5       Vs/ s H  n[         R"                  " 5       PM     snU l        U(       d  [        R                  " 5       U l        g g s  snf s  snf )Nr      )r!   r"   r#   r)   r?   feat_layer0range
feat_layerr   rD   fp_layer_norm
LinearSpecfp_projectionrI   pos_conv_embedrE   r   TransformerEncoderLayerSpeclayerlm_head)r   r'   r(   r)   r*   i_s          r   r   Wav2Vec2EncoderSpec.__init__<   s    '*//	:57AF{UVAWXAWA57AWX(668(33579%335DI*DU
DUq88:DU

 &113DL  Y

s   
DD)	rS   rQ   rT   rV   rY   rE   rZ   r)   rW   NrG   r   r   r   r%   r%   ;   s    4r   r%   )typingr   r   r   r9   r!   ctranslate2.specsr   r   r   ModelConfigr
   LanguageModelSpecr   	LayerSpecr?   rI   r%   r   r   r   <module>rc      so    ( (  G GZ++ ,:// ,B6!5!5 6-
 4 4 -
4*.. 4r   