
    n iB	                         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dS )
    )ListOptionalTupleN)common_spec
model_spectransformer_specc                        e Zd ZdZ	 	 	 	 ddeee                  deee                  deee                  deeeeef                           f fdZ xZ	S )	WhisperConfigz$Configuration for the Whisper model.Nsuppress_idssuppress_ids_beginlang_idsalignment_headsc                 R    t                                          ||||           d S )N)r   r   r   r   )super__init__)selfr   r   r   r   	__class__s        ^/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/ctranslate2/specs/whisper_spec.pyr   zWhisperConfig.__init__   s<     	%1+	 	 	
 	
 	
 	
 	
    )NNNN)
__name__
__module____qualname____doc__r   r   intr   r   __classcell__r   s   @r   r
   r
      s        .. -126(,;?
 
tCy)
 %T#Y/
 49%	

 "$uS#X"78
 
 
 
 
 
 
 
 
 
r   r
   c                   Z     e Zd ZdZ fdZed             Zed             Zd Zd Z	 xZ
S )WhisperSpeczDescribes a Whisper model.c                     t                                                       t          ||          | _        t	          j        ||t          j        j                  | _	        d| j	        _
        dS )a<  Initializes the model specification.

        Args:
          num_encoder_layers: The number of encoder layers.
          num_encoder_heads: The number of encoder attention heads.
          num_decoder_layers: The number of decoder layers.
          num_decoder_heads: The number of decoder attention heads.
        )
activationFN)r   r   WhisperEncoderSpecencoderr   TransformerDecoderSpecr   
ActivationGELUdecoderscale_embeddings)r   num_encoder_layersnum_encoder_headsnum_decoder_layersnum_decoder_headsr   s        r   r   zWhisperSpec.__init__   sh     	)*<>OPP'>"-2
 
 

 ).%%%r   c                     dS )Nr    r   s    r   namezWhisperSpec.name5   s    }r   c                     dS )N   r-   r.   s    r   revisionzWhisperSpec.revision9   s    qr   c                     t                      S )N)r
   r.   s    r   get_default_configzWhisperSpec.get_default_config=   s    r   c                 :    | j         j        j        j        d         S )Nr   )r&   
embeddingsweightshaper.   s    r   get_vocabulary_sizezWhisperSpec.get_vocabulary_size@   s    |&-3A66r   )r   r   r   r   r   propertyr/   r2   r4   r9   r   r   s   @r   r   r      s        $$. . . . .0   X   X  7 7 7 7 7 7 7r   r   c                       e Zd Zd ZdS )r!   c                 Z   t          j        d                              |          | _        t	          j                    | _        t	          j                    | _        t          j	                    | _
        t	          j                    | _        d t          |          D             | _        d S )Nint16c                 4    g | ]}t          j                    S r-   )r   TransformerEncoderLayerSpec).0_s     r   
<listcomp>z/WhisperEncoderSpec.__init__.<locals>.<listcomp>K   s/     
 
 
?@8::
 
 
r   )npdtypetype	num_headsr   
Conv1DSpecconv1conv2r   PositionEncoderSpecposition_encodingsLayerNormSpec
layer_normrangelayer)r   
num_layersrF   s      r   r   zWhisperEncoderSpec.__init__E   s    '**//	:: +--
 +--
"2"F"H"H%355
 
DI*DUDU
 
 



r   N)r   r   r   r   r-   r   r   r!   r!   D   s#        
 
 
 
 
r   r!   )typingr   r   r   numpyrC   ctranslate2.specsr   r   r   ModelConfigr
   LanguageModelSpecr   	LayerSpecr!   r-   r   r   <module>rW      s    ( ( ( ( ( ( ( ( ( (     G G G G G G G G G G
 
 
 
 
J* 
 
 
$'7 '7 '7 '7 '7*. '7 '7 '7T	
 	
 	
 	
 	
- 	
 	
 	
 	
 	
r   