
    1h                       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rS SKJr  S SKJr   " S S	\S
S9r " S S\S
S9r " S S\5      r " S S\5      r " S S5      r   S           SS jjrg)    )annotations)TYPE_CHECKINGLiteral	TypedDict)	AudioData)WhisperCompatibleRecognizerN)Unpack)Whisperc                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
LoadModelOptionalParameters   zstr | torch.devicedevicestrdownload_rootbool	in_memory N__name__
__module____qualname____firstlineno____annotations____static_attributes__r       l/var/www/auris/envauris/lib/python3.13/site-packages/speech_recognition/recognizers/whisper_local/whisper.pyr   r      s    Or   r   F)totalc                  B    \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   Srg)TranscribeOptionalParameters   z<Transcribe optional parameters & DecodingOptions parameters.zfloat | tuple[float, ...]temperaturez"Literal['transcribe', 'translate']taskr   languager   fp16r   N)r   r   r   r   __doc__r   r   r   r   r   r   r      s    F +* -,M
Jr   r   c                  z    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   S\S'   S\S'   Srg)Segment&   intidseekfloatstartendr   textz	list[int]tokensr!   avg_logprobcompression_rationo_speech_probr   Nr   r   r   r   r'   r'   &   s9    G
IL	J
Ir   r'   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	TranscribeOutput3   r   r/   zlist[Segment]segmentsr#   r   Nr   r   r   r   r5   r5   3   s    
IMr   r5   c                  0    \ rS rSrSS jr    SS jrSrg)TranscribableAdapter9   c                    Xl         g )Nmodel)selfr=   s     r   __init__TranscribableAdapter.__init__:   s    
r   c                    SU;  a!  SS K nUR                  R                  5       US'   U R                  R                  " U40 UD6$ )Nr$   r   )torchcudais_availabler=   
transcribe)r>   audio_arraykwargsrB   s       r   rE   TranscribableAdapter.transcribe=   s?     "ZZ446F6Nzz$$[;F;;r   r<   N)r=   r
   returnNone)rF   z
np.ndarrayrI   r5   )r   r   r   r   r?   rE   r   r   r   r   r9   r9   9   s    <%<	<r   r9   c                    SSK nUR                  " 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`` from output of :command:`python -c 'import whisper; print(whisper.available_models())'`.
See also https://github.com/openai/whisper?tab=readme-ov-file#available-models-and-languages.

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

You can specify:

    * ``language``: recognition language, an uncapitalized full language name like "english" or "chinese". See the full language list at https://github.com/openai/whisper/blob/main/whisper/tokenizer.py

        * If not set, 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/openai/whisper/blob/main/whisper/transcribe.py for all options.
r   N	show_dict)whisper
load_modelr   r9   	recognize)	
recognizer
audio_datar=   rL   load_optionstranscribe_optionsrM   whisper_modelwhisper_recognizers	            r   rO   rO   H   s\    8 &&uC0BCM4]+ '''+= r   )baseFN)rQ   r   r=   r   rL   r   rR   z"LoadModelOptionalParameters | NonerS   z$Unpack[TranscribeOptionalParameters]rI   zstr | TranscribeOutput)
__future__r   typingr   r   r   speech_recognition.audior   1speech_recognition.recognizers.whisper_local.baser   numpynprB   typing_extensionsr	   rM   r
   r   r   r'   r5   r9   rO   r   r   r   <module>r^      s    " 4 4 . ()5 
9E 

i 
y < <$ 7;$$ $ 	$
 5$ ?$ $r   