
    .`i
                     J   d dl Z d dlmZ d dlmZ d dlmZ d dlZd dl	Z	d dl
mZ d dlmZ ddlmZ 	 d dlZn# e$ r  ed          ZY nw xY w	 d dlZn# e$ r  ed	          ZY nw xY w G d
 deeej        ef                            Z G d dee	j                           ZdS )    N)BytesIO)Path)PlaceholderModuletensor2base64   )MediaIOlibrosa	soundfilec                        e Zd Zd fdZdedeej        ef         fdZ	de
de
deej        ef         fdZdedeej        ef         fd	Zd
ddeej        ef         de
de
fdZ xZS )AudioMediaIOreturnNc                 V    t                                                       || _        d S N)super__init__kwargs)selfr   	__class__s     o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/multimodal/media/audio.pyr   zAudioMediaIO.__init__   s&         datac                 H    t          j        t          |          d           S N)sr)r
   loadr   )r   r   s     r   
load_byteszAudioMediaIO.load_bytes&   s    |GDMMd3333r   
media_typec                 P    |                      t          j        |                    S r   )r   base64	b64decoder   r   r   s      r   load_base64zAudioMediaIO.load_base64)   s!    
 v/55666r   filepathc                 .    t          j        |d           S r   )r
   r   )r   r$   s     r   	load_filezAudioMediaIO.load_file0   s    |H....r   WAV)audio_formatmediar(   c                    |\  }}t                      5 }t          j        ||||           |                                }d d d            n# 1 swxY w Y   t	          j        |                              d          S )N)formatzutf-8)r   r   writegetvaluer    	b64encodedecode)r   r)   r(   audior   bufferr   s          r   encode_base64zAudioMediaIO.encode_base643   s     	rYY 	%&OFE2lCCCC??$$D	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% %%,,W555s   -AAAr   N)__name__
__module____qualname__r   bytestuplenptNDArrayfloatr   strr#   r   r&   intr2   __classcell__r   s   @r   r   r      s             4u 4s{E/A)B 4 4 4 477 7 
s{E!	"	7 7 7 7/$ /5e1C+D / / / / "	6 6 6S[#%&6 	6
 
6 6 6 6 6 6 6 6r   r   c                        e Zd Zd fdZdedej        fdZdededej        fdZ	de
dej        fd	Zd
ej        defdZ xZS )AudioEmbeddingMediaIOr   Nc                 H    t                                                       d S r   )r   r   )r   r   s    r   r   zAudioEmbeddingMediaIO.__init__C   s    r   r   c                     t          |          }t          j                                        5  t          j        |d          }|                                cd d d            S # 1 swxY w Y   d S NT)weights_only)r   torchsparsecheck_sparse_tensor_invariantsr   to_dense)r   r   r1   tensors       r   r   z AudioEmbeddingMediaIO.load_bytesF   s     \88:: 	% 	%ZT:::F??$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   *A%%A),A)r   c                 T    |                      t          j        |d                    S )NT)validate)r   pybase64r!   r"   s      r   r#   z!AudioEmbeddingMediaIO.load_base64N   s$    x1$FFFGGGr   r$   c                     t           j                                        5  t          j        |d          }|                                cd d d            S # 1 swxY w Y   d S rD   )rF   rG   rH   r   rI   )r   r$   rJ   s      r   r&   zAudioEmbeddingMediaIO.load_fileQ   s     \88:: 	% 	%Zt<<<F??$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   *AAAr)   c                      t          |          S r   r   )r   r)   s     r   r2   z#AudioEmbeddingMediaIO.encode_base64X   s    U###r   r3   )r4   r5   r6   r   r7   rF   Tensorr   r<   r#   r   r&   r2   r>   r?   s   @r   rA   rA   B   s             %u % % % % %Hc H H H H H H%$ %5< % % % %$5< $C $ $ $ $ $ $ $ $r   rA   )r    ior   pathlibr   numpy.typingtypingr9   rM   rF   vllm.utils.import_utilsr   vllm.utils.serial_utilsr   baser	   r
   ImportErrorr   r8   r:   r;   r   rP   rA    r   r   <module>rZ      s                        5 5 5 5 5 5 1 1 1 1 1 1      +NNNN + + +	**GGG+/ / / /!!+..III/$6 $6 $6 $6 $675e!345 $6 $6 $6N$ $ $ $ $GEL1 $ $ $ $ $s!   7 A
	A
A A&%A&