ó
    ûÞ j  ã                  óà   • 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        ÚS/var/www/html/gaurav/venv/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�   € Ü Ÿjšj›lˆÜ�YŠY�v˜sÔ# 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   é € ØILùr@   c              ƒ  ó   #   • g 7fr   r;   r<   s     r"   r>   r?   5   s   é € ØEHùr@   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°:Ñ=ˆNØIMÏÉÑIa¨¸¿¹Ò(EÐglÐ%Þ(Ø×)Ñ)¨%¯)©)Ô4Ü—o‘oÐ%ä:BÀ4×CUÑCU×:VÑ:V $×"4Ñ"4Ô"6Ð\`ÐÞ&Ø×)Ñ)¨%¯)©)Ô4Ü—o‘oÐ%à×Ñ×%Ñ% f§k¡k£mÕ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×%Ñ%Ó&¨Ó*ô �NŠN˜4×-Ñ-°AÒ6ä—’˜" D§J¡JÑ/ð 	ö Ø&Ð&à×'Ñ'Ð(;Ó<Ð<ñ ÷ �Vüs1   †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   † ð ØŸX™XØ9=Ø&*ð;àð;ð ð;ð 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æÝà€á�˜rŸz™zÑ*€ôN=�˜‘õ N=r%   