o
    Ö­jÄ  ã                   @  sœ   d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ er.d dlmZ G dd„ deƒZeddd„ƒZeddd„ƒZddœddd„ZdS )é    )ÚannotationsN)ÚPath)ÚTYPE_CHECKINGÚLiteralÚ	TypedDictÚUnionÚcastÚoverload)Ú
SetupError)Ú	AudioDatac                   @  s   e Zd ZU ded< dS )ÚVoskResponseÚstrÚtextN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r   r   ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/speech_recognition/recognizers/vosk.pyr      s   
 r   Ú
audio_datar   ÚverboseúLiteral[False]Úreturnr   c                C  ó   d S ©Nr   ©Ú_recognizerr   r   r   r   r   Ú	recognize   ó   r   úLiteral[True]c                C  r   r   r   r   r   r   r   r      r   F)r   ÚboolúUnion[str, VoskResponse]c          
      C  sŽ   ddl m}m} ttƒjjd d }| ¡ std|› d�ƒ‚d}||t|ƒƒ|ƒ}| 	|j
|dd	�¡ | ¡ }ttt |¡ƒ}	|rC|	S |	d
 S )aO  
    Perform speech recognition on ``audio_data`` using Vosk.

    Requires the Vosk model to be downloaded and unpacked in a folder named 'model' (``$PWD/model``).

    If ``verbose`` is ``False`` (default), only the recognized text is returned.
    If ``verbose`` is ``True``, the parsed result dictionary from Vosk is returned.
    r   )ÚKaldiRecognizerÚModelÚmodelsÚvoskzVosk model not found at z?. Please download the model using `sprc download vosk` command.i€>  é   )Úconvert_rateÚconvert_widthr   )r%   r"   r#   r   Ú__file__ÚparentÚexistsr
   r   ÚAcceptWaveformÚget_raw_dataÚFinalResultr   r   ÚjsonÚloads)
r   r   r   r"   r#   Úvosk_model_pathÚSAMPLE_RATEÚrecÚfinal_recognitionÚresultr   r   r   r      s    
ÿÿ)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r    r   r!   )Ú
__future__r   r/   Úpathlibr   Útypingr   r   r   r   r   r	   Úspeech_recognition.exceptionsr
   Úspeech_recognition.audior   r   r   r   r   r   r   Ú<module>   s     ÿ