ankban commited on
Commit
a426fe8
Β·
verified Β·
1 Parent(s): 9160e30

Update spoken_module.py

Browse files
Files changed (1) hide show
  1. spoken_module.py +13 -8
spoken_module.py CHANGED
@@ -40,7 +40,6 @@ Transcript:
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()
@@ -85,6 +84,12 @@ def spoken_dashboard(nickname_input):
85
  goal_dropdown = gr.Dropdown(label="🎯 Goal", choices=["Interview preparation", "Public speaking", "Class presentation", "General improvement"], value="General improvement")
86
  focus_checkboxes = gr.CheckboxGroup(label="🧠 Focus Areas", choices=["Clarity", "Structure", "Fluency", "Tone", "Content Relevance"], value=["Clarity", "Structure", "Fluency", "Tone", "Content Relevance"])
87
 
 
 
 
 
 
 
88
  with gr.Row():
89
  audio_input = gr.Audio(type="filepath", label="πŸŽ™ Speak or Upload Audio")
90
  audio_output = gr.Audio(label="πŸ”Š Chatter's Response", type="filepath")
@@ -102,13 +107,13 @@ def spoken_dashboard(nickname_input):
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):
110
  if not audio_file:
111
- return "", "No audio received.", None, "", [], render_empty_chart("πŸ“Š Score Comparison"), render_empty_chart("πŸ“ˆ Tone Progress"), gr.update(visible=False)
112
 
113
  if hasattr(nickname, "value"):
114
  nickname = nickname.value
@@ -140,19 +145,19 @@ def spoken_dashboard(nickname_input):
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,
150
- inputs=[audio_input, language_dropdown, goal_dropdown, focus_checkboxes, nickname_input],
151
  outputs=[transcript_box, feedback_box, audio_output, hidden_transcript, history_table, score_chart, trend_chart, milestone_box],
152
  show_progress="minimal"
153
  )
154
 
155
- try_again.click(fn=lambda: ("", "", None, "", "", render_empty_chart("πŸ“Š Score Comparison"), render_empty_chart("πŸ“ˆ Tone Progress"), gr.update(visible=False)),
156
  inputs=None,
157
  outputs=[transcript_box, feedback_box, audio_output, hidden_transcript, example_box, score_chart, trend_chart, milestone_box])
158
 
 
40
  )
41
  feedback = response.choices[0].message.content
42
 
 
43
  try:
44
  split_idx = feedback.index('}') + 1
45
  feedback_clean = feedback[split_idx:].strip()
 
84
  goal_dropdown = gr.Dropdown(label="🎯 Goal", choices=["Interview preparation", "Public speaking", "Class presentation", "General improvement"], value="General improvement")
85
  focus_checkboxes = gr.CheckboxGroup(label="🧠 Focus Areas", choices=["Clarity", "Structure", "Fluency", "Tone", "Content Relevance"], value=["Clarity", "Structure", "Fluency", "Tone", "Content Relevance"])
86
 
87
+ trend_category_dropdown = gr.Dropdown(
88
+ label="πŸ“ˆ Track Progress In",
89
+ choices=["Clarity", "Structure", "Fluency", "Tone", "Content Relevance"],
90
+ value="Tone"
91
+ )
92
+
93
  with gr.Row():
94
  audio_input = gr.Audio(type="filepath", label="πŸŽ™ Speak or Upload Audio")
95
  audio_output = gr.Audio(label="πŸ”Š Chatter's Response", type="filepath")
 
107
 
108
  with gr.Row():
109
  score_chart = gr.Plot(label="πŸ“Š Score Comparison")
110
+ trend_chart = gr.Plot(label="πŸ“ˆ Progress Over Time")
111
 
112
  milestone_box = gr.Markdown(visible=False)
113
 
114
+ def tutor_feedback(audio_file, language, goal, focus_areas, trend_category, nickname):
115
  if not audio_file:
116
+ return "", "No audio received.", None, "", [], render_empty_chart("πŸ“Š Score Comparison"), render_empty_chart("πŸ“ˆ Progress Over Time"), gr.update(visible=False)
117
 
118
  if hasattr(nickname, "value"):
119
  nickname = nickname.value
 
145
  session_table = [[s.timestamp, s.language, s.transcript[:40], s.feedback[:40]] for s in sessions]
146
 
147
  score_plot = render_score_chart(build_score_comparison_data(full_feedback, previous_feedback)) if previous_feedback else render_empty_chart("πŸ“Š Score Comparison")
148
+ dates, trend_scores = build_trend_data(sessions, trend_category)
149
+ trend_plot = render_trend_chart(dates, trend_scores, trend_category) if trend_scores else render_empty_chart(f"πŸ“ˆ {trend_category} Progress")
150
 
151
  return transcript, feedback_clean, mp3_path, transcript, session_table, score_plot, trend_plot, gr.update(visible=bool(milestone), value=milestone)
152
 
153
  audio_input.change(
154
  fn=tutor_feedback,
155
+ inputs=[audio_input, language_dropdown, goal_dropdown, focus_checkboxes, trend_category_dropdown, nickname_input],
156
  outputs=[transcript_box, feedback_box, audio_output, hidden_transcript, history_table, score_chart, trend_chart, milestone_box],
157
  show_progress="minimal"
158
  )
159
 
160
+ try_again.click(fn=lambda: ("", "", None, "", "", render_empty_chart("πŸ“Š Score Comparison"), render_empty_chart("πŸ“ˆ Progress Over Time"), gr.update(visible=False)),
161
  inputs=None,
162
  outputs=[transcript_box, feedback_box, audio_output, hidden_transcript, example_box, score_chart, trend_chart, milestone_box])
163