leadr64/database
0
1import gradio as gr2import laion_clap3from qdrant_client import QdrantClient4import os5 6# Utilisez les variables d'environnement pour la configuration7QDRANT_HOST = os.getenv('QDRANT_HOST', 'localhost')8QDRANT_PORT = int(os.getenv('QDRANT_PORT', 6333))9 10# Connexion à Qdrant11client = QdrantClient(QDRANT_HOST, port=QDRANT_PORT)12print("[INFO] Client created...")13 14# Charger le modèle15print("[INFO] Loading the model...")16model_name = "laion/larger_clap_music"17model = laion_clap.CLAP_Module(enable_fusion=False)18model.load_ckpt() # télécharger le checkpoint préentraîné par défaut19 20# Interface Gradio21max_results = 1022 23def sound_search(query):24 text_embed = model.get_text_embedding([query, ''])[0] # trick because can't accept singleton25 hits = client.search(26 collection_name="demo_db7",27 query_vector=text_embed,28 limit=max_results,29 )30 return [31 gr.Audio(32 hit.payload['audio_path'],33 label=f"style: {hit.payload['style']} -- score: {hit.score}")34 for hit in hits35 ]36 37with gr.Blocks() as demo:38 gr.Markdown(39 """# Sound search database """40 )41 inp = gr.Textbox(placeholder="What sound are you looking for ?")42 out = [gr.Audio(label=f"{x}") for x in range(max_results)] # Nécessaire pour avoir différents objets43 inp.change(sound_search, inp, out)44 45demo.launch()46 