§
    ‚ŠtjŒ$  ã                   óÈ   — d dl mZ ddlmZmZ ddlmZmZmZ ddl	m
Z
mZ ddlmZmZ  ej        e¦  «        Z G d„ ded	¬
¦  «        Ze G d„ de¦  «        ¦   «         ZdgZdS )é    )ÚDecodeStreamé   )Ú
AudioInputÚmake_list_of_audio)ÚProcessingKwargsÚProcessorMixinÚUnpack)ÚPreTokenizedInputÚ	TextInput)Úauto_docstringÚloggingc                   ó0   — e Zd Zdddddœddddœd	d
idœZdS )ÚParakeetProcessorKwargsi€>  ÚlongestTé   )Úsampling_rateÚpaddingÚreturn_attention_maskÚsubsampling_factorÚrightF)r   Úpadding_sideÚadd_special_tokensÚreturn_tensorsÚpt)Úaudio_kwargsÚtext_kwargsÚcommon_kwargsN)Ú__name__Ú
__module__Ú__qualname__Ú	_defaults© ó    ún/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/parakeet/processing_parakeet.pyr   r      sQ   € € € € € ð #Ø Ø%)Ø"#ð	
ð 
ð Ø#Ø"'ð
ð 
ð
 +¨DÐ1ðð €I€I€Ir#   r   F)Útotalc                   óÜ   ‡ — e Zd Zdˆ fd„	Zed„ ¦   «         Ze	 	 ddedee	z  e
e         z  e
e	         z  dz  dedz  dee         fd	„¦   «         Zed
„ ¦   «         Zd„ Zddœd„Zg d¢fd„Zˆ xZS )ÚParakeetProcessorú<blank>Nc                 óœ   •— || _         |                     |¦  «        | _        || _        t	          ¦   «                              ||¦  «         dS )a›  
        blank_token (`str`, *optional*, defaults to `"<blank>"`):
            Blank token for transducer decoding.
        decoder_type (`str`, *optional*):
            Decoding/timestamp emission mode. Possible values:

            - `"ctc"`: Consecutive identical tokens are merged into one emission.
            - `"rnnt"`: Repeated tokens are kept; each token gets a 1-frame timestamp span.
            - `"tdt"`: Repeated tokens are kept; each token span is based on its predicted duration. Punctuation is attached to the preceding token.

            If `None` (older checkpoints) the decoder type is inferred automatically for backward compatibility.
        N)Úblank_tokenÚconvert_tokens_to_idsÚblank_token_idÚdecoder_typeÚsuperÚ__init__)ÚselfÚfeature_extractorÚ	tokenizerr*   r-   Ú	__class__s        €r$   r/   zParakeetProcessor.__init__.   sL   ø€ ð 'ˆÔØ'×=Ò=¸kÑJÔJˆÔØ(ˆÔÝ‰Œ×ÒÐ*¨IÑ6Ô6Ð6Ð6Ð6r#   c                 óf   — | j         �| j         S | j        | j                             ¦   «         vrdndS )NÚctcÚtdt)r-   r*   r2   Ú	get_vocab)r0   s    r$   Ú_decoder_typezParakeetProcessor._decoder_type@   s<   € àÔÐ(ØÔ$Ð$ð Ô(°´×0HÒ0HÑ0JÔ0JÐJÐJˆuˆuÐPUÐUr#   ÚaudioÚtextr   Úkwargsc                 ó&  ‡ — t          |¦  «        } ‰ j        t          fd‰ j        j        i|¤Ž}|€+t
                               d|d         d         › d�¦  «         n4||d         d         k    r"t          d|› d|d         d         › d	�¦  «        ‚|� ‰ j        |fi |d         ¤Ž}|� ‰ j        |fi |d
         ¤Ž}|€|S |d         |d<   t          |t          ¦  «        r|g}ˆ fd„|D ¦   «         } ‰ j        |fi |d
         ¤Ž}	|	d         |d<   |S )aÊ  
        sampling_rate (`int`, *optional*):
            The sampling rate of the input audio in Hz. This should match the sampling rate expected by the feature
            extractor (defaults to 16000 Hz). If provided, it will be validated against the processor's expected
            sampling rate, and an error will be raised if they don't match. If not provided, a warning will be
            issued and the default sampling rate will be assumed.
        Útokenizer_init_kwargsNzUYou've provided audio without specifying the sampling rate. It will be assumed to be r   r   z$, which can result in silent errors.z The sampling rate of the audio (z5) does not match the sampling rate of the processor (zD). Please provide resampled the audio to the expected sampling rate.r   Ú	input_idsÚlabelsc                 ó$   •— g | ]}‰j         |z   ‘ŒS r"   )r*   )Ú.0Útr0   s     €r$   ú
<listcomp>z.ParakeetProcessor.__call__.<locals>.<listcomp>v   s!   ø€ Ð?Ð?Ð?°Q˜DÔ,¨qÑ0Ð?Ð?Ð?r#   Údecoder_input_ids)r   Ú_merge_kwargsr   r2   Úinit_kwargsÚloggerÚwarning_onceÚ
ValueErrorr1   Ú
isinstanceÚstr)
r0   r9   r:   r   r;   Úoutput_kwargsÚinputsÚ	encodingsÚdecoder_textÚdecoder_encodingss
   `         r$   Ú__call__zParakeetProcessor.__call__I   sß  ø€ õ # 5Ñ)Ô)ˆà*˜Ô*Ý#ð
ð 
à"&¤.Ô"<ð
ð ð
ð 
ˆð Ð Ý×Òð }Ðhuð  wEô  iFð  GVô  iWð  }ð  }ð  }ñô ð ð ð ˜m¨NÔ;¸OÔLÒLÐLÝð l°=ð  lð  lð  xEð  FTô  xUð  Veô  xfð  lð  lð  lñô ð ð ÐØ+�TÔ+¨EÐSÐS°]À>Ô5RÐSÐSˆFØÐØ&˜œ tÐLÐL¨}¸]Ô/KÐLÐLˆIàˆ<ØˆMà(¨Ô5ˆF�8Ñõ ˜$¥Ñ$Ô$ð Ø�v�Ø?Ð?Ð?Ð?¸$Ð?Ñ?Ô?ˆLØ . ¤¨|Ð \Ð \¸}È]Ô?[Ð \Ð \ÐØ*;¸KÔ*HˆFÐ&Ñ'ØˆMr#   c                 ó(   — | j         j        }|ddgz   S )Nr?   rD   )r1   Úmodel_input_names)r0   Úfeature_extractor_input_namess     r$   rS   z#ParakeetProcessor.model_input_names{   s   € à(,Ô(>Ô(PÐ%Ø,°Ð:MÐ/NÑNÐNr#   c                 ód   — |                      d| j        dk    ¦  «          | j        j        |i |¤ŽS )NÚgroup_tokensr5   )Ú
setdefaultr8   r2   Úbatch_decode)r0   Úargsr;   s      r$   rX   zParakeetProcessor.batch_decode€   s:   € Ø×Ò˜.¨$Ô*<ÀÒ*EÑFÔFÐFØ*ˆtŒ~Ô*¨DÐ;°FÐ;Ð;Ð;r#   )Ú	durationsc                óv  — |                      d| j        dk    ¦  «          | j        j        |i |¤Ž}|��„|d         }|                     d¬¦  «        |z
  }|                      t          | j        j        ¬¦  «        }| j        j	        | j        j
        z  |d         d	         z  }| j        j        | j        h}	g }
t          |||¦  «        D ]ê\  }}}t          d
¬¦  «        }g }t          |¦  «        D ]™\  }}t!          |¦  «        |	v rŒ|                     | j        j        t!          |¦  «        ¦  «        }|�S| j        dk    rt!          ||         ¦  «        nd}t!          ||         ¦  «        }|                     ||||z   dœ¦  «         Œš|
                     |                      ||¦  «        ¦  «         Œë||
fS |S )zœ
        Forward arguments to [`~PreTrainedTokenizer.decode`] and post-process the timestamps (if provided for TDT) as
        in the NeMo library.
        rV   r5   Nr   éÿÿÿÿ)Údim)r=   r   r   T)Úskip_special_tokensr6   é   )ÚtokenÚstartÚend)rW   r8   r2   ÚdecodeÚcumsumrE   r   rF   r1   Ú
hop_lengthr   Úpad_token_idr,   Úzipr   Ú	enumerateÚintÚstepÚ
_tokenizerÚappendÚ_refine_timestamps)r0   rZ   rY   r;   ÚdecodedÚ	token_idsÚ
timestampsrL   Ú
frame_rateÚskip_idsÚproc_timestampsÚ	batch_idsÚbatch_timestampsÚbatch_durationsÚstreamÚtimestamp_dictÚiÚtoken_idÚchunkÚ
token_spanra   s                        r$   rc   zParakeetProcessor.decode„   s
  € ð
 	×Ò˜.¨$Ô*<ÀÒ*EÑFÔFÐFØ'�$”.Ô'¨Ð8°Ð8Ð8ˆàÑ Ø˜QœˆIà"×)Ò)¨bÐ)Ñ1Ô1°IÑ=ˆJà ×.Ò.Ý'Ø&*¤nÔ&@ð /ñ ô ˆMð
 Ô&Ô1ØÔ(Ô6ñ7à Ô/Ð0DÔEñFð ð œÔ3°TÔ5HÐIˆHØ ˆOÝ@CÀIÈzÐ[dÑ@eÔ@eð \ð \Ñ<�	Ð+¨_Ý%¸$Ð?Ñ?Ô?�Ø!#�Ý#,¨YÑ#7Ô#7ð ð ‘K�A�xÝ˜8‘}”}¨Ð0Ð0Ø Ø"ŸKšK¨¬Ô(AÅ3ÀxÁ=Ä=ÑQÔQ�EØÐ(ð AEÔ@RÐV[Ò@[Ð@[¥S¨¸Ô);Ñ%<Ô%<Ð%<Ðab˜
Ý #Ð$4°QÔ$7Ñ 8Ô 8˜Ø&×-Ò-à).Ø).Ø',¨zÑ'9ðð ñô ð øð  ×&Ò& t×'>Ò'>¸~ÈzÑ'ZÔ'ZÑ[Ô[Ð[Ð[à˜OÐ+Ð+Øˆr#   )ú?ú'õ   Â¡õ   Â¿ú-ú:ú,ú%ú/ú.ú!c                 óÜ   — t          |¦  «        D ][\  }}|d         |z  |d<   |d         |z  |d<   | j        dk    r/|d         |v r%|dk    r||dz
           d         |d<   |d         |d<   Œ\|S )Nra   rb   r6   r`   r   r_   )rh   r8   )r0   Úchar_offsetsrq   Úsupported_punctuationry   Úoffsets         r$   rm   z$ParakeetProcessor._refine_timestamps·   s™   € õ # <Ñ0Ô0ð 
	0ð 
	0‰IˆAˆvà$ Wœo°
Ñ:ˆF�7‰OØ" 5œM¨JÑ6ˆF�5‰Mð
 Ô! UÒ*Ð*¨v°g¬ÐBWÐ/WÐ/WÐ\]Ð`aÒ\aÐ\aØ".¨q°1©uÔ"5°eÔ"<��w‘Ø & w¤��u‘øàÐr#   )r(   N)NN)r   r   r    r/   Úpropertyr8   r   r   r   r
   Úlistri   r	   r   rQ   rS   rX   rc   rm   Ú__classcell__)r3   s   @r$   r'   r'   ,   sG  ø€ € € € € ð7ð 7ð 7ð 7ð 7ð 7ð$ ðVð Vñ „XðVð ð bfØ$(ð	/ð /àð/ð Ð+Ñ+¨d°9¬oÑ=ÀÐEVÔ@WÑWÐZ^Ñ^ð/ð ˜T‘zð	/ð
 Ð0Ô1ð/ð /ð /ñ „^ð/ðb ðOð Oñ „XðOð<ð <ð <ð '+ð 1ð 1ð 1ð 1ð 1ðh ?xÐ>wÐ>wðð ð ð ð ð ð ð r#   r'   N)Útokenizers.decodersr   Úaudio_utilsr   r   Úprocessing_utilsr   r   r	   Útokenization_utils_baser
   r   Úutilsr   r   Ú
get_loggerr   rG   r   r'   Ú__all__r"   r#   r$   ú<module>r–      s  ðð  -Ð ,Ð ,Ð ,Ð ,Ð ,à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ð 
ˆÔ	˜HÑ	%Ô	%€ðð ð ð ð Ð.°eð ñ ô ð ð" ðYð Yð Yð Yð Y˜ñ Yô Yñ „ðYðx Ð
€€€r#   