Commit 9a02934
committed
feat(bidi): add configurable event_queue_size to BidiAgent
The internal event queue between the model receive loop and the output
handler was hardcoded to maxsize=1. This causes the model receive loop
to block whenever the output handler performs any async I/O (e.g.,
websocket.send_json()), resulting in audio chunks piling up and
delivering in bursts — perceived as choppy audio.
This is particularly noticeable with Gemini Live which sends many small
audio chunks rapidly (~50/sec), unlike Nova Sonic which sends fewer,
larger chunks.
Add a configurable event_queue_size parameter to BidiAgent (default: 1
to preserve existing behavior). Users experiencing choppy audio with
fast-delivering models can increase this value to provide buffering
between the model receive loop and the output handler.1 parent 980bc91 commit 9a02934
2 files changed
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
| 77 | + | |
77 | 78 | | |
78 | 79 | | |
79 | 80 | | |
| |||
93 | 94 | | |
94 | 95 | | |
95 | 96 | | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
96 | 102 | | |
97 | 103 | | |
98 | 104 | | |
| |||
108 | 114 | | |
109 | 115 | | |
110 | 116 | | |
| 117 | + | |
111 | 118 | | |
112 | 119 | | |
113 | 120 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
| 53 | + | |
52 | 54 | | |
53 | 55 | | |
54 | 56 | | |
| |||
65 | 67 | | |
66 | 68 | | |
67 | 69 | | |
| 70 | + | |
68 | 71 | | |
69 | 72 | | |
70 | 73 | | |
| |||
94 | 97 | | |
95 | 98 | | |
96 | 99 | | |
97 | | - | |
| 100 | + | |
98 | 101 | | |
99 | 102 | | |
100 | 103 | | |
| |||
0 commit comments