ankban commited on
Commit
4d75bf0
Β·
verified Β·
1 Parent(s): 54819ca

Update spoken_module.py

Browse files
Files changed (1) hide show
  1. spoken_module.py +22 -14
spoken_module.py CHANGED
@@ -27,7 +27,6 @@ Then provide:
27
  - A detailed summary of strengths and improvement areas.
28
  - One motivational line to end with. Do not specifically add motivational keyword, just add the line.
29
  Transcript:
30
- {transcript}
31
  {history_section}
32
  """.strip()
33
 
@@ -39,7 +38,16 @@ Transcript:
39
  ],
40
  temperature=0.7
41
  )
42
- return response.choices[0].message.content
 
 
 
 
 
 
 
 
 
43
 
44
  def generate_example_response(transcript, language):
45
  prompt = f"""Rewrite this speech to make it more polished, fluent, and confident.
@@ -91,8 +99,11 @@ def spoken_dashboard(nickname_input):
91
 
92
  example_box = gr.Textbox(label="πŸ—£ Suggested Improvement", visible=True)
93
  history_table = gr.Dataframe(headers=["πŸ•’ Timestamp", "🌐 Language", "πŸ“„ Transcript", "πŸ’¬ Feedback"])
94
- score_chart = gr.Plot(label="πŸ“Š Score Comparison")
95
- trend_chart = gr.Plot(label="πŸ“ˆ Tone Progress")
 
 
 
96
  milestone_box = gr.Markdown(visible=False)
97
 
98
  def tutor_feedback(audio_file, language, goal, focus_areas, nickname):
@@ -108,34 +119,31 @@ def spoken_dashboard(nickname_input):
108
  previous_transcript = previous_sessions[-1].transcript if previous_sessions else None
109
  previous_feedback = previous_sessions[-1].feedback if previous_sessions else None
110
 
111
- feedback_text = generate_feedback(transcript, language, goal, focus_areas, previous_transcript)
112
-
113
- print("GPT FEEDBACK:\n", feedback_text)
114
- print("PARSED SCORES:\n", parse_scores_from_feedback(feedback_text))
115
 
116
  if previous_feedback:
117
- feedback_text += generate_progress_summary(feedback_text, previous_feedback)
118
 
119
  milestone = ""
120
  session_count = len(previous_sessions) + 1
121
  if session_count in [3, 5, 10]:
122
  milestone = f"πŸŽ‰ Congrats on completing **{session_count} sessions**!"
123
- feedback_text += f"\n\n{milestone}"
124
 
125
  lang_code = LANG_CODES.get(language, "en")
126
- tts = gTTS(feedback_text, lang=lang_code)
127
  mp3_path = f"/tmp/{uuid.uuid4()}.mp3"
128
  tts.save(mp3_path)
129
 
130
- save_to_db(nickname, transcript, feedback_text, language)
131
  sessions = fetch_user_sessions(nickname)
132
  session_table = [[s.timestamp, s.language, s.transcript[:40], s.feedback[:40]] for s in sessions]
133
 
134
- score_plot = render_score_chart(build_score_comparison_data(feedback_text, previous_feedback)) if previous_feedback else render_empty_chart("πŸ“Š Score Comparison")
135
  dates, tone_scores = build_trend_data(sessions, "Tone")
136
  trend_plot = render_trend_chart(dates, tone_scores, "Tone") if tone_scores else render_empty_chart("πŸ“ˆ Tone Progress")
137
 
138
- return transcript, feedback_text, mp3_path, transcript, session_table, score_plot, trend_plot, gr.update(visible=bool(milestone), value=milestone)
139
 
140
  audio_input.change(
141
  fn=tutor_feedback,
 
27
  - A detailed summary of strengths and improvement areas.
28
  - One motivational line to end with. Do not specifically add motivational keyword, just add the line.
29
  Transcript:
 
30
  {history_section}
31
  """.strip()
32
 
 
38
  ],
39
  temperature=0.7
40
  )
41
+ feedback = response.choices[0].message.content
42
+
43
+ # Strip the JSON block from the feedback before returning to user
44
+ try:
45
+ split_idx = feedback.index('}') + 1
46
+ feedback_clean = feedback[split_idx:].strip()
47
+ except:
48
+ feedback_clean = feedback
49
+
50
+ return feedback, feedback_clean
51
 
52
  def generate_example_response(transcript, language):
53
  prompt = f"""Rewrite this speech to make it more polished, fluent, and confident.
 
99
 
100
  example_box = gr.Textbox(label="πŸ—£ Suggested Improvement", visible=True)
101
  history_table = gr.Dataframe(headers=["πŸ•’ Timestamp", "🌐 Language", "πŸ“„ Transcript", "πŸ’¬ Feedback"])
102
+
103
+ with gr.Row():
104
+ score_chart = gr.Plot(label="πŸ“Š Score Comparison")
105
+ trend_chart = gr.Plot(label="πŸ“ˆ Tone Progress")
106
+
107
  milestone_box = gr.Markdown(visible=False)
108
 
109
  def tutor_feedback(audio_file, language, goal, focus_areas, nickname):
 
119
  previous_transcript = previous_sessions[-1].transcript if previous_sessions else None
120
  previous_feedback = previous_sessions[-1].feedback if previous_sessions else None
121
 
122
+ full_feedback, feedback_clean = generate_feedback(transcript, language, goal, focus_areas, previous_transcript)
 
 
 
123
 
124
  if previous_feedback:
125
+ feedback_clean += generate_progress_summary(full_feedback, previous_feedback)
126
 
127
  milestone = ""
128
  session_count = len(previous_sessions) + 1
129
  if session_count in [3, 5, 10]:
130
  milestone = f"πŸŽ‰ Congrats on completing **{session_count} sessions**!"
131
+ feedback_clean += f"\n\n{milestone}"
132
 
133
  lang_code = LANG_CODES.get(language, "en")
134
+ tts = gTTS(feedback_clean, lang=lang_code)
135
  mp3_path = f"/tmp/{uuid.uuid4()}.mp3"
136
  tts.save(mp3_path)
137
 
138
+ save_to_db(nickname, transcript, full_feedback, language)
139
  sessions = fetch_user_sessions(nickname)
140
  session_table = [[s.timestamp, s.language, s.transcript[:40], s.feedback[:40]] for s in sessions]
141
 
142
+ score_plot = render_score_chart(build_score_comparison_data(full_feedback, previous_feedback)) if previous_feedback else render_empty_chart("πŸ“Š Score Comparison")
143
  dates, tone_scores = build_trend_data(sessions, "Tone")
144
  trend_plot = render_trend_chart(dates, tone_scores, "Tone") if tone_scores else render_empty_chart("πŸ“ˆ Tone Progress")
145
 
146
+ return transcript, feedback_clean, mp3_path, transcript, session_table, score_plot, trend_plot, gr.update(visible=bool(milestone), value=milestone)
147
 
148
  audio_input.change(
149
  fn=tutor_feedback,