Steveeeeeeen's picture
Steveeeeeeen HF staff
Upload 4 files
69dc62d verified
raw
history blame
4.64 kB
import gradio as gr
import pandas as pd
import json
from constants import BANNER, INTRODUCTION_TEXT, CITATION_TEXT, METRICS_TAB_TEXT, DIR_OUTPUT_REQUESTS, LEADERBOARD_CSS
from init import is_model_on_hub, upload_file, load_all_info_from_dataset_hub
from utils_display import AutoEvalColumn, fields, make_clickable_model, styled_error, styled_message
from datetime import datetime, timezone
LAST_UPDATED = "Nov 22th 2024"
column_names = {
"model": "Model",
"Average WER ⬇️": "Average WER ⬇️",
"RTFx": "RTFx ⬆️️",
"Bulgarian_female": "Bulgarian female",
"Bulgarian_male": "Bulgarian male",
"Catalan_female": "Catalan female",
"Chinese_female": "Chinese female",
"Chinese_male": "Chinese male",
"Eastern_European_male": "Eastern European male",
"European_male": "European male",
"French_female": "French female",
"Ghanain_English_female": "Ghanain English female",
"Indian_English_female": "Indian English female",
"Indian_English_male": "Indian English male",
"Indonesian_female": "Indonesian female",
"Irish_English_female": "Irish English female",
"Irish_English_male": "Irish English male",
"Israeli_male": "Israeli male",
"Italian_female": "Italian female",
"Jamaican_English_female": "Jamaican English female",
"Jamaican_English_male": "Jamaican English male",
"Kenyan_English_female": "Kenyan English female",
"Kenyan_English_male": "Kenyan English male",
"Latin_American_female": "Latin American female",
"Latin_American_male": "Latin American male",
"Lithuanian_male": "Lithuanian male",
"Mainstream_US_English_female": "Mainstream US English female",
"Mainstream_US_English_male": "Mainstream US English male",
"Nigerian_English_female": "Nigerian English female",
"Nigerian_English_male": "Nigerian English male",
"Romanian_female": "Romanian female",
"Scottish_English_male": "Scottish English male",
"Southern_British_English_male": "Southern British English male",
"Spanish_female": "Spanish female",
"Spanish_male": "Spanish male",
"Vietnamese_female": "Vietnamese female",
"Vietnamese_male": "Vietnamese male",
}
eval_queue_repo, requested_models, csv_results = load_all_info_from_dataset_hub()
if not csv_results.exists():
raise Exception(f"CSV file {csv_results} does not exist locally")
# Get csv with data and parse columns
original_df = pd.read_csv(csv_results)
# Formats the columns
def formatter(x):
if type(x) is str:
x = x
else:
x = round(x, 2)
return x
for col in original_df.columns:
if col == "model":
original_df[col] = original_df[col].apply(lambda x: x.replace(x, make_clickable_model(x)))
else:
original_df[col] = original_df[col].apply(formatter) # For numerical values
original_df.rename(columns=column_names, inplace=True)
original_df.sort_values(by='Average WER ⬇️', inplace=True)
COLS = [c.name for c in fields(AutoEvalColumn)]
TYPES = [c.type for c in fields(AutoEvalColumn)]
with gr.Blocks(css=LEADERBOARD_CSS) as demo:
# gr.HTML(BANNER, elem_id="banner")
# Write a header with the title
gr.Markdown("<h1>🤗 Open Automatic Speech Recognition on EdAcc Dataset</h1>", elem_classes="markdown-text")
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")
with gr.Tabs(elem_classes="tab-buttons") as tabs:
with gr.TabItem("🏅 Leaderboard", elem_id="od-benchmark-tab-table", id=0):
# Add column filter dropdown
column_filter = gr.Dropdown(
choices=["All"] + [v for k,v in column_names.items() if k != "model"],
label="Filter by column",
multiselect=True,
value=["All"],
elem_id="column-filter"
)
leaderboard_table = gr.components.Dataframe(
value=original_df,
datatype=TYPES,
elem_id="leaderboard-table",
interactive=False,
visible=True,
)
# Update table columns when filter changes
def update_table(cols):
if "All" in cols:
return gr.Dataframe(value=original_df)
selected_cols = ["Model"] + cols # Always include the Model column
return gr.Dataframe(value=original_df[selected_cols])
column_filter.change(
fn=update_table,
inputs=[column_filter],
outputs=[leaderboard_table]
)
demo.launch(ssr_mode=False)