Ë
    èÍ:jB	  ã                   ó²   — 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y)
é    )ÚListÚOptionalÚTupleN)Úcommon_specÚ
model_specÚtransformer_specc                   óx   ‡ — 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.Úsuppress_idsÚsuppress_ids_beginÚlang_idsÚalignment_headsc                 ó,   •— t         ‰| �  ||||¬«       y )N)r   r   r   r   )ÚsuperÚ__init__)Úselfr   r   r   r   Ú	__class__s        €ús/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/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
      sq   ø„ Ù.ð -1Ø26Ø(,Ø;?ñ
à˜t C™yÑ)ð
ð % T¨#¡YÑ/ð
ð ˜4 ™9Ñ%ð	
ð
 " $ u¨S°#¨X¡Ñ"7Ñ8÷
ñ 
r   r
   c                   óN   ‡ — 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                  _
        y)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__   sU   ø€ ô 	‰ÑÔÜ)Ð*<Ð>OÓPˆŒÜ'×>Ñ>ØØÜ"×-Ñ-×2Ñ2ô
ˆŒð
 ).ˆ�‰Õ%r   c                  ó   — y)Nr   © ©r   s    r   ÚnamezWhisperSpec.name5   s   € àr   c                  ó   — y)Né   r-   r.   s    r   ÚrevisionzWhisperSpec.revision9   s   € àr   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#   € Ø�|‰|×&Ñ&×-Ñ-×3Ñ3°AÑ6Ð6r   )r   r   r   r   r   Úpropertyr/   r2   r4   r9   r   r   s   @r   r   r      s=   ø„ Ù$ô.ð0 ñó ðð ñó ðòö7r   r   c                   ó   — e Zd Zd„ Zy)r!   c                 óˆ  — t        j                  d«      j                  |«      | _        t	        j
                  «       | _        t	        j
                  «       | _        t        j                  «       | _
        t	        j                  «       | _        t        |«      D �cg c]  }t        j                  «       ‘Œ c}| _        y c c}w )NÚint16)ÚnpÚdtypeÚtypeÚ	num_headsr   Ú
Conv1DSpecÚconv1Úconv2r   ÚPositionEncoderSpecÚposition_encodingsÚLayerNormSpecÚ
layer_normÚrangeÚTransformerEncoderLayerSpecÚlayer)r   Ú
num_layersrA   Ú_s       r   r   zWhisperEncoderSpec.__init__E   s‰   € ÜŸ™ 'Ó*×/Ñ/°	Ó:ˆŒÜ ×+Ñ+Ó-ˆŒ
Ü ×+Ñ+Ó-ˆŒ
Ü"2×"FÑ"FÓ"HˆÔÜ%×3Ñ3Ó5ˆŒäDIÈ*ÓDUö
Ø?@Ô×8Ñ8Õ:ò
ˆ�
ùò 
s   ÂB?N)r   r   r   r   r-   r   r   r!   r!   D   s   „ ó
r   r!   )Útypingr   r   r   Únumpyr>   Úctranslate2.specsr   r   r   ÚModelConfigr
   ÚLanguageModelSpecr   Ú	LayerSpecr!   r-   r   r   ú<module>rT      sK   ðß (Ñ (ã ç GÑ Gô
�J×*Ñ*ô 
ô$'7�*×.Ñ.ô '7ôT	
˜×-Ñ-õ 	
r   