sudoping01 commited on
Commit
32130a5
·
verified ·
1 Parent(s): 59944a0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -29
app.py CHANGED
@@ -92,27 +92,29 @@ def calculate_metrics(predictions_df):
92
 
93
  return avg_wer, avg_cer, weighted_wer, weighted_cer, results
94
 
 
 
 
 
95
  def prepare_leaderboard_for_display(df, sort_by="Combined_Score"):
96
  """Format leaderboard for display with ranking and percentages"""
97
  if len(df) == 0:
98
  return pd.DataFrame(columns=["Rank", "Model_Name", "WER (%)", "CER (%)", "Combined_Score (%)", "timestamp"])
99
 
100
- # Make a copy to avoid modifying the original
101
  display_df = df.copy()
102
 
103
- # Sort by specified column
104
  display_df = display_df.sort_values(sort_by)
105
 
106
- # Add ranking column
107
  display_df.insert(0, "Rank", range(1, len(display_df) + 1))
108
 
109
- # Convert metrics to percentages for display
110
  for col in ["WER", "CER", "Combined_Score"]:
111
  if col in display_df.columns:
112
- # Format to 2 decimal places but keep as numeric for sorting
113
  display_df[f"{col} (%)"] = display_df[col].apply(lambda x: f"{x * 100:.2f}")
114
  display_df = display_df.drop(col, axis=1)
115
 
 
 
116
  return display_df
117
 
118
  def update_ranking(method):
@@ -129,11 +131,9 @@ def update_ranking(method):
129
  elif method == "CER Only":
130
  sort_column = "CER"
131
 
132
- # Format for display with ranking and percentages
133
  return prepare_leaderboard_for_display(current_lb, sort_column)
134
 
135
  except Exception:
136
- # Return empty dataframe with formatted columns
137
  return pd.DataFrame(columns=["Rank", "Model_Name", "WER (%)", "CER (%)", "Combined_Score (%)", "timestamp"])
138
 
139
  def process_submission(model_name, csv_file):
@@ -180,33 +180,17 @@ def process_submission(model_name, csv_file):
180
  columns=["Model_Name", "WER", "CER", "Combined_Score", "timestamp"]
181
  )
182
 
183
- # Update leaderboard without formatting for CSV storage
184
  updated_leaderboard = pd.concat([leaderboard, new_entry]).sort_values("Combined_Score")
185
  updated_leaderboard.to_csv(leaderboard_file, index=False)
186
 
187
- # Format for display with ranking and percentages
188
  display_leaderboard = prepare_leaderboard_for_display(updated_leaderboard)
189
 
190
- # Format percentages for the result message
191
- wer_pct = f"{avg_wer * 100:.2f}%"
192
- cer_pct = f"{avg_cer * 100:.2f}%"
193
- combined_pct = f"{combined_score * 100:.2f}%"
194
-
195
- return f"Submission processed successfully! WER: {wer_pct}, CER: {cer_pct}, Combined Score: {combined_pct}", display_leaderboard
196
 
197
  except Exception as e:
198
  return f"Error processing submission: {str(e)}", None
199
 
200
- def add_model_info_section():
201
- """Return HTML with information about viewing model details"""
202
- return """
203
- <div style="margin-top: 20px; padding: 10px; background-color: #f8f9fa; border-radius: 5px;">
204
- <p><strong>📌 Note:</strong> To view details about a specific model, visit its page on the Hugging Face Hub:</p>
205
- <p>https://huggingface.co/MODEL_NAME</p>
206
- <p>For example: <a href="https://huggingface.co/MALIBA-AI/bambara-asr" target="_blank">https://huggingface.co/MALIBA-AI/bambara-asr</a></p>
207
- </div>
208
- """
209
-
210
  with gr.Blocks(title="Bambara ASR Leaderboard") as demo:
211
  gr.Markdown(
212
  """
@@ -225,7 +209,6 @@ with gr.Blocks(title="Bambara ASR Leaderboard") as demo:
225
  if "Combined_Score" not in current_leaderboard.columns:
226
  current_leaderboard["Combined_Score"] = current_leaderboard["WER"] * 0.7 + current_leaderboard["CER"] * 0.3
227
 
228
- # Format for display with ranking and percentages
229
  display_leaderboard = prepare_leaderboard_for_display(current_leaderboard)
230
  except Exception:
231
  display_leaderboard = pd.DataFrame(columns=["Rank", "Model_Name", "WER (%)", "CER (%)", "Combined_Score (%)", "timestamp"])
@@ -250,9 +233,6 @@ with gr.Blocks(title="Bambara ASR Leaderboard") as demo:
250
  outputs=[leaderboard_view]
251
  )
252
 
253
- # Add info about viewing model details
254
- gr.HTML(add_model_info_section())
255
-
256
  gr.Markdown(
257
  """
258
  ## Metrics Explanation
 
92
 
93
  return avg_wer, avg_cer, weighted_wer, weighted_cer, results
94
 
95
+ def format_as_percentage(value):
96
+ """Convert decimal to percentage with 2 decimal places"""
97
+ return f"{value * 100:.2f}%"
98
+
99
  def prepare_leaderboard_for_display(df, sort_by="Combined_Score"):
100
  """Format leaderboard for display with ranking and percentages"""
101
  if len(df) == 0:
102
  return pd.DataFrame(columns=["Rank", "Model_Name", "WER (%)", "CER (%)", "Combined_Score (%)", "timestamp"])
103
 
104
+
105
  display_df = df.copy()
106
 
 
107
  display_df = display_df.sort_values(sort_by)
108
 
 
109
  display_df.insert(0, "Rank", range(1, len(display_df) + 1))
110
 
 
111
  for col in ["WER", "CER", "Combined_Score"]:
112
  if col in display_df.columns:
 
113
  display_df[f"{col} (%)"] = display_df[col].apply(lambda x: f"{x * 100:.2f}")
114
  display_df = display_df.drop(col, axis=1)
115
 
116
+ # Removed the clickable model name transformation
117
+
118
  return display_df
119
 
120
  def update_ranking(method):
 
131
  elif method == "CER Only":
132
  sort_column = "CER"
133
 
 
134
  return prepare_leaderboard_for_display(current_lb, sort_column)
135
 
136
  except Exception:
 
137
  return pd.DataFrame(columns=["Rank", "Model_Name", "WER (%)", "CER (%)", "Combined_Score (%)", "timestamp"])
138
 
139
  def process_submission(model_name, csv_file):
 
180
  columns=["Model_Name", "WER", "CER", "Combined_Score", "timestamp"]
181
  )
182
 
183
+
184
  updated_leaderboard = pd.concat([leaderboard, new_entry]).sort_values("Combined_Score")
185
  updated_leaderboard.to_csv(leaderboard_file, index=False)
186
 
 
187
  display_leaderboard = prepare_leaderboard_for_display(updated_leaderboard)
188
 
189
+ return f"Submission processed successfully! WER: {format_as_percentage(avg_wer)}, CER: {format_as_percentage(avg_cer)}, Combined Score: {format_as_percentage(combined_score)}", display_leaderboard
 
 
 
 
 
190
 
191
  except Exception as e:
192
  return f"Error processing submission: {str(e)}", None
193
 
 
 
 
 
 
 
 
 
 
 
194
  with gr.Blocks(title="Bambara ASR Leaderboard") as demo:
195
  gr.Markdown(
196
  """
 
209
  if "Combined_Score" not in current_leaderboard.columns:
210
  current_leaderboard["Combined_Score"] = current_leaderboard["WER"] * 0.7 + current_leaderboard["CER"] * 0.3
211
 
 
212
  display_leaderboard = prepare_leaderboard_for_display(current_leaderboard)
213
  except Exception:
214
  display_leaderboard = pd.DataFrame(columns=["Rank", "Model_Name", "WER (%)", "CER (%)", "Combined_Score (%)", "timestamp"])
 
233
  outputs=[leaderboard_view]
234
  )
235
 
 
 
 
236
  gr.Markdown(
237
  """
238
  ## Metrics Explanation