|
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") |
|
|
|
|
|
original_df = pd.read_csv(csv_results) |
|
|
|
|
|
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) |
|
|
|
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.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): |
|
|
|
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, |
|
) |
|
|
|
|
|
def update_table(cols): |
|
if "All" in cols: |
|
return gr.Dataframe(value=original_df) |
|
selected_cols = ["Model"] + cols |
|
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) |
|
|