Spaces:
Runtime error
Runtime error
import gradio as gr | |
from similarity import CLAPSimilarity | |
import matplotlib.pyplot as plt | |
# Initialize the CLAPSimilarity instance | |
similarity_calculator = CLAPSimilarity(training_embeddings_prefix='training') | |
def process_query(text, audio_file, max_tracks): | |
if text and not audio_file: | |
# Process text input | |
similarity_scores = similarity_calculator.compute_similarity( | |
input_data=text, | |
input_type='text', | |
max_tracks=int(max_tracks) # Use user-defined max_tracks | |
) | |
elif audio_file and not text: | |
# Process audio input | |
similarity_scores = similarity_calculator.compute_similarity( | |
input_data=audio_file, | |
input_type='audio', | |
max_tracks=int(max_tracks) # Use user-defined max_tracks | |
) | |
else: | |
return "Please provide either text or audio input." | |
# Calculate the total sum of scores | |
total_score = sum(similarity_scores.values()) | |
# Normalize the scores to sum to 100% | |
normalized_scores = { | |
filename: (score / total_score) * 100 | |
for filename, score in similarity_scores.items() | |
} | |
# Prepare the output data with normalized scores | |
data = [ | |
[filename, round(score, 2)] | |
for filename, score in normalized_scores.items() | |
] | |
return data | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
text_input = gr.Textbox(label="Enter text query") | |
audio_input = gr.Audio(label="Upload audio", type="filepath") | |
max_tracks_input = gr.Number( | |
label="Max Tracks", value=10, precision=0 | |
) # Add this input field | |
with gr.Row(): | |
submit_btn = gr.Button("Submit") | |
output_table = gr.Dataframe( | |
headers=["Filename", "Score"], | |
label="Similarity Results", | |
datatype=["str", "number"], | |
interactive=False | |
) | |
submit_btn.click( | |
fn=process_query, | |
inputs=[text_input, audio_input, max_tracks_input], # Include max_tracks_input | |
outputs=[output_table] | |
) | |
demo.launch() |