Keep dialogue active after wake word
This commit is contained in:
18
app/main.py
18
app/main.py
@@ -272,6 +272,9 @@ def main():
|
||||
# (True = режим диалога, слушаем сразу. False = ждем "Alexandr")
|
||||
skip_wakeword = False
|
||||
|
||||
# После первой активации по wake word остаемся в диалоге до явной стоп-команды.
|
||||
continuous_followup_mode = True
|
||||
|
||||
# Контекст уточнения "на какое время поставить ...".
|
||||
# Может быть: "timer", "alarm".
|
||||
pending_time_target = None
|
||||
@@ -335,7 +338,10 @@ def main():
|
||||
continue # Продолжаем цикл
|
||||
else:
|
||||
# Режим диалога (Follow-up): ждем продолжения речи без "Alexandr"
|
||||
print("👂 Слушаю продолжение диалога (5 сек)...")
|
||||
if continuous_followup_mode:
|
||||
print("👂 Непрерывный диалог: слушаю следующий вопрос...")
|
||||
else:
|
||||
print("👂 Слушаю продолжение диалога (5 сек)...")
|
||||
# Ждем начала речи 5 сек. Если начали говорить, слушаем до 7 сек.
|
||||
try:
|
||||
user_text = listen(
|
||||
@@ -352,15 +358,15 @@ def main():
|
||||
skip_wakeword = False
|
||||
continue
|
||||
|
||||
if not user_text:
|
||||
if not user_text and not continuous_followup_mode:
|
||||
# Пользователь промолчал — выходим из режима диалога, засыпаем.
|
||||
skip_wakeword = False
|
||||
continue
|
||||
|
||||
# --- Шаг 2: Анализ распознанного текста ---
|
||||
if not user_text:
|
||||
# Пустой ввод: без лишних ответов возвращаемся к ожиданию wake word.
|
||||
skip_wakeword = False
|
||||
# В непрерывном режиме не требуем повторный wake word после тишины.
|
||||
skip_wakeword = continuous_followup_mode
|
||||
continue
|
||||
|
||||
# Проверка на команду "Стоп"
|
||||
@@ -552,12 +558,12 @@ def main():
|
||||
except Exception as init_error:
|
||||
print(f"Ошибка переинициализации STT: {init_error}")
|
||||
speak("Произошла ошибка при распознавании речи.")
|
||||
skip_wakeword = False
|
||||
skip_wakeword = continuous_followup_mode
|
||||
continue
|
||||
|
||||
if not text_to_translate:
|
||||
speak("Я не расслышал текст для перевода.")
|
||||
skip_wakeword = False
|
||||
skip_wakeword = continuous_followup_mode
|
||||
continue
|
||||
|
||||
# Выполняем перевод через AI
|
||||
|
||||
Reference in New Issue
Block a user