o
    ϯi                     @   s|   d dl Z d dlZd dlmZ d dlmZ d dlmZmZ d dlm	Z	 e	
dZdd Zd	d
 Zdd Zedkr<e  dS dS )    N)create_model)get_audio_features)int16_to_float32float32_to_int16)RobertaTokenizerzroberta-basec                 C   s$   t | ddddd}dd | D S )N
max_lengthTM   pt)padding
truncationr   return_tensorsc                 S   s   i | ]
\}}|| d qS )r   )squeeze).0kv r   R/home/ubuntu/.local/lib/python3.10/site-packages/laion_clap/training/infer_demo.py
<dictcomp>   s    ztokenizer.<locals>.<dictcomp>)tokenizeitems)textresultr   r   r   	tokenizer	   s   r   c               	   C   s   t j rdnd} d}d}d}d}d}d}t||||| ||d	\}}d
dg}	t|	}	|  ||	}
|
  	 }
t
|
 t
|
j d S )Ncuda:0cpufp32
HTSAT-tinyrobertaTaff_2d4/home/la/kechen/Research/KE_CLAP/ckpt/fusion_best.pt	precisiondeviceenable_fusionfusion_typezI love the contrastive learningzI love the pretrain model)torchcudais_availabler   r   evalget_text_embeddingdetachr   numpyprintshape)r"   r!   amodeltmodelr#   r$   
pretrainedmodel	model_cfg	text_data
text_embedr   r   r   
infer_text   s.   


r5   c               	   C   s   t j rdnd} d}d}d}d}d}d}t||||| ||d	\}}tjd
dd\}	}
tt|	}	t |		 }	i }t
||	ddd|d d}|  ||g}|   }t| t|j d S )Nr   r   r   r   r   Tr   r   r    z9/home/la/kechen/Research/KE_CLAP/ckpt/test_clap_short.wavi  )sri S fusion	repeatpad	audio_cfg)data_truncatingdata_fillingr9   )r%   r&   r'   r   librosaloadr   r   
from_numpyfloatr   r(   get_audio_embeddingr*   r   r+   r,   r-   )r"   r!   r.   r/   r#   r$   r0   r1   r2   audio_waveformr6   
audio_dictaudio_embedr   r   r   infer_audio/   s>   
rD   __main__)r%   r<   clap_moduler   training.datar   r   r   transformersr   from_pretrainedr   r   r5   rD   __name__r   r   r   r   <module>   s    

+
