
    hh|                       S SK Jr  S SKJrJrJr  S SKJr  S SKJ	r	  \(       a  S SK
rS SKJr  S SKJr  S SKJr   " S	 S
\5      r " S S5      r " S S\SS9r " S S\SS9r   S           SS jjr\S:X  aq  S SKrS SKr\R6                  " 5       r\R;                  S5        \R=                  5       r\R                  RA                  \RB                  5      r"\" S\"5      r#\$" \#5        gg)    )annotations)TYPE_CHECKINGLiteral	TypedDict)	AudioData)WhisperCompatibleRecognizerNWhisperModel)Segment)Unpackc                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	TranscribeOutput   strtextzlist[Segment]segmentslanguage N__name__
__module____qualname____firstlineno____annotations____static_attributes__r       u/home/james-whalen/.local/lib/python3.13/site-packages/speech_recognition/recognizers/whisper_local/faster_whisper.pyr   r      s    
IMr   r   c                  0    \ rS rSrSS jr    SS jrSrg)TranscribableAdapter   c                    Xl         g Nmodel)selfr$   s     r   __init__TranscribableAdapter.__init__   s    
r   c                    U R                   R                  " U40 UD6u  p4[        U5      nSR                  S U 5       5      UUR                  S.$ )N c              3  8   #    U  H  oR                   v   M     g 7fr"   )r   ).0segments     r   	<genexpr>2TranscribableAdapter.transcribe.<locals>.<genexpr>!   s     Bg\\s   )r   r   r   )r$   
transcribelistjoinr   )r%   audio_arraykwargssegments_generatorinfor   s         r   r/   TranscribableAdapter.transcribe   sR     $(::#8#8#O#O *+HHBBB 
 	
r   r#   N)r$   r
   returnNone)r2   z
np.ndarrayr7   r   )r   r   r   r   r&   r/   r   r   r   r   r   r      s    	
%	
		
r   r   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	InitOptionalParameters'   zLiteral['cpu', 'gpu', 'auto']devicer   compute_typedownload_rootr   Nr   r   r   r   r:   r:   '   s    ))r   r:   F)totalc                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
TranscribeOptionalParameters/   r   r   z"Literal['transcribe', 'translate']taskint	beam_sizer   Nr   r   r   r   rA   rA   /   s    M
,,Nr   rA   c                    SSK Jn  U" U40 U=(       d    0 D6n[        [        U5      5      nUR                  " U4SU0UD6$ )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$   rG   init_optionstranscribe_optionsr
   whisper_recognizers           r   rI   rI   7   sV    4 ,5,"4"5E4U# '''+= r   __main__
audio_file)baseFN)rK   r   r$   r   rG   boolrL   zInitOptionalParameters | NonerM   z$Unpack[TranscribeOptionalParameters]r7   zstr | TranscribeOutput)%
__future__r   typingr   r   r   speech_recognition.audior   1speech_recognition.recognizers.whisper_local.baser   numpynprH   r
   faster_whisper.transcriber   typing_extensionsr   r   r   r:   rA   rI   r   argparsespeech_recognitionsrArgumentParserparseradd_argument
parse_argsargs	from_filerP   rK   transcriptionprintr   r   r   <module>rf      s   " 4 4 . +1(y 
 
 Ye 9E  26"" " 	"
 0" ?" "J z#$$&F
%D''8JdJ/M	- r   