
    љi                     v    S SK r 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\S\S\S\S\S\4U 4S jjjjr	S\
4U 4S jjrS\S\4S jrS\S\4S jrS\4S jrS\S\4S jrSrU =r$ )AzureSpeechRecognizer   Fd      g      @   )max_connectionsmax_keepalive_connectionstimeoutmax_retriesdebugazure_api_keyazure_regionsample_ratelanguagealternative_languagesuse_classiccidr   r   r   r   r   c          
      p  > [         TU ]  UUUU	U
UUS9  Xl        X l        X0l        Xpl        X`l        U R
                  (       a:  U R                  (       d)  SU l        [        R                  SU R
                   35        U R                  (       a(  U R                  (       a  [        R                  S5        g g g )N)r   r   r   r   r   r   r   Tz0Switch to classic mode to use custom model: cid=ziAuto language detection is not available in Azure STT v1. Set `use_classic=False` to enable this feature.)
super__init__r   r   r   r   r   loggerwarningr   )selfr   r   r   r   r   r   r   r   r   r   r   r   	__class__s                P/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/sts/stt/azure.pyr   AzureSpeechRecognizer.__init__   s      	"7+&?# 	 	
 +(&&88D,,#DNNMdhhZXY : :NN  G  H !;    returnc                 `   > [         TU ]  5       nU R                  US'   U R                  US'   U$ )Nr   r   )r   
get_configr   r   )r   configr   s     r   r$    AzureSpeechRecognizer.get_config0   s5    #% $ 0 0} $ 0 0}r!   datac                    #    U R                   (       a  U R                  U5      I S h  vN $ U R                  U5      I S h  vN $  N N7f)N)r   transcribe_classictranscribe_fast)r   r'   s     r   
transcribe AzureSpeechRecognizer.transcribe6   s>     00666--d333 73s!   &A
AA
AA
A
c                 d  #    SU R                   0nSU R                  0nU R                  (       a  U R                  US'   U R                  SSU R                   S3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Ocp-Apim-Subscription-Keyr   r   POSThttps://zN.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1)methodurlheadersparamscontentDisplayTextRecognized: )	r   r   r   http_request_with_retryr   jsonr   r   info)r   r'   r3   r4   resprecognized_texts         r   r)   (AzureSpeechRecognizer.transcribe_classic<   s     '););
 dmm,88 HHF5M114,,--{| 2 
 
	"iik-8Ozzl?*;<=""
	s*   A!B0#B'$B0)=B) &B0)B-+B0	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   r   )
ioBytesIOwaveopensetnchannelssetsampwidthsetframerater   writeframesseek)r   r>   bufferwfs       r   to_wave_file"AzureSpeechRecognizer.to_wave_fileU   ss    YYvt$OOAOOAOOD,,-NN9%	 %
 	A %$s   AB
B%c                   #    SU R                   0nU R                  /U R                  -   nU R                  U5      S [        R
                  " USS/S.5      S4S.nU R                  SSU R                   S	3UUS
9I S h  vN n UR	                  5       S   S   S   nU R                  (       a  [        R                  SU 35        U$  NI!    g = f7f)Nr.   r   r   )localeschannelszapplication/json)audio
definitionr/   r0   zZ.api.cognitive.microsoft.com/speechtotext/transcriptions:transcribe?api-version=2024-11-15)r1   r2   r3   filescombinedPhrasestextr7   )r   r   r   rL   r9   dumpsr8   r   r   r   r:   )r   r'   r3   rO   rS   r;   r<   s          r   r*   %AzureSpeechRecognizer.transcribe_fast_   s      (););

 ==/D$>$>>&&t,aPQU,S!TVhi

 114,,-  .H  I	 2 
 
	"iik*;<Q?GOzzl?*;<=""
	s+   A<C>C?CAC
 C
CC)r   r   r   r   r   )i>  zja-JPNFN)__name__
__module____qualname____firstlineno__strintr   boolfloatr   dictr$   bytesr+   r)   rL   r*   __static_attributes____classcell__)r   s   @r   r   r      s   
 !+/!"H  #)+"H"H "H 	"H
 "H  $Cy"H "H "H "H $'"H "H "H "H "HHD 4U 4s 4U s 2e % C  r!   r   )rA   r9   loggingtypingr   rC    r   	getLoggerrX   r   r    r!   r   <module>ri      s6    	     			8	$o, or!   