
    iK                       d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
 erd dlZd dlmZ d dlmZ d dlmZ  G d	 d
      Z G d ded      Z G d ded      Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZedk(  rqd dlZd dlZ ej6                         Zej;                  d       ej=                         Zej                  jA                  ejB                        Z" ede"      Z# e$e#       yy)    )annotations)TYPE_CHECKINGLiteral	TypedDict)	AudioData)TranscribeOutputBaseWhisperCompatibleRecognizerNWhisperModel)Segment)Unpackc                  $    e Zd ZddZ	 	 	 	 ddZy)TranscribableAdapterc                    || _         y N)model)selfr   s     y/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/speech_recognition/recognizers/whisper_local/faster_whisper.py__init__zTranscribableAdapter.__init__   s	    
    c                     | j                   j                  |fi |\  }}t        |      }dj                  d |D              ||j                  dS )N c              3  4   K   | ]  }|j                     y wr   )text).0segments     r   	<genexpr>z2TranscribableAdapter.transcribe.<locals>.<genexpr>   s     BgW\\Bs   )r   segmentslanguage)r   
transcribelistjoinr   )r   audio_arraykwargssegments_generatorinfor   s         r   r    zTranscribableAdapter.transcribe   sV     $94::#8#8#O#O D*+HHBBB 
 	
r   N)r   r   returnNone)r#   z
np.ndarrayr'   zTranscribeOutputBase[Segment])__name__
__module____qualname__r   r     r   r   r   r      s    	
%	
	&	
r   r   c                  ,    e Zd ZU ded<   ded<   ded<   y)InitOptionalParameterszLiteral['cpu', 'gpu', 'auto']devicestrcompute_typedownload_rootNr)   r*   r+   __annotations__r,   r   r   r.   r.   !   s    ))r   r.   F)totalc                  ,    e Zd ZU ded<   ded<   ded<   y)TranscribeOptionalParametersr0   r   z"Literal['transcribe', 'translate']taskint	beam_sizeNr3   r,   r   r   r7   r7   )   s    M
,,Nr   r7   c                z    ddl m}  ||fi |xs i }t        t        |            } |j                  |fd|i|S )a  Performs speech recognition on ``audio_data`` (an ``AudioData`` instance), using Whisper.

    Pick ``model`` size (Same as Whisper).

    If ``show_dict`` is true, returns the detailed response from Whisper, including the detected language. Otherwise returns only the transcription.

    You can specify:

        * ``language``: recognition language, an uncapitalized 2 letters language name like "en" or "fr".

            * If not set, Faster Whisper will automatically detect the language.

        * ``task``

            * If you want transcribe + **translate** to english, set ``task="translate"``.

    Other values are passed directly to whisper. See https://github.com/SYSTRAN/faster-whisper/blob/master/faster_whisper/transcribe.py for all options.
    r   r
   	show_dict)faster_whisperr   r	   r   	recognize)
recognizer
audio_datar   r<   init_optionstranscribe_optionsr   whisper_recognizers           r   r>   r>   1   sY    4 ,5,"4"5E4U# ('''+= r   __main__
audio_file)baseFN)r@   r   r   r0   r<   boolrA   zInitOptionalParameters | NonerB   z$Unpack[TranscribeOptionalParameters]r'   z#str | TranscribeOutputBase[Segment])%
__future__r   typingr   r   r   speech_recognition.audior   1speech_recognition.recognizers.whisper_local.baser   r	   numpynpr=   r   faster_whisper.transcriber   typing_extensionsr   r   r.   r7   r>   r)   argparsespeech_recognitionsrArgumentParserparseradd_argument
parse_argsargs	from_filerE   r@   transcriptionprintr,   r   r   <module>r[      s   " 4 4 . +1(
 
 Ye 9E  26"" " 	"
 0" ?" )"J z#$X$$&F
%D''8JdJ/M	- r   