None1145 commited on
Commit
1c61313
·
verified ·
1 Parent(s): 0ded70e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -6
app.py CHANGED
@@ -1,18 +1,25 @@
1
  import pandas as pd
2
  import gradio as gr
3
- import os
4
 
5
- def compare_csv_files():
6
  max_num = 10
7
 
 
8
  df1 = pd.read_csv("result_1.5.csv")
9
  df2 = pd.read_csv("result_1.4.csv")
10
 
11
- merged_df = pd.merge(df1, df2, on="SourceText", suffixes=("_1.5", "_1.4"))
 
12
 
 
 
 
 
 
13
  merged_df["WordErrorRate_Diff"] = merged_df["WordErrorRate_1.5"] - merged_df["WordErrorRate_1.4"]
14
  merged_df["CharacterErrorRate_Diff"] = merged_df["CharacterErrorRate_1.5"] - merged_df["CharacterErrorRate_1.4"]
15
 
 
16
  merged_df["WordErrorRate_Comparison"] = merged_df["WordErrorRate_Diff"].apply(
17
  lambda x: "1.4 is the same as 1.5 (Ignored due to large diff)" if abs(x) > max_num else (
18
  f"1.5 is stronger than 1.4 ({x:.8f})" if x < 0 else (
@@ -28,6 +35,7 @@ def compare_csv_files():
28
  )
29
  )
30
 
 
31
  avg_word_diff = merged_df["WordErrorRate_Diff"].loc[merged_df["WordErrorRate_Diff"].abs() <= max_num].mean()
32
  avg_char_diff = merged_df["CharacterErrorRate_Diff"].loc[merged_df["CharacterErrorRate_Diff"].abs() <= 1].mean()
33
  overall_summary = f"""
@@ -36,19 +44,25 @@ def compare_csv_files():
36
  <p>Average CharacterErrorRate Difference (excluding large diffs): {f'1.5 is stronger ({avg_char_diff:.8f})' if avg_char_diff < 0 else f'1.4 is stronger ({0 - avg_char_diff:.8f})'}</p>
37
  """
38
 
 
39
  result_html = overall_summary + merged_df[[
 
40
  "SourceText",
41
  "WordErrorRate_1.5", "WordErrorRate_1.4", "WordErrorRate_Comparison",
42
  "CharacterErrorRate_1.5", "CharacterErrorRate_1.4", "CharacterErrorRate_Comparison",
43
- # "WhisperText_1.5", "WhisperText_1.4"
44
  ]].to_html(escape=False, index=False)
45
 
46
  return result_html
47
 
 
 
 
 
 
48
  gr.Interface(
49
  fn=compare_csv_files,
50
- inputs=None,
51
  outputs="html",
52
  title="Fish Speech Benchmark",
53
- description="This is a non-official model performance test from Fish Speech / Whisper Base / More data will be added later (not too much)"
54
  ).launch()
 
1
  import pandas as pd
2
  import gradio as gr
 
3
 
4
+ def compare_csv_files(selected_languages):
5
  max_num = 10
6
 
7
+ # Load data
8
  df1 = pd.read_csv("result_1.5.csv")
9
  df2 = pd.read_csv("result_1.4.csv")
10
 
11
+ # Merge with Language column
12
+ merged_df = pd.merge(df1, df2, on=["SourceText", "Language"], suffixes=("_1.5", "_1.4"))
13
 
14
+ # Filter by selected languages
15
+ if selected_languages:
16
+ merged_df = merged_df[merged_df["Language"].isin(selected_languages)]
17
+
18
+ # Calculate differences
19
  merged_df["WordErrorRate_Diff"] = merged_df["WordErrorRate_1.5"] - merged_df["WordErrorRate_1.4"]
20
  merged_df["CharacterErrorRate_Diff"] = merged_df["CharacterErrorRate_1.5"] - merged_df["CharacterErrorRate_1.4"]
21
 
22
+ # Add comparison columns
23
  merged_df["WordErrorRate_Comparison"] = merged_df["WordErrorRate_Diff"].apply(
24
  lambda x: "1.4 is the same as 1.5 (Ignored due to large diff)" if abs(x) > max_num else (
25
  f"1.5 is stronger than 1.4 ({x:.8f})" if x < 0 else (
 
35
  )
36
  )
37
 
38
+ # Overall averages
39
  avg_word_diff = merged_df["WordErrorRate_Diff"].loc[merged_df["WordErrorRate_Diff"].abs() <= max_num].mean()
40
  avg_char_diff = merged_df["CharacterErrorRate_Diff"].loc[merged_df["CharacterErrorRate_Diff"].abs() <= 1].mean()
41
  overall_summary = f"""
 
44
  <p>Average CharacterErrorRate Difference (excluding large diffs): {f'1.5 is stronger ({avg_char_diff:.8f})' if avg_char_diff < 0 else f'1.4 is stronger ({0 - avg_char_diff:.8f})'}</p>
45
  """
46
 
47
+ # Generate result HTML
48
  result_html = overall_summary + merged_df[[
49
+ "Language",
50
  "SourceText",
51
  "WordErrorRate_1.5", "WordErrorRate_1.4", "WordErrorRate_Comparison",
52
  "CharacterErrorRate_1.5", "CharacterErrorRate_1.4", "CharacterErrorRate_Comparison",
 
53
  ]].to_html(escape=False, index=False)
54
 
55
  return result_html
56
 
57
+ # Load unique languages from the data
58
+ df1 = pd.read_csv("result_1.5.csv")
59
+ df2 = pd.read_csv("result_1.4.csv")
60
+ languages = sorted(set(df1["Language"]).union(set(df2["Language"])))
61
+
62
  gr.Interface(
63
  fn=compare_csv_files,
64
+ inputs=gr.CheckboxGroup(choices=languages, label="Select Languages to Compare"),
65
  outputs="html",
66
  title="Fish Speech Benchmark",
67
+ description="Select specific languages to compare the results of WordErrorRate and CharacterErrorRate."
68
  ).launch()