o
    dZh                     @  sb   d dl mZ d dlZd dlmZmZmZ d dlmZ er d dl	Z
G dd deZG dd dZdS )	    )annotationsN)TYPE_CHECKINGAnyProtocol)	AudioDatac                   @  s   e Zd ZdddZdS )	Transcribableaudio_array
np.ndarrayreturnstr | dict[str, Any]c                 K  s   d S N )selfr   kwargsr   r   `/var/www/auris/lib/python3.10/site-packages/speech_recognition/recognizers/whisper_local/base.py
transcribe   s   zTranscribable.transcribeN)r   r	   r
   r   )__name__
__module____qualname__r   r   r   r   r   r      s    r   c                   @  s$   e Zd ZdddZ	ddddZdS )WhisperCompatibleRecognizermodelr   r
   Nonec                 C  s
   || _ d S r   )r   )r   r   r   r   r   __init__   s   
z$WhisperCompatibleRecognizer.__init__F
audio_datar   	show_dictboolc                 K  sv   t |ts	tddd l}dd l}|jdd}t|}||\}}	|	|j
}| jj|fi |}
|r7|
S |
d S )Nz0``audio_data`` must be an ``AudioData`` instancer   i>  )Zconvert_ratetext)
isinstancer   
ValueErrornumpyZ	soundfileZget_wav_dataioBytesIOreadZastypeZfloat32r   r   )r   r   r   r   npZsfZ	wav_bytesZ
wav_streamr   Zsampling_rateresultr   r   r   	recognize   s   

z%WhisperCompatibleRecognizer.recognizeN)r   r   r
   r   )F)r   r   r   r   )r   r   r   r   r%   r   r   r   r   r      s    
r   )
__future__r   r    typingr   r   r   Zspeech_recognition.audior   r   r#   r   r   r   r   r   r   <module>   s    