
    љi	                     n    S SK r S SKrS SKJr  S SKrSSKJr  \R                  " \5      r	 " S S\5      r
g)    N)List   )SpeechRecognizerc                      ^  \ rS rSr   SSSSSS.S\S\S	\S
\\   S\S\S\S\4U 4S jjjjr	S\
4U 4S jjrS\4S jrS\S\4S jrSrU =r$ )OpenAISpeechRecognizer
   d      g      $@F)max_connectionsmax_keepalive_connectionstimeoutdebugopenai_api_keysample_ratelanguagealternative_languagesr   r   r   r   c          	      B   > [         T	U ]  UUUUUUS9  Xl        X l        g )N)r   r   r   r   r   r   )super__init__r   r   )
selfr   r   r   r   r   r   r   r   	__class__s
            Q/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/sts/stt/openai.pyr   OpenAISpeechRecognizer.__init__   s7     	"7+&? 	 	
 -&    returnc                 B   > [         TU ]  5       nU R                  US'   U$ )Nr   )r   
get_configr   )r   configr   s     r   r   !OpenAISpeechRecognizer.get_config"   s%    #% $ 0 0}r   	raw_audioc                 P   [         R                  " 5       n[        R                  " US5       nUR	                  S5        UR                  S5        UR                  U R                  5        UR                  U5        S S S 5        UR                  S5        U$ ! , (       d  f       N!= f)Nwbr      r   )
ioBytesIOwaveopensetnchannelssetsampwidthsetframerater   writeframesseek)r   r    bufferwfs       r   to_wave_file#OpenAISpeechRecognizer.to_wave_file'   ss    YYvt$OOAOOAOOD,,-NN9%	 %
 	A %$s   AB
B%datac                   #    SSU R                    30nSS0nU R                  (       aN  U R                  (       d=  SU R                  ;   a  U R                  R                  S5      S   OU R                  US'   SS	U R	                  U5      S
40nU R                  SSUUUS9I S h  vN n UR                  5       S   nU R                  (       a  [        R                  SU 35        U$  NC!    g = f7f)NAuthorizationzBearer modelz	whisper-1-r   r   filez	voice.wavz	audio/wavPOSTz.https://api.openai.com/v1/audio/transcriptions)methodurlheadersr1   filestextzRecognized: )
r   r   r   splitr/   http_request_with_retryjsonr   loggerinfo)r   r1   r:   	form_datar;   resprecognized_texts          r   
transcribe!OpenAISpeechRecognizer.transcribe1   s     wt':':&;<

 [
	 ==!;!;CF$--CWDMM$7$7$<Q$?]a]j]jIj! [$"3"3D"9;G
 11@ 2 
 
	"iik&1Ozzl?*;<=""
	s*   B!C0#C'$C0)=C) &C0)C-+C0)r   r   )i>  jaN)__name__
__module____qualname____firstlineno__strintr   floatboolr   dictr   bytesr/   rE   __static_attributes____classcell__)r   s   @r   r   r   
   s     !+/'  #)+'' ' 	'
  $Cy' ' $'' ' ' '.D 
e U s  r   r   )r$   loggingtypingr   r&    r   	getLoggerrH   r@   r    r   r   <module>rY      s3    	    			8	$E- Er   