Annonces de températures KO dans certains cas

Bonjour,
Petit bug je pense mais aucune urgence…
Dans certains cas, l’énoncé de mon scénario ne se fait pas ( join(): Argument #2 ($array)… )
PS: j’utilise des variables pour remplacer oralement le - par « moins » et « . » par « virgule »

Cas OK:

[2025-02-24 10:06:10][SCENARIO] -- Début : Scenario lance manuellement.
[2025-02-24 10:06:10][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-24 10:06:10][SCENARIO] Affectation de la variable text => 19.3 (19.3)
[2025-02-24 10:06:10][SCENARIO] Affectation de la variable tint => 20.4 (20.4)
[2025-02-24 10:06:10][SCENARIO] Affectation de la variable t_ext => 19virgule3 (19virgule3)
[2025-02-24 10:06:10][SCENARIO] Affectation de la variable t_ext2 => 19virgule3 (19virgule3)
[2025-02-24 10:06:10][SCENARIO] Affectation de la variable t_int => 20virgule4 (20virgule4)
[2025-02-24 10:06:10][SCENARIO] Affectation de la variable t_int2 => 20virgule4 (20virgule4)
[2025-02-24 10:06:10][SCENARIO] Exécution de la commande [Séjour][HOMEPOD][Parle] avec comme option(s) : {"background":"0","title":"volume=40,vitesse=1.1","message":"Dehors, il fait actuellement 19virgule3 degr\u00e9s.\nDedans, il fait actuellement 20virgule4 degr\u00e9s."}
[2025-02-24 10:06:20][SCENARIO] Fin correcte du scénario

Cas KO: ( dans l’annonce vocale, j’ai juste remplacé « Dedans » par « Dans le séjour » )

[2025-02-24 10:08:28][SCENARIO] -- Début : Scenario lance manuellement.
[2025-02-24 10:08:28][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-24 10:08:28][SCENARIO] Affectation de la variable text => 19.3 (19.3)
[2025-02-24 10:08:28][SCENARIO] Affectation de la variable tint => 20.4 (20.4)
[2025-02-24 10:08:28][SCENARIO] Affectation de la variable t_ext => 19virgule3 (19virgule3)
[2025-02-24 10:08:28][SCENARIO] Affectation de la variable t_ext2 => 19virgule3 (19virgule3)
[2025-02-24 10:08:28][SCENARIO] Affectation de la variable t_int => 20virgule4 (20virgule4)
[2025-02-24 10:08:28][SCENARIO] Affectation de la variable t_int2 => 20virgule4 (20virgule4)
[2025-02-24 10:08:28][SCENARIO] Exécution de la commande [Séjour][HOMEPOD][Parle] avec comme option(s) : {"background":"0","title":"volume=40,vitesse=1.1","message":"Dehors, il fait actuellement 19virgule3 degr\u00e9s.\nDans le s\u00e9jour, il fait actuellement 20virgule4 degr\u00e9s."}
[2025-02-24 10:08:29][SCENARIO] join(): Argument #2 ($array) must be of type ?array, string given
[2025-02-24 10:08:29][SCENARIO] Fin correcte du scénario

Par contre, si je mets une des températures sans « . » , ca fonctionne avec « Dans le séjour »

Cas OK:

[2025-02-24 10:18:33][SCENARIO] -- Début : Scenario lance manuellement.
[2025-02-24 10:18:33][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-02-24 10:18:33][SCENARIO] Affectation de la variable text => 19.3 (19.3)
[2025-02-24 10:18:33][SCENARIO] Affectation de la variable tint => 20 (20)
[2025-02-24 10:18:33][SCENARIO] Affectation de la variable t_ext => 19virgule3 (19virgule3)
[2025-02-24 10:18:33][SCENARIO] Affectation de la variable t_ext2 => 19virgule3 (19virgule3)
[2025-02-24 10:18:33][SCENARIO] Affectation de la variable t_int => 20 (20)
[2025-02-24 10:18:33][SCENARIO] Affectation de la variable t_int2 => 20 (20)
[2025-02-24 10:18:33][SCENARIO] Exécution de la commande [Séjour][HOMEPOD][Parle] avec comme option(s) : {"background":"0","title":"volume=40,vitesse=1.1","message":"Dehors, il fait actuellement 19virgule3 degr\u00e9s.\nDans le s\u00e9jour, il fait actuellement 20 degr\u00e9s."}
[2025-02-24 10:18:44][SCENARIO] Fin correcte du scénario

Jeedom 4.4.19 Debian12
Cordialement

Bonjour,

et si vous tapez directement la phrase dans le widget ?

fournissez tous les logs homeptalk en debug et http.error

Même comportement depuis les tests par le plugin


homepTalk-log.txt (2,8 Ko)
commande du plugin
http.error-log.txt (19,9 Ko)

c’est corrigé, mettez à jour

Je n’ai plus de message dans http.error, mais je n’ai toujours pas de son sur cette annonce:
"
Dehors, il fait actuellement 20virgule2 degrés.
Dans le séjour, il fait actuellement 20virgule3 degrés.
"

J’ai maintenant un « warning » dans le log homepTalk

0000|[2025-02-24 13:06:23] INFO  : Parle : Options:test KO - Message :Dehors, il fait actuellement 20virgule2 degrés. Dans le séjour, il fait actuellement 20virgule3 degrés.
0001|[2025-02-24 13:06:23] DEBUG  : Valeurs par défaut : 40 fr-FR googletts no  1
0002|[2025-02-24 13:06:23] DEBUG  : Valeurs modifiées  : 40 fr-FR googletts no  1
0003|[2025-02-24 13:06:23] DEBUG  : FFMPEG existe et c'est un exécutable, on l'utilise
0004|[2025-02-24 13:06:23] DEBUG  : Lancement Commande : sudo ffmpeg -protocol_whitelist "concat,file,http,https,tcp,tls" -y -i "concat:http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=fr-FR&total=2&idx=0&q=Dehors%2C+il+fait+actuellement+20virgule2+degr%C3%A9s.Dans+le+s%C3%A9jour%2C+il+fait+actuellement+20virgule3|http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=fr-FR&total=2&idx=1&q=degr%C3%A9s" -c:a pcm_s16le  -ac 2 -ar 44100 -f s16le /var/www/html/plugins/homepTalk/core/class/../../resources/tts/tts_f8d349089135039b963bda60a0ae5580.pcm >> /var/www/html/core/class/../../log/homepTalk_convertAudio 2>&1
0005|[2025-02-24 13:06:24]WARNING : La phrase n'a pas pu être générée via googletts, vérifiez le log homepTalk_convertAudio en debug
0006|[2025-02-24 13:06:49] INFO  : Parle : Options:test OK  - Message :Dehors, il fait actuellement 20virgule2 degrés. Dedans,  il fait actuellement 20virgule3 degrés.
0007|[2025-02-24 13:06:49] DEBUG  : Valeurs par défaut : 40 fr-FR googletts no  1
0008|[2025-02-24 13:06:49] DEBUG  : Valeurs modifiées  : 40 fr-FR googletts no  1
0009|[2025-02-24 13:06:49] DEBUG  : FFMPEG existe et c'est un exécutable, on l'utilise
0010|[2025-02-24 13:06:49] DEBUG  : Voix déjà existante dans le cache, on la récupère (/var/www/html/plugins/homepTalk/core/class/../../resources/tts/tts_3d7f948955f53bd9b3a4bcbf2cd7990f.pcm)
0011|[2025-02-24 13:06:49] DEBUG  : Lancement commande talk: sudo /var/www/html/plugins/homepTalk/core/class/../../resources/libraop/bin/cliraop-linux-x86_64 -w 300 -v 40 -p 7000 192.168.1.14 /var/www/html/plugins/homepTalk/core/class/../../resources/tts/tts_3d7f948955f53bd9b3a4bcbf2cd7990f.pcm -d 5 >> /var/www/html/core/class/../../log/homepTalk_hpcom 2>&1;
0012|[2025-02-24 13:07:00] DEBUG  : Résultat:OK

homepTalk_convertAudio.log (10,5 Ko)
homepTalk.log (2,1 Ko)

je viens de pousser une version en beta, vous pouvez tester ?

…même constat

0013|[2025-02-24 14:02:23] INFO  : Parle : Options:test-OK - Message :Dehors, il fait actuellement 20virgule2 degrés. Dedans, il fait actuellement 20virgule3 degrés.
0014|[2025-02-24 14:02:23] DEBUG  : Valeurs par défaut : 40 fr-FR googletts no  1
0015|[2025-02-24 14:02:23] DEBUG  : Valeurs modifiées  : 40 fr-FR googletts no  1
0016|[2025-02-24 14:02:23] DEBUG  : FFMPEG existe et c'est un exécutable, on l'utilise
0017|[2025-02-24 14:02:24] DEBUG  : Voix déjà existante dans le cache, on la récupère (/var/www/html/plugins/homepTalk/core/class/../../resources/tts/tts_35f1e695f57a06bc9d02a9547fdafd5f.pcm)
0018|[2025-02-24 14:02:24] DEBUG  : Lancement commande talk: sudo /var/www/html/plugins/homepTalk/core/class/../../resources/libraop/bin/cliraop-linux-x86_64 -w 300 -v 40 -p 7000 192.168.1.14 /var/www/html/plugins/homepTalk/core/class/../../resources/tts/tts_35f1e695f57a06bc9d02a9547fdafd5f.pcm -d 5 >> /var/www/html/core/class/../../log/homepTalk_hpcom 2>&1;
0019|[2025-02-24 14:02:35] DEBUG  : Résultat:OK
0020|[2025-02-24 14:02:45] INFO  : Parle : Options:test-ko - Message :Dehors, il fait actuellement 20virgule2 degrés. Dans le séjour, il fait actuellement 20virgule3 degrés.
0021|[2025-02-24 14:02:45] DEBUG  : Valeurs par défaut : 40 fr-FR googletts no  1
0022|[2025-02-24 14:02:45] DEBUG  : Valeurs modifiées  : 40 fr-FR googletts no  1
0023|[2025-02-24 14:02:45] DEBUG  : FFMPEG existe et c'est un exécutable, on l'utilise
0024|[2025-02-24 14:02:45] DEBUG  : Lancement Commande : echo -e "file 'http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=fr-FR&total=2&idx=0&q=Dehors%2C+il+fait+actuellement+20virgule2+degr%C3%A9s.Dans+le+s%C3%A9jour%2C+il+fait+actuellement+20virgule3' file 'http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=fr-FR&total=2&idx=1&q=degr%C3%A9s'" | sudo ffmpeg -protocol_whitelist "concat,file,http,https,tcp,tls,pipe" -f concat -safe 0 -y -i - -c:a pcm_s16le  -ac 2 -ar 44100 -f s16le /var/www/html/plugins/homepTalk/core/class/../../resources/tts/tts_f8d349089135039b963bda60a0ae5580.pcm >> /var/www/html/core/class/../../log/homepTalk_convertAudio 2>&1
0025|[2025-02-24 14:02:45]WARNING : La phrase n'a pas pu être générée via googletts, vérifiez le log homepTalk_convertAudio en debug

homepTalk_convertAudio0.log (12,4 Ko)

chez moi ça fonctionne

et quand je lance votre commande qui est dans les logs, ça fonctionne aussi :

echo -e "file 'http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=fr-FR&total=2&idx=0&q=Dehors%2C+il+fait+actuellement+20virgule2+degr%C3%A9s.Dans+le+s%C3%A9jour%2C+il+fait+actuellement+20virgule3'\nfile 'http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=fr-FR&total=2&idx=1&q=degr%C3%A9s'" | sudo ffmpeg -protocol_whitelist "concat,file,http,https,tcp,tls,pipe" -f concat -safe 0 -y -i - -c:a pcm_s16le  -ac 2 -ar 44100 -f s16le /var/www/html/plugins/homepTalk/core/class/../../resources/tts/tts_f8d349089135039b963bda60a0ae5580.pcm

bizarre, et j’ai ça dans le log homepTalk_convertAudio:

0170|[concat @ 0x5640515f9880] Line 1: unknown keyword '-e'
0171|pipe:: Invalid data found when processing input

c’est normal ?

votre système ne supporterait pas un echo -e "test" ça m’étonnerait

je viens de repousser une autre manière de concaténer les messages de google (car ils sont limités à 100 caractères en fait…) pouvez vous tester ? (plugin en beta)

chez moi fonctionne aussi

Nickel ca fonctionne :wave:
Petite bizarrerie, la voix marque un temps d’arrêt avant de prononcer le dernier mot (degrés) mais on va pas chipoter.
Merci, bonne soirée

non comme je vous ai dit ce n’est pas une bizarrerie, googletts limite à 100 caractères… sur d’autres système ca vous dirait simplement de pas utiliser googletts pour les longues chaines…

ici je coupe la phrase en deux au mot (pas à travers un mot) et j’envoi en deux fois que je met à la suite après

c’est bon à savoir pour éviter les longs messages.

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