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] | |
| ) |