simple_websocket's receive(timeout=1) returns None when no frame arrives in time; it does NOT mean the connection closed. The recv_loop treated None as a disconnect, so any client that pauses sending for >1s (i.e. any silence longer than one second, or a mic that only transmits while speaking) permanently stopped the session from hearing the user -- barge-in and the next turn both went dead while generation kept streaming out. Also default --device to MPS when CUDA is unavailable, so CPU-only Mac paths stop falling back to cpu. |
||
|---|---|---|
| .. | ||
| web_demo.html | ||
| web_demo.py | ||