freddyaboulton HF staff commited on
Commit
63b59c5
1 Parent(s): d9f5363

Modifications

Browse files
Files changed (1) hide show
  1. app.py +5 -5
app.py CHANGED
@@ -89,7 +89,8 @@ class AppState:
89
  stream: np.ndarray | None = None
90
  sampling_rate: int = 0
91
  pause_detected: bool = False
92
- started_talking = False
 
93
 
94
 
95
  def determine_pause(audio: np.ndarray, sampling_rate: int, state: AppState) -> bool:
@@ -171,7 +172,7 @@ def process_audio(audio: tuple, state: AppState):
171
 
172
 
173
  def response(state: AppState):
174
- if not state.pause_detected:
175
  return None, AppState()
176
 
177
  for mp3_bytes in speaking(state.stream, state.sampling_rate):
@@ -181,9 +182,8 @@ def response(state: AppState):
181
 
182
 
183
  def start_recording_user(state: AppState):
184
- if state.pause_detected and state.started_talking:
185
  return gr.Audio(recording=True)
186
- return None
187
 
188
  with gr.Blocks() as demo:
189
  with gr.Row():
@@ -213,7 +213,7 @@ with gr.Blocks() as demo:
213
  [input_audio]
214
  )
215
  cancel = gr.Button("Stop Conversation", variant="stop")
216
- cancel.click(lambda: AppState(), None, [state], cancels=[respond, restart])
217
 
218
 
219
  demo.launch()
 
89
  stream: np.ndarray | None = None
90
  sampling_rate: int = 0
91
  pause_detected: bool = False
92
+ started_talking: bool = False
93
+ stopped: bool = False
94
 
95
 
96
  def determine_pause(audio: np.ndarray, sampling_rate: int, state: AppState) -> bool:
 
172
 
173
 
174
  def response(state: AppState):
175
+ if not state.pause_detected and not state.started_talking:
176
  return None, AppState()
177
 
178
  for mp3_bytes in speaking(state.stream, state.sampling_rate):
 
182
 
183
 
184
  def start_recording_user(state: AppState):
185
+ if not state.stopped:
186
  return gr.Audio(recording=True)
 
187
 
188
  with gr.Blocks() as demo:
189
  with gr.Row():
 
213
  [input_audio]
214
  )
215
  cancel = gr.Button("Stop Conversation", variant="stop")
216
+ cancel.click(lambda: (AppState(stopped=True), gr.Audio(recording=False)), None, [state, input_audio], cancels=[respond, restart])
217
 
218
 
219
  demo.launch()