Commit
·
63b59c5
1
Parent(s):
d9f5363
Modifications
Browse files
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 =
|
|
|
|
| 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
|
| 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()
|