feat(voice): emit listening event between followup turns
После ответа Python сразу уходит в record() ждать follow-up (FOLLOWUP_TIMEOUT), но планшет об этом не знал — оверлей тихо скрывался и пользователю казалось что Cosmo его не слышит без повторного wake-word. Теперь между итерациями _conversation_loop шлётся notifier.listening() — планшет показывает мягко пульсирующий орб с 'жду' + сохранённым текстом прошлого ответа. Закрывается только по notifier.idle() (таймаут тишины) или если пользователь что-то сказал (command).
This commit is contained in:
@@ -51,9 +51,13 @@ def _handle_reset(text: str, agent_id: str) -> bool:
|
||||
|
||||
def _conversation_loop(agent_id: str, agent_name: str = "Cosmo"):
|
||||
"""Основной цикл диалога.
|
||||
Первая запись — с большим таймаутом (MAX_DURATION), дальше — короткий FOLLOWUP_TIMEOUT."""
|
||||
Первая запись — с большим таймаутом (MAX_DURATION), дальше — короткий FOLLOWUP_TIMEOUT.
|
||||
Между итерациями шлём listening-event чтобы планшет показывал что всё ещё ждём."""
|
||||
first = True
|
||||
while True:
|
||||
if not first:
|
||||
# Follow-up — подсказываем планшету что слушаем, текст прошлого ответа сохраняется.
|
||||
notifier.listening(agent_id)
|
||||
timeout = MAX_DURATION if first else FOLLOWUP_TIMEOUT
|
||||
first = False
|
||||
text = record(initial_silence_timeout=timeout)
|
||||
|
||||
Reference in New Issue
Block a user