Gestion des TTS et temps de génération

Bonjour,
je rencontre parfois des soucis avec l’utilisation des TTS.speak.
Je les utilise pour indiquer en plusieurs fois des informations et parfois cela fait n’importe quoi…

Je vais enchaîner l’appel de plusieurs scripts lançant un TTS.speak sur un média.
Avant de lancer le suivant j’ai mis des attentes répétitives sur l’état du média (playing) car sinon ça m’écrasait la lecture en cours :

  - action: script.tts_meteo
    metadata: {}
    data: {}
  - repeat:
      sequence:
        - delay:
            hours: 0
            minutes: 0
            seconds: 5
            milliseconds: 0
      while:
        - condition: state
          entity_id: media_player.cuisine
          state: playing`

La logique me paraissait bonne, mais c’est pas optimal…

Par fois j’ai tout de même deux scripts appelant TTS.speak qui se recoupent et donc le premier texte n’est pas fini d’être écouté que cela coupe et passe au second.

Comment gérez-vous ces cas ? Y-a-t-il quelque chose que je fais mal ?

J’ai même tenté de protéger les sorties de mes scripts avec l’attente du passage en idle du média sans plus de succès :

wait_for_trigger:
  - device_id: 2c408bf603fe6c39ee293a7969ac0af9
    domain: media_player
    entity_id: bd9ae4760e017e86be291fc69f868f95
    type: idle
    trigger: device

Utilise input_boolean pour empêcher les appels TTS en parallèle.

Et sur quel évènement je le réinitialise ce booléen pour permettre d’exécuter le TTS suivant ?

Ce sujet a été automatiquement fermé après 60 jours. Aucune réponse n’est permise dorénavant.