YandexStation icon indicating copy to clipboard operation
YandexStation copied to clipboard

Несколько TTS команд подряд - не дожидается конца предыдущей

Open SpeedFire0 opened this issue 1 year ago • 3 comments

У меня есть скрипт в котором должны произноситься несколько предложений подряд со статусом дома. Например:

  1. (проверяются обогреватели) "Все обогреватели выключены"
  2. (проверяется свет) "Свет отключен". Так вот, если это две TTS команды (через play_media) то он успевает сказать только часть первой (не дожидаясь конца) и начинает вторую: "Все обогрева... Свет отключен". Пытался использовать очередь. Enqueue - Add to queue. Но нет, не получается.

Есть какой-нибудь вариант?

P.S. Если бы не ужасная работа HA с переменными, в принципе мог бы сначала составить все большое предложение и потом его отправить. Но как-то очень неочевидно.

SpeedFire0 avatar Mar 05 '23 14:03 SpeedFire0

Повесить после каждого предложения ожидание new_state.attributes.alice_state = IDLE.

Sergey-SRG avatar Mar 12 '23 23:03 Sergey-SRG

Несколько TTS команд подряд - не дожидается конца предыдущей

Это не всегда было так. У меня есть скрипты, которые были написаны давно с многочисленными вызовами TTS, они прекрасно работали долгое время и каждый последующий вызов TTS срабатывал после завершения предыдущего. С опредленного момента несколько месяцев назад все скрипты перестали работать как раньше, и появилось мгновенное перескакивание на следующий TTS без окончания предыдущего. К сожалению не удалось отследить с каким апдейтом и какого компонента (самого HA, или интеграции станции) произошло это изменение. Пришлось решать проблему добавлением wait_for_trigger с состояниями from: SPEAKING > to: IDLE. Проблема как-бы решилась, но это не очень удобно, так как появились паузы между произношением TTS и бывает такое что не все смены состояния перехватываются, что ведет к приостановлению исполнения скрипта. А последнее время вообще появилась проблема со скриптами с многочисленным вызовом TTS. После 4-5 вызовов скрипт просто останавливается без каких-либо ошибок в логе.

Opontios avatar Mar 25 '23 09:03 Opontios

Повесить после каждого предложения ожидание new_state.attributes.alice_state = IDLE.

это можно прям в скрипт вставить? покажите кусок пожалуйста

zappbrannigan34 avatar Jul 26 '23 19:07 zappbrannigan34