
    h                        S SK Jr  S SKrS SKrS SKrS SKrS SKJrJrJ	r	J
r
JrJrJr  S SKJrJr  SSKJrJr  SSKJrJr  \(       a  S SKJr  Sr\" S	\R8                  S
9r " S S\
\   5      rg)    )annotationsN)AnyTypeUnionGenericTypeVarCallableoverload)TYPE_CHECKINGLiteral   )	FileTypesFileContent)numpysounddevicei]  DType)boundc                      \ rS rSrS\R
                  SS4       SS jjrSS jr\SS j5       r	\SS j5       r	\SSS jj5       r	SSS	 jjr	S
r
g)
Microphone      Nc                b    Xl         X l        X0l        / U l        X@l        [        U5      U l        g N)channelsdtypeshould_recordbuffer_chunkstimeoutcallablehas_record_function)selfr   r   r   r   s        K/var/www/html/env/lib/python3.13/site-packages/openai/helpers/microphone.py__init__Microphone.__init__   s.     !
*#+M#:     c                   [         R                  " 5       n[        R                  " US5       nUR	                  U R
                  5        UR                  [        R                  " U R                  5      R                  5        UR                  [        5        UR                  UR                  5       5        S S S 5        UR                  S5        SUS4$ ! , (       d  f       N$= f)Nwr   z	audio.wavz	audio/wav)ioBytesIOwaveopensetnchannelsr   setsampwidthnpr   itemsizesetframerateSAMPLE_RATEwriteframestobytesseek)r!   
audio_databufferwav_files       r"   _ndarray_to_wavMicrophone._ndarray_to_wav%   s     jjlYYvs#x!!$--0!!"((4::"6"?"?@!!+.  !3!3!56	 $
 	AV[11 $#s   B	C
C"c                   #    g 7fr    r!   return_ndarrays     r"   recordMicrophone.record/   s     QT   c                   #    g 7fr   r;   r<   s     r"   r>   r?   2   s     ILr@   c                   #    g 7fr   r;   r<   s     r"   r>   r?   5   s     EHr@   c                p  ^ ^^^#    [         R                  " 5       m[         R                  " 5       m/ T l        [        R
                  " 5       m        SUUU U4S jjn[        R                  " UT R                  [        T R                  S9nU   TR                  5       I S h  vN   S S S 5        [        T R                  5      S:  a  [        R                  " T R                  SS9O[        R                  " / T R                  S9nU(       a  U$ T R!                  U5      $  N}! , (       d  f       N= f7f)Nc                  > [         R                  " 5       T
-
  nT	R                  b  UT	R                  :  OSnU(       a+  TR                  TR                  5        [
        R                  e[        T	R                  5      (       a  T	R                  5       OSnU(       d+  TR                  TR                  5        [
        R                  eT	R                  R                  U R                  5       5        g )NFT)timeperf_counterr   call_soon_threadsafesetsdCallbackStopr   r   r   appendcopy)indata_frame_count
_time_info_statusexecution_timereached_recording_timeoutshould_be_recordingeventloopr!   
start_times          r"   callback#Microphone.record.<locals>.callback>   s     "..0:=NIMIa(Egl%())%))4oo%:B4CUCU:V:V$"4"4"6\`&))%))4oo%%%fkkm4r%   )rW   r   
samplerater   r   )axis)r   )rM   npt.NDArray[DType]rN   intrO   r   rP   r   )asyncioget_event_loopEventr   rE   rF   rI   InputStreamr   r1   r   waitlenr.   concatenatearrayr8   )r!   r=   rW   streamconcatenated_chunksrT   rU   rV   s   `    @@@r"   r>   r?   8   s    %%'79&&(
	5&	5	5 	5 		5 	5& **"]]	
 **,  4%%&* NN4--A6"DJJ/ 	 &&''(;<<  Vs1   BD6D%%D#&D%*A9D6#D%%
D3/D6)r   r   r   r    r   r   )r   r\   r   zType[DType]r   zUnion[Callable[[], bool], None]r   zUnion[float, None])r5   r[   returnr   )r=   zLiteral[True]rg   r[   )r=   zLiteral[False]rg   r   ).)r=   Nonerg   r   )F)r=   zUnion[bool, None]rg   z$Union[npt.NDArray[DType], FileTypes])__name__
__module____qualname____firstlineno__r.   int16r#   r8   r
   r>   __static_attributes__r;   r%   r"   r   r      sz     XX9=&*;; ; 7	;
 $;2 T TL LH H,= ,=r%   r   )
__future__r   r(   rE   r*   r]   typingr   r   r   r   r   r	   r
   typing_extensionsr   r   _typesr   r   _extrasr   r.   r   rI   numpy.typingnptr1   genericr   r   r;   r%   r"   <module>rw      sS    " 	    I I I 4 + 4rzz*N= N=r%   