Spaces:
Running
Running
File size: 1,861 Bytes
0dc360b 48b61ab 8e106da 48b61ab 0dc360b 8e106da 0dc360b 8e106da 0dc360b 8e106da 0dc360b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
"""
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]
) |