import pandas as pd import gradio as gr from ui.leaderboard import render_leader_board, render_info_html, render_citation, render_dataset_list from ui.evaluation import render_eval_info from ui.coming_soon import render_coming_soon from ui.submission import render_submission_page import os from utils import load_leaderboard, custom_css from huggingface_hub import snapshot_download import gradio as gr import os import json REPO_ID = os.getenv('REPO_ID') DB_ERR_PATH = f'./data/data/leaderboard_err.csv' CITATIONS_PATH = f'./data/data/model_citations.json' if not os.path.exists('./data/data'): snapshot_download(repo_id=REPO_ID, repo_type="dataset", local_dir='./data/data') with open(CITATIONS_PATH, 'r') as f: model_citations = json.load(f) # Load leaderboard data leaderboard_df_err = load_leaderboard(DB_ERR_PATH) def create_ui(): with gr.Blocks(theme=gr.themes.Soft(text_size=gr.themes.sizes.text_md), css=custom_css) as demo: # gr.Markdown("# Speech Deep Fake Arena") gr.Image('./data/data/df_arena_3.jpg', interactive=False, show_fullscreen_button=False, show_share_button=False, show_label=False) with gr.Tabs(): with gr.Tab("🏆 Leaderboard"): with gr.Column(): render_info_html() gr.Markdown("Table for Equal Error Rate (EER %) for different systems. All the systems are are trained on the ASVspoof 2019 dataset, except for the Whisper MesoNet system, which is trained on a subset of the ASVspoof 2021 DF dataset.") render_leader_board(leaderboard_df_err, model_citations) # Adjust this to work with Gradio components render_citation() render_dataset_list() with gr.Tab("📊 Metrics"): render_eval_info() with gr.Tab("📤 Submit your own system !"): render_submission_page() with gr.Tab("🔜 Coming Soon"): render_coming_soon() return demo # Launch the app create_ui().launch()