o
    ij                     @  s  d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ ed ZG d	d
 d
eddZddd+ddZedkrd dlZd dlmZ d dlZe Zed ejddeedd edd  ed!d" ejd#d$d%d& e Zejred'Zeej e  Z!e"d(Z#e!$e# e%e! ej	&ej'Z(dej)iZ*ej+rej+e*d)< ej,rej,e*d*< ede(fi e*Z-e.e- dS dS ),    )annotationsN)Literal	TypedDict)Unpack)	AudioData)
SetupError)OpenAICompatibleRecognizer)	whisper-1zgpt-4o-transcribezgpt-4o-mini-transcribec                   @  s2   e Zd ZU dZded< ded< ded< ded< d	S )
OpenAIOptionalParameterszOpenAI speech transcription's optional parameters.

    https://platform.openai.com/docs/api-reference/audio/createTranscription
    strlanguagepromptzLiteral['json']response_formatfloattemperatureN)__name__
__module____qualname____doc____annotations__ r   r   d/home/kuhnn/.local/lib/python3.10/site-packages/speech_recognition/recognizers/whisper_api/openai.pyr
      s   
 r
   F)totalr	   )model
audio_data'AudioData'r   WhisperModelkwargs Unpack[OpenAIOptionalParameters]returnr   c                K  sD   zddl }W n ty   tdw t| }|j||fi |S )a  Performs speech recognition on ``audio_data`` (an ``AudioData`` instance), using the OpenAI Whisper API.

    This function requires an OpenAI account; visit https://platform.openai.com/signup, then generate API Key in `User settings <https://platform.openai.com/account/api-keys>`__.

    Detail: https://platform.openai.com/docs/guides/speech-to-text

    Set environment variable ``OPENAI_API_KEY``; otherwise openai library will raise a ``openai.OpenAIError``.
    r   Nz>missing openai module: ensure that openai is set up correctly.)openaiImportErrorr   r   OpenAI	recognize)
recognizerr   r   r   r    openai_recognizerr   r   r   r#   "   s   r#   __main__)get_args
audio_filez-mz--model)choicesdefaultz-lz
--languagez-pz--promptz-vz	--verbose
store_true)actionspeech_recognitionzL%(asctime)s | %(levelname)s | %(name)s:%(funcName)s:%(lineno)d - %(message)sr   r   )r   r   r   r   r   r   r   r   )/
__future__r   loggingtypingr   r   typing_extensionsr   speech_recognition.audior   speech_recognition.exceptionsr   /speech_recognition.recognizers.whisper_api.baser   r   r
   r#   r   argparser'   r-   srArgumentParserparseradd_argument
parse_argsargsverbose	getLoggerspeech_recognition_loggersetLevelDEBUGStreamHandlerconsole_handler	Formatterconsole_formattersetFormatter
addHandler	from_filer(   r   r   recognize_argsr   r   transcriptionprintr   r   r   r   <module>   sX    






