File size: 2,163 Bytes
5bf8054
c310cb4
df2d876
c310cb4
 
a25ae1b
c310cb4
a25ae1b
df2d876
 
 
 
a25ae1b
c310cb4
 
a25ae1b
c310cb4
 
a25ae1b
 
98eaa14
a25ae1b
98eaa14
 
6e89986
98eaa14
ed2e1d6
 
 
df2d876
 
6e89986
 
 
c310cb4
 
 
5bf8054
 
a25ae1b
c0052fc
a25ae1b
98eaa14
 
 
 
 
 
df2d876
98eaa14
c310cb4
a25ae1b
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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)