test_app / app.py
rjzevallos's picture
Update app.py
98eaa14 verified
raw
history blame
2.16 kB
import gradio as gr
LAST_UPDATED = "Nov 22th 2024"
####################################
# Datos est谩ticos del leaderboard
####################################
leaderboard_data = [
{'name': 'StyleTTS 2', 'STOI': 0.998, 'PESQ': 3.921, 'WER': 0.162, 'UTMOS': 3.47},
{'name': 'Matxa-TTS', 'STOI': 0.996, 'PESQ': 3.539, 'WER': 0.179, 'UTMOS': 3.50},
{'name': 'Matxa-TTS-multiaccent', 'STOI': 0.996, 'PESQ': 3.415, 'WER': 0.242, 'UTMOS': 2.98},
{'name': 'StableTTS', 'STOI': 0.997, 'PESQ': 3.643, 'WER': 0.164, 'UTMOS': 2.62},
]
####################################
# Functions (static version)
####################################
def get_leaderboard():
"""
Retorna el leaderboard en orden descendente por PESQ y luego por UTMOS.
"""
# Ordenar primero por PESQ (calidad del habla) y luego por UTMOS (calidad percibida)
sorted_leaderboard = sorted(leaderboard_data, key=lambda x: (x['PESQ'], x['UTMOS']), reverse=True)
# Asignar el rank basado en el orden por PESQ
for rank, model in enumerate(sorted_leaderboard):
model['rank'] = rank + 1 # rank es la posici贸n en la lista (1-indexed)
return [[model['rank'], model['name'], model['UTMOS'], model['WER'], model['STOI'], model['PESQ']] for model in sorted_leaderboard]
####################################
# Interfaz con Gradio
####################################
theme = gr.themes.Base(
font=[gr.themes.GoogleFont('Libre Franklin'), gr.themes.GoogleFont('Public Sans'), 'system-ui', 'sans-serif'],
)
with gr.Blocks(theme=theme) as demo:
gr.Markdown("# 馃弳 Leaderboard\nVote to help the community determine the best Catalan TTS models.\n")
# Inicializa la tabla con los datos directamente al iniciar
leaderboard_table = gr.DataFrame(
headers=["Rank", "Model", "UTMOS", "WER", "STOI", "PESQ"],
datatype=["str", "str", "str", "str", "str", "str"],
value=get_leaderboard() # Carga los datos iniciales de la tabla
)
# No es necesario usar hilos o actualizaci贸n autom谩tica aqu铆
# Lanzar la aplicaci贸n
demo.queue(api_open=False, default_concurrency_limit=40).launch(show_api=False)