Spaces:
Running
Running
""" | |
Copyright 2025 Balacoon | |
Leaderboard tab for TTSLeaderboard. | |
""" | |
import gradio as gr | |
from dataset_utils import get_system_types, get_datasets | |
from leaderboard_data import get_leaderboard_data | |
def create_leaderboard_tab(): | |
with gr.Row(): | |
gr.Markdown(""" | |
Select system type and a dataset, to see the leaderboard. | |
""") | |
with gr.Row(): | |
system_type = gr.Dropdown(choices=get_system_types(), label="System Type", value=None) | |
dataset = gr.Dropdown(choices=[], label="Dataset", value=None) | |
with gr.Row(): | |
table = gr.DataFrame( | |
value=None, | |
row_count=0, | |
col_count=0, | |
) | |
with gr.Row(): | |
legend = gr.Markdown(value="") | |
def update_datasets(system_type: str): | |
# When system type changes, clear dataset and table | |
dataset_choices = get_datasets(system_type) if system_type else [] | |
return [ | |
gr.Dropdown(choices=dataset_choices, value=None), | |
gr.DataFrame(value=None, row_count=0, col_count=0) | |
] | |
def update_table(system_type: str, dataset: str): | |
# Only populate table when both selections are made | |
if not system_type or not dataset: | |
return [gr.DataFrame(value=None, row_count=0), gr.Markdown("")] | |
df, datatypes, description = get_leaderboard_data(system_type, dataset) | |
return [ | |
gr.DataFrame( | |
value=df, | |
row_count=(len(df), "fixed"), | |
datatype=datatypes | |
), | |
gr.Markdown(description) | |
] | |
system_type.change( | |
fn=update_datasets, | |
inputs=[system_type], | |
outputs=[dataset, table] | |
) | |
dataset.change( | |
fn=update_table, | |
inputs=[system_type, dataset], | |
outputs=[table, legend] | |
) |