Enchainement messages TTS sans pause

Bonjour,

Je réalise des tests avant de basculer de Gcast vers TTSCast, j’aurai une question sur l’enchainement des messages TTS via CMD.
J’ai tenté d’enchainer des messages mais si on ne met pas de sleep de x secondes (tout dépend du message que l’on envoie) Le google Home ne lit pas les messages après le premier : (sauf si je met un sleep de 5 secondes :

Est-ce normal ? Dans Gcast on pouvait mettre par exemple un temps sleep directement dans la commande comme cela :
image

Faut il faire la meme chose ? Si oui, quel est la commande ?
Merci

Bonjour @kwet ,

Cela a été évoqué dans le (long) fil des tests du plugin :slight_smile: voici le message en question :

La commande qui t’intéresse, c’est donc la commande wait et comme le plugin a évolué depuis ce message, tu as maintenant une commande busy qui existe pour chaque équipement, et si ton google est déjà en train de dire quelque chose, alors il sera « busy », donc avec la commande wait et le paramètre busy, tu vas avoir ce que tu cherches (et cerise sur le gateau, sans avoir à connaitre la durée de ta notif :wink: )

Voici un exemple sur lequel te baser (la valeur du « sleep » est à adapter, elle est là pour laisser le temps à ton google home d’envoyer la notif au plugin comme quoi il est occupé…) :

TiTidom.

1 « J'aime »

Hello,

Merci pour ton retour, alors niquel c’est ce que je cherchais mais par contre faut passer un sacré nombre de commande dommage que le busy ne soit pas inclus dans la seconde commande TTS pour qu’il enchaîne directement.

Bonsoir,

Je me le note :wink: je regarderai ce que je peux faire pour simplifier tout cela.

Question :

  • si tu as plusieurs commandes tts à la suite à diffuser : pourquoi tu ne crées pas une chaîne de caractère avec toutes les notifs concaténées à la suite et tu envoies le tout en une seule fois à ton équipement Google :thinking: ?

TiTidom.

1 « J'aime »

Par exemple pour mon alarme j’enchaine des messages d’avertissements mais entre les messages avant de faire sonner les sirènes etc… il y a des actions, la lumière qui s’allume etc… Je sais pas si cela s’enchainerai aussi bien de tout envoyer en brut.

Edit : merci à toi pour ta recherche je vais surveiller cela de prêt, si tu améliores cela prochainement je vais patienter avant de migrer toutes mes commandes vocales.

Pour info le boitier Connect SFR l’image n’est pas connu : :slight_smile: (l’image de la mibox ferait l’affaire)
image

Bonjour,

Je n’avais pas vu ton edit : peux tu faire un post à part, avec la capture d’écran de la page de config de ce modèle (pour voir comment il est détecté par le plugin (j’ai besoin du nom exact qui apparait notamment dans le ligne « Modèle » et une photo glanée sur internet (pas grave si elle n’est pas de bonne qualité, c’est pour m’en inspirer et en chercher une qui correspondra :wink:

Je suis en train de regarder comment intégrer cela en effet :wink: je viendrai donner des nouvelles ici même.

Bonne journée,
TiTidom.

Hello voici les infos demandées pour le boîtier connect tv de Red/SFR :

Et voici le modèle qui correspond :

Super merci hâte de pouvoir tester les évolutions pour la gestion de plusieurs voix enchaînées.

Merci

1 « J'aime »

Bonjour,

Bon, cela a été plus compliqué que prévu (vive les thread et le multitâche…) :open_mouth: Mais j’ai finalement réussi à implémenter ce que je souhaitais.

J’ai implémenté un système de « Queue » (fil d’attente) dans le démon.

Voici comment cela fonctionne :

Une nouvelle option « wait » fait son entrée dans TTSCast (je vais bien entendu mettre la doc à jour en conséquence). Cette option fonctionne ainsi :

  • Disponible pour les commandes TTS et CustomCmd (pour pouvoir utiliser dedans : tts, sounds et customsounds)
  • on peut mélanger des TTS et des customCmd dans le même scénario
  • chaque option wait d’un scénario doit avoir un paramètre : 1, 2, 3, 4, etc… En gros c’est l’ordre dans lequel on souhaite diffuser les commandes :stuck_out_tongue:
  • s’il n’y a pas d’option wait : cela se comporte exactement comme avant (donc rien à changer pour ceux qui ne veulent pas utiliser cette option « wait »)

Voici un exemple en image, sans doute plus parlant :

Une nouvelle option a été ajouté à la page de configuration du plugin :

image

option par défaut à 60 sec (passé ce délai, la commande est exécutée), possible de la personnaliser jusqu’à 3600 sec (donc 1h, mais pas conseillé…)

Je termine mes tests, et je diffuserai cette version demain si tout va bien :wink:

Bonne journée,
TiTidom.

Wahou déjà :joy: :clap:

Si j’ai bien compris en configurant a 60 secondes la durée du wait, entre le wait 1 du tts1 et le wait 2 du tts 2 c’est le délai qu’il y’aura entre les 2 Tts ?
Cela sera tjs la même durée du wait pour tous, tu peux pas personnaliser la durée du wait à un moment donné ? (il faut du coup utiliser un sleep standard)

Bonjour,

Non, ce paramètre est un garde fou, pas la durée entre deux TTS.

Je m’explique :

En tant normal, quand tout se passe bien : Tu as 2 notifications à envoyer à la suite (ce n’est qu’un exemple, tu peux en envoyer 15 d’affilé si ca t’amuse :wink: )

La première notification dure 12 secondes, et la 2ème dure 8 secondes.

Tu as donc ton scénario, où tu as 2 commandes TTS à la suite.
Ton scénario se déclenche :

La première notification est là, le plugin l’envoie, et immédiatement après, il envoie la 2ème aussi :

  • La première notification arrive dans le démon du plugin : bonjour je suis la numéro 1 (car il y a le paramètre « wait »: 1). Ajoute moi à la file d’attente = OK
  • La 2ème notification arrive dans le démon du plugin : bonjour, je suis la numéro 2 (car « wait »: 2). Ajoute moi dans la file d’attente : OK mais il va falloir attendre car il y a déjà un numéro 1 devant toi…

La première notification qui a le numéro 1 est diffusée : pendant 12 secondes (car elle dure 12 secondes)
La 2ème attend pendant ce temps là, et très régulièrement (toutes les 0.1 secondes) va demander : est ce que la 1ère est terminée ? non ! Bon ok j’attend…

Lorsque la première notification est terminée (au bout de 12 secondes) elle libère la file d’attente !

La deuxième, qui teste toujours toutes les 0.1 sec : est ce que la 1ère est terminée ? : oui, ca y est elle est terminée, tu peux te lancer !

La deuxième notification est alors jouée sur l’équipement Google.

Tout va bien, super, les deux notifications ont bien été diffusées l’une à la suite de l’autre sur ton équipement. Et tu auras remarqué que tu n’as pas indiqué de durée ou d’attente : c’est fait automatiquement par le plugin :wink:

MAIS : s’il y a un grain de sable dans ce scénario !?!!!

Disons que durant la 1ère notification, qqn de ta famille passe à côté du Google Home et se dit : « rahh il m’emm… ce google home à toujours causer », et il appuie sur « pause » !

Mince, la 1ère diffusion ne va jamais se terminer du coup car elle est en pause… Donc la 2ème ne sera jamais diffusée :frowning:

Et c’est là que le paramètre « timeout du wait » rentre en jeu : Lorsque la 2ème notification est en train d’attendre (cf. l’exemple ci-dessus) : il y a un compte à rebours qui tourne en même temps… et si le temps dépasse ce fameux paramètre « timeout wait » (à 60 sec par défaut), alors il envoie la 2ème notification malgré tout, même si la première n’est pas terminée !

J’espère qu’avec cet exemple c’est plus clair :slight_smile:

Mais attention, du coup si tu lis entre les lignes, il y a un piège !!! :wink: :

Si jamais tu as une notification qui dure 5 minutes (j’en ai déjà vu chez des utilisateurs, par exemple dans le bulletin du matin, où ils font raconter la vie du monde à leur google - aucune critique là dedans, je trouve ca top ! :stuck_out_tongue: )

Si ton paramètre timeout est à 60 secondes… il va y avoir un soucis, car si tu as une 2ème notification qui attend derrière celle de 5 minutes, au bout de 60 secondes elle va être libérée et couper la parole à la première !

C’est pour ca qu’il faut configurer correctement ce timeout, en fonction de son usage (et donc en mettant ce paramètre à une valeur supérieure à la durée de la notification la plus longue qui est diffusée à partir de ce plugin)

Chez moi par exemple, je l’ai mis à 90 secondes, car j’ai des notifs qui durent pas loin d’une minute, donc pour être sûr, j’ai mis 30 secondes de marge !

TiTidom.

Bonjour,

Image intégrée dans la version v1.2.2 qui vient d’être mise en ligne sur le market :wink:

PS : cette version intègre également l’option « wait »

TiTidom.

1 « J'aime »

Niquel merci plus qu’à tester et migrer toutes mes notifications de gcast vers tts cast !
Merci monsieur

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.