MK-316 commited on
Commit
5b088d2
1 Parent(s): 1b82471

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -15
app.py CHANGED
@@ -15,26 +15,33 @@ def generate_speech(level, x, y, audio_option, pos_filter):
15
  data = load_data(level)
16
 
17
  x, y = int(x), int(y)
18
- if pos_filter != "Any":
19
  filtered_df = data[(data['SID'] >= x) & (data['SID'] <= y) & (data['POS'].str.lower() == pos_filter.lower())]
20
- else:
21
  filtered_df = data[(data['SID'] >= x) & (data['SID'] <= y)]
22
 
23
- combined_audio = AudioSegment.silent(duration=1000)
24
-
25
- for _, row in filtered_df.iterrows():
26
- if audio_option == "Audio with number":
27
- # Correcting the sentence structure to include both SID and the word's details properly
28
- sentence = f"Number {row['SID']}. {row['WORD']}! {row['WORD']} is a {row['POS']}."
29
- else: # "Audio without number"
30
- sentence = f"{row['WORD']}!"
31
-
32
  tts = gTTS(text=sentence, lang='en')
33
  mp3_fp = io.BytesIO()
34
  tts.write_to_fp(mp3_fp)
35
  mp3_fp.seek(0)
36
  sentence_audio = AudioSegment.from_file(mp3_fp, format="mp3")
37
- combined_audio += sentence_audio + AudioSegment.silent(duration=1500)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
  mp3_io = io.BytesIO()
40
  combined_audio.export(mp3_io, format='mp3')
@@ -46,10 +53,10 @@ iface = gr.Interface(
46
  fn=generate_speech,
47
  inputs=[
48
  gr.Dropdown(label="Select Level", choices=['A1', 'A2', 'B1', 'B2', 'C1', '5K']),
49
- gr.Number(label="Range: Start Number (x)"),
50
- gr.Number(label="Range: End Number (y)"),
51
  gr.Radio(label="Audio Option", choices=["Audio with number", "Audio without number"]),
52
- gr.Dropdown(label="Select Part of Speech", choices=["ALL", "Noun", "Verb", "Adjective", "Adverb", "Preposition"]) # Corrected line
53
  ],
54
  outputs=gr.Audio(label="Generated Speech"),
55
  title="Oxford Learner Vocabulary by CEFR levels: Learn with Sound",
 
15
  data = load_data(level)
16
 
17
  x, y = int(x), int(y)
18
+ if pos_filter != "ALL": # If a specific POS is selected, filter by it
19
  filtered_df = data[(data['SID'] >= x) & (data['SID'] <= y) & (data['POS'].str.lower() == pos_filter.lower())]
20
+ else: # Include all words if "ALL" is selected
21
  filtered_df = data[(data['SID'] >= x) & (data['SID'] <= y)]
22
 
23
+ if len(filtered_df) == 0: # Check if the filtered DataFrame is empty
24
+ sentence = f"There is no {pos_filter} in the selected range."
 
 
 
 
 
 
 
25
  tts = gTTS(text=sentence, lang='en')
26
  mp3_fp = io.BytesIO()
27
  tts.write_to_fp(mp3_fp)
28
  mp3_fp.seek(0)
29
  sentence_audio = AudioSegment.from_file(mp3_fp, format="mp3")
30
+ combined_audio = sentence_audio
31
+ else:
32
+ combined_audio = AudioSegment.silent(duration=1000)
33
+ for _, row in filtered_df.iterrows():
34
+ if audio_option == "Audio with number":
35
+ sentence = f"Number {row['SID']}. {row['WORD']} is a {row['POS']}."
36
+ else: # "Audio without number"
37
+ sentence = f"{row['WORD']}!"
38
+
39
+ tts = gTTS(text=sentence, lang='en')
40
+ mp3_fp = io.BytesIO()
41
+ tts.write_to_fp(mp3_fp)
42
+ mp3_fp.seek(0)
43
+ sentence_audio = AudioSegment.from_file(mp3_fp, format="mp3")
44
+ combined_audio += sentence_audio + AudioSegment.silent(duration=1500)
45
 
46
  mp3_io = io.BytesIO()
47
  combined_audio.export(mp3_io, format='mp3')
 
53
  fn=generate_speech,
54
  inputs=[
55
  gr.Dropdown(label="Select Level", choices=['A1', 'A2', 'B1', 'B2', 'C1', '5K']),
56
+ gr.Number(label="Start Number (x)"),
57
+ gr.Number(label="End Number (y)"),
58
  gr.Radio(label="Audio Option", choices=["Audio with number", "Audio without number"]),
59
+ gr.Dropdown(label="Select Part of Speech", choices=["ALL", "Noun", "Verb", "Adjective", "Adverb", "Preposition"]) # Updated POS filter input
60
  ],
61
  outputs=gr.Audio(label="Generated Speech"),
62
  title="Oxford Learner Vocabulary by CEFR levels: Learn with Sound",