Spaces:
Running
Running
""" | |
Copyright 2025 Balacoon | |
Samples tab for TTSLeaderboard. | |
""" | |
import gradio as gr | |
from dataset_utils import get_system_types, get_models, get_datasets | |
from samples_data import get_samples_data | |
def create_samples_tab(): | |
with gr.Row(): | |
gr.Markdown(""" | |
Select system type, models of interest, and a dataset, to see samples. | |
""") | |
with gr.Row(): | |
system_type = gr.Dropdown(choices=get_system_types(), label="System Type", value=None) | |
models = gr.Dropdown(choices=[], label="Models", value=None, multiselect=True) | |
dataset = gr.Dropdown(choices=[], label="Dataset", value=None) | |
with gr.Row(): | |
table = gr.DataFrame( | |
value=None, | |
row_count=0, | |
col_count=0, | |
) | |
def update_models(system_type: str): | |
# When system type changes, clear dataset and table | |
models = get_models(system_type) if system_type else [] | |
return [ | |
gr.Dropdown(choices=models, value=None), | |
gr.Dropdown(choices=[], value=None), | |
gr.DataFrame(value=None, row_count=0, col_count=0) | |
] | |
def update_datasets(system_type: str, models: list[str]): | |
datasets = get_datasets(system_type, models, return_union=False) | |
return [ | |
gr.Dropdown(choices=datasets, value=None), | |
gr.DataFrame(value=None, row_count=0, col_count=0) | |
] | |
def update_table(system_type: str, models: list[str], dataset: str): | |
# Only populate table when both selections are made | |
if not system_type or not dataset or not models: | |
return gr.DataFrame(value=None, row_count=0) | |
df, datatypes = get_samples_data(system_type, models, dataset) | |
return gr.DataFrame( | |
value=df, | |
row_count=(len(df), "fixed"), | |
datatype=datatypes, | |
wrap=True, | |
) | |
system_type.change( | |
fn=update_models, | |
inputs=[system_type], | |
outputs=[models, dataset, table] | |
) | |
models.change( | |
fn=update_datasets, | |
inputs=[system_type, models], | |
outputs=[dataset, table] | |
) | |
dataset.change( | |
fn=update_table, | |
inputs=[system_type, models, dataset], | |
outputs=[table] | |
) |