
    /jV                        S SK Jr  S SKrS SKJr  S SKJr  SSKJr  SSK	J
r
JrJrJr  SSKJrJr  S	S
KJrJrJrJrJr  \" S \
R.                  S9r " S S\5      r " S S\5      rg)    )annotationsN)AsyncIterable)Any   )utils)DEFAULT_API_CONNECT_OPTIONS	NOT_GIVENAPIConnectOptions
NotGivenOr)VADVADEventType   )STTRecognizeStreamSpeechEventSpeechEventTypeSTTCapabilities)	max_retrytimeoutc                     ^  \ rS rSrSU 4S jjr\SS j5       r\SS j5       r\SS j5       r\	\
S.       SS jjr\	\
S.     SS jjrSS	 jrSS
 jrSrU =r$ )StreamAdapter   c                  > [         TU ]  [        SSSS9S9  X l        Xl        U R                  R                  SU R                  5        g )NTF)	streaminginterim_resultsdiarization)capabilitiesmetrics_collected)super__init__r   _vad_stton_on_metrics_collected)selfsttvad	__class__s      R/app/agent/.venv/lib/python3.13/site-packages/livekit/agents/stt/stream_adapter.pyr    StreamAdapter.__init__   sM    ( %! 	 	
 		 			($*D*DE    c                    U R                   $ N)r"   r%   s    r)   wrapped_sttStreamAdapter.wrapped_stt!   s    yyr+   c                .    U R                   R                  $ r-   )r"   modelr.   s    r)   r2   StreamAdapter.model%   s    yyr+   c                .    U R                   R                  $ r-   )r"   providerr.   s    r)   r5   StreamAdapter.provider)   s    yy!!!r+   )languageconn_optionsc               R   #    U R                   R                  XUS9I S h  vN $  N7f)Nbufferr7   r8   )r"   	recognize)r%   r;   r7   r8   s       r)   _recognize_implStreamAdapter._recognize_impl-   s2      YY((< ) 
 
 	
 
s   '%'c               D    [        U U R                  U R                  UUS9$ )N)r'   r/   r7   r8   )StreamAdapterWrapperr!   r"   )r%   r7   r8   s      r)   streamStreamAdapter.stream8   s(     $				%
 	
r+   c                0    U R                   " S/UQ70 UD6  g Nr   )emit)r%   argskwargss      r)   r$   #StreamAdapter._on_metrics_collectedF   s    		%777r+   c                X   #    U R                   R                  SU R                  5        g 7frD   )r"   offr$   r.   s    r)   acloseStreamAdapter.acloseI   s     		)4+E+EFs   (*)r"   r!   )r&   r   r'   r   returnNone)rM   r   )rM   str)r;   zutils.AudioBufferr7   NotGivenOr[str]r8   r
   rM   r   )r7   rP   r8   r
   rM   r   )rF   r   rG   r   rM   rN   rM   rN   )__name__
__module____qualname____firstlineno__r    propertyr/   r2   r5   r	   r   r=   rA   r$   rK   __static_attributes____classcell__r(   s   @r)   r   r      s    F     " " %.*E	
!	
 "		

 (	
 
	
 %.*E	
 "
 (	

 

8G Gr+   r   c                  X   ^  \ rS rSr            SU 4S jjrSS jrSS jrSrU =r$ )	r@   M   c               Z   > [         TU ]  U[        S9  X l        X0l        XPl        X@l        g )N)r&   r8   )r   r    *DEFAULT_STREAM_ADAPTER_API_CONNECT_OPTIONSr!   _wrapped_stt_wrapped_stt_conn_options	_language)r%   r&   r'   r/   r7   r8   r(   s         r)   r    StreamAdapterWrapper.__init__N   s.     	S/YZ	')5&!r+   c                ,   #    U  S h  vN nM   N
 g 7fr-    )r%   event_aiter_s      r)   _metrics_monitor_task*StreamAdapterWrapper._metrics_monitor_task]   s     " 	!	{s   c                  ^ ^#    T R                   R                  5       mSU U4S jjnSU U4S jjn[        R                  " U" 5       SS9[        R                  " U" 5       SS9/n [        R                  " U6 I S h  vN   [
        R                  R                  " U6 I S h  vN   TR                  5       I S h  vN   g  NB N N	! [
        R                  R                  " U6 I S h  vN    TR                  5       I S h  vN    f = f7f)Nc                    >#    TR                     Sh  vN n [        U TR                  5      (       a  TR                  5         M6  TR	                  U 5        MI   ND
 TR                  5         g7f)zforward input to vadN)	_input_ch
isinstance_FlushSentinelflush
push_frame	end_input)inputr%   
vad_streams    r)   _forward_input1StreamAdapterWrapper._run.<locals>._forward_inputd   sY     #~~ -eeT%8%899$$&%%e,	-~   "s&   A-AAAAA-AA-c                    >#    T  Sh  vN n U R                   [        R                  :X  a4  TR                  R	                  [        [        R                  5      5        M[  U R                   [        R                  :X  d  M{  TR                  R	                  [        [        R                  S95        [        R                  " U R                  5      nTR                  R                  UTR                  TR                  S9I Sh  vN n[        UR                   5      S:X  a  GM  UR                   S   R"                  (       d  GM?  TR                  R	                  [        [        R$                  UR                   S   /S95        GM   GN} N
 g7f)zrecognize speech from vadN)typer:   r   )ru   alternatives)ru   r   START_OF_SPEECH	_event_chsend_nowaitr   r   END_OF_SPEECHr   merge_framesframesr^   r<   r`   r_   lenrv   textFINAL_TRANSCRIPT)eventmerged_framest_eventr%   rq   s      r)   
_recognize-StreamAdapterWrapper._run.<locals>._recognizen   s0    ) e::!=!==NN..{?;Z;Z/[\ZZ<#=#==NN..#!0!>!> %*$6$6u||$DM$($5$5$?$?,!%%)%C%C %@ % G 7//0A5 $11!499 NN..#!0!A!A*1*>*>q*A)B-  *s@   FFFFA/FBFF
BFF
FFforward_input)namer<   rQ   )	r!   rA   asynciocreate_taskgatherr   aiocancel_and_waitrK   )r%   rr   r   tasksrq   s   `   @r)   _runStreamAdapterWrapper._runa   s     YY%%'
	# 	#	 	@  0G
;?
	&..%((())++U333##%%% )3% ))++U333##%%%sl   A!D	&C <B?=C  D	!C"D	9C:D	?C D	D	!D&C)'D?D DD	)r`   r!   r^   r_   )r&   r   r'   r   r/   r   r7   rP   r8   r
   rM   rN   )rd   zAsyncIterable[SpeechEvent]rM   rN   rQ   )	rR   rS   rT   rU   r    rf   r   rW   rX   rY   s   @r)   r@   r@   M   sQ    "" 	"
 " "" (" 
"4& 4&r+   r@   )
__future__r   r   collections.abcr   typingr    r   typesr   r	   r
   r   r'   r   r   r&   r   r   r   r   r   r   r]   r   r@   rc   r+   r)   <module>r      sY    "  )   Y Y # T T .?4<<. *
8GC 8GvH&? H&r+   