
    ,h
                     0    S SK rS SKrS SKr " S S5      rg)    Nc                   8    \ rS rSrSrS	S jrS
S jrS rS rSr	g)SpeechRecognizer   z<Clase para manejar el reconocimiento de voz de audio a textoc                 D    [         R                  " 5       U l        Xl        g)uf   
Inicializa el reconocedor de voz

Args:
    language (str): Código de idioma para el reconocimiento
N)sr
Recognizer
recognizerlanguageselfr
   s     DD:\NESTOR\Documents\Tesis\auris\backend\models\speech_recognition.py__init__SpeechRecognizer.__init__   s     --/     Nc                    Uc  U R                   nSn[        US5      (       a=  [        R                  " SSS9nUR	                  UR
                  5        UR
                  nOUn [        R                  " U5       nU R                  R                  U5      nU R                  R                  XbS9nUsSSS5        U(       a1  UR                  5         [        R                  " UR
                  5        $ $ ! , (       d  f       OK= f! [        R                   a    [        S5      e[        R                    a  n[        SU 35      eSnAff = f U(       a1  UR                  5         [        R                  " UR
                  5        gg! U(       a1  UR                  5         [        R                  " UR
                  5        f f = f)	u  
Reconoce el texto de un archivo de audio

Args:
    audio_file: Archivo de audio a procesar
    language (str, optional): Idioma específico para este reconocimiento

Returns:
    str: Texto reconocido del audio
    
Raises:
    Exception: Si ocurre un error durante el reconocimiento
NreadFz.wav)deletesuffixr
   zNo se pudo entender el audioz5Error en la solicitud al servicio de reconocimiento: )r
   hasattrtempfileNamedTemporaryFilesavenamer   	AudioFiler	   recordrecognize_googlecloseosunlinkUnknownValueError	ExceptionRequestError)	r   
audio_filer
   	temp_file
audio_pathsource
audio_datatextes	            r   	recognizeSpeechRecognizer.recognize   s_    }}H 	:v&& 335PIOOINN+"J#J	*j)V!__33F;
77
7V *) !		)..)  *) ## 	<:;; 	YSTUSVWXX	Y * !		)..) y!		)..) sH   #D 96C1/	D 1
C?;D >F ?D 2E4EEF :F>c                     Xl         g)ug   
Cambiar el idioma del reconocedor

Args:
    language (str): Código de idioma para el reconocimiento
Nr   r   s     r   set_languageSpeechRecognizer.set_language;   s	     !r   c                      [         R                  " U5       nU R                  R                  U5         SSS5        g! , (       d  f       g= f! [         a     gf = f)u   
Ajusta el reconocedor para ambientes ruidosos

Args:
    audio_file: Archivo de audio para calibrar
    
Returns:
    bool: True si la calibración fue exitosa
NTF)r   r   r	   adjust_for_ambient_noiser"   )r   r$   r'   s      r   adjust_for_noise!SpeechRecognizer.adjust_for_noiseD   sI    	j)V88@ *))  		s+   A >A 
AA A 
AA)r
   r	   )zes-ES)N)
__name__
__module____qualname____firstlineno____doc__r   r+   r.   r2   __static_attributes__ r   r   r   r      s    F!'*R!r   r   )speech_recognitionr   r   r   r   r:   r   r   <module>r<      s     	 N Nr   