Tout d’abord, bravo et surtout merci pour la réécriture du plugin Sonos. C’est bien plus réactif et cela apporte une fonctionnalité que je désirais, à savoir la reprise de la lecture en cours après une annonce.
Cependant, la façon d’utiliser le TTS, semble dans mon cas, différente de l’ancienne méthode, car auparavant j’utilisais le plugin Sons qui me permettait de lire des fichiers MP3 pré-définis stockés sur mon NAS.
Maintenant, en conservant la même configuration Jeedom pour le moteur TTS, cela fonctionne différemment (et fonctionne bien), mais il est limité dans le temps pour la création des fichiers. Vous pouvez consulter le post ci-dessous pour plus d’informations :
J’ai bien tenté d’utiliser les moteurs PICO et ESPEAK, mais le résultat n’est pas très compréhensible.
Pourriez-vous me dire quel moteur TTS vous utilisez ? J’ai du SONOS et ALEXA à la maison, mais pas de GOOGLE.
Je sais que vous avez utilisé Amazon Polly, mais je ne sais pas si je peux facilement l’interfacer avec Jeedom et le plugin Sonos. De plus, après 12 mois, ce service n’est plus gratuit, et il est difficile de calculer les coûts à long terme.
Le plugin utilisait déjà le moteur de jeedom core pour le tts et donc c’est compatible avec l’histoire du plugin songs etc si c’est de ça que tu parles
je n’ai pas testé cette partie mais vu que coté génération du mp3 ca n’a pas vraiment changé, y a pas de raison.
C’est le code pour copier via samba le fichier mp3 généré qui a été modifié (car avant ca passait par les class de l’ancienne lib de sonos que j’ai supprimées), et bien sur l’appel à sonos avec l’instruction pour lire (et resume après) via le démon
par contre si tu as des mp3 prédéfini, déjà existant, c’est pas la fonction « dire » que tu utilises (ni avant ni maintenant); bref, je ne suis pas sur de comprendre.
Maintenant, le scénario continue de fonctionner, sauf que plutôt que d’aller lire mon fichier mp3 sur mon nas, le moteur TTS lit simplement ce qui est écrit dans message et le résultat est donc moyen en laissant l’ID de mes fichiers mp3.
Voici son fonctionnement pour rappel :
Plugin Sons
Ce plugin permet d’intercepter certaine demandes de TTS (passant par le TTS jeedom et uniquement celui-ci) et de le remplacer par le son de votre choix.
Configuration
Ce plugin ne nécessite aucune configuration particulière.
Ajout de son
Il vous suffit dans Plugins → Multimedia → Sons de cliquer sur Ajouter puis :
Nom du son : nom du son pour le retrouver facilement.
*ID : identifiant du son, il est conseillé de ne mettre ici que des lettres ou des chiffres. C’est cet identifiant qu’il faudra utiliser dans la demande TTS.
Sons : Envoyer le son à jouer (l’extension du fichier doit être en mp3, 50Mo maximum).
Utilisation
Une fois votre son ajouté, vous pouvez mettre dans le message TTS #id#(id étant l’identifiant du son créé précédemment).
0014|[2024-08-20 21:35:02] ERROR : [TTS] Erreur sur la récuperation des données : {"state":"nok","error":"Service tts return an error"}
log scénario
------------------------------------
[2024-08-20 21:32:20][SCENARIO] -- Début : Scenario lance manuellement.
[2024-08-20 21:32:21][SCENARIO] - Exécution du sous-élément de type [condition] : if time_between(#time#,0630,2000)
[2024-08-20 21:32:21][SCENARIO] Evaluation de la condition : [0] = 0
[2024-08-20 21:32:21][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-08-20 21:32:21][SCENARIO] Exécution d'un bloc élément : 60
[2024-08-20 21:32:21][SCENARIO] - Exécution du sous-élément de type [condition] : if time_between(#time#,2000,0630)
[2024-08-20 21:32:21][SCENARIO] Evaluation de la condition : [1] = 1
[2024-08-20 21:32:21][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-08-20 21:32:21][SCENARIO] Exécution de la commande [Salon][Sonos Beam][Dire] avec comme option(s) : {"background":"0","title":"20","message":"#porte_buanderie_ferm\u00e9e#"}
[2024-08-20 21:32:21][SCENARIO] Fin correcte du scénario
log event
[2024-08-20 21:32:20] INFO : Exécution du scénario [SONOS][Buanderie][CM_PORTE_BUANDERIE_FERMEE_SALON] déclenché par : user
[2024-08-20 21:32:21] INFO : Exécution de la commande [Salon][Sonos Beam][Dire] avec les paramètres {"background":"0","title":"20","message":"#porte_buanderie_ferm\u00e9e#"}
[2024-08-20 21:32:23] INFO : Evènement sur la commande [Salon][Salon][Etat] valeur : PLAYING
[2024-08-20 21:32:23] INFO : Evènement sur la commande [Salon][Salon][Etat volume] valeur : 20%
[2024-08-20 21:32:23] INFO : Evènement sur la commande [Salon][Salon][Titre] valeur : 742bd5288a5a59c3f5168c9da3ae9388.mp3
[2024-08-20 21:32:23] INFO : Evènement sur la commande [Salon][Salon][Durée] valeur : 0:00:03
log TTS
0000|[2024-08-20 22:01:28] DEBUG : Call tts api : Array ( [apikey] => UXS7bTMqmnFAB48kWQW0OhxS8nL1uQD1nAQArddPLZLQVITOBYubpDctEPlF71vL [text] => #porte_buanderie_fermée# )
0001|[2024-08-20 22:01:28] DEBUG : Tag detécté dans le tts et plugin song présent
0002|[2024-08-20 22:01:28] DEBUG : Use cache for /tmp/jeedom/tts/33cfb860620afdc95a19578cad4118e7.mp3 (porte_buanderie_fermée)
0506|[2024-08-21 13:25:49] DEBUG : params to send to daemon:{"action":"tts","uid":"RINCON_542A1B91605E01400","file":"\/\/\/TTS\/TTS\/742bd5288a5a59c3f5168c9da3ae9388.mp3","title":"50","message":"#porte_buanderie_ferm\u00e9e#"}
0507|[2024-08-21 13:25:49] DEBUG : params to send to daemon:{"action":"volume","uid":"RINCON_542A1B91605E01400","slider":"20"}
et le log dataservice me donne ce message vu que je suppose avoir dépassé mon quota de création de fichier audio pour aujourd’hui.
0024|[2024-08-21 13:25:49] ERROR : [TTS] Erreur sur la récuperation des données : {"state":"nok","error":"Quotas exceeded for tts. Max allow is 3 request(s) by 86400s"}
pcq ca semble pas correcte ca, il manque l’hote/ip
as-tu refait/vérifié la config samba pour le plugin-sonos3 comme indiqué dans le changelog?
je ne sais pas de quoi tu parles, connais pas ce log « dataservice » moi… ca n’existe ni dans le core ni dans plugin sonos
si c’est un log de plugin-songs je ne vois pas pq il utiliserait le market puisque c’est un son en local
comme on ne sait absolument pas de quoi tu parles… ca n’aide en rien
faut pas chercher à comparer les noms de fichiers
il est où ce fichier?
au fait:
non, les fichiers ne sont pas stockés sur ton nas, ils sont stocké sur jeedom
sinon je viens de tester avec le plugin songs et ca fonctionne;
tu devrais simplifier l’ID, ne pas mettre d’accent, juste des lettre a-z et chiffre
ca c’est un log de tts lorsqu’il a trouvé l’id:
0004|[2024-08-21 13:40:21] DEBUG : Tag detected in the tts and song plugin present
0005|[2024-08-21 13:40:21] DEBUG : Sound found path: /var/www/html/plugins/songs/core/ajax/../../data/song2-acca2caf987d816ea899cd57b8913501ed9f9b48203aacefd08be4ca1a0861d11070fe40e90708bd35e5f01530c0c8f71d63939833cebb88b1bbf1320b82f732.mp3
tu devrais avoir un message "sound found path… avec un chemin local et pas :
Generate tts for /tmp/jeedom/tts/33cfb8
car là pour moi ton message te dit qu’il a généré un fichier, donc il n’a pas pris un fichier « pré-définis », donc c’est du text to speach d’où la limite que tu as
bref:
la config des équipements songs semble incorrecte
la config samba de sonos semble aussi incorrecte.
=> montres une capture d’écran des 2 configs
edit: désolé les logs sont en anglais car sur mon alpha je suis en anglais donc tu devrais avoir « Tag detécté… » et « Son trouvé path… »
Je me doutais bien que tu ferais le commentaire . Je ne sais pas comment je peux flouter du texte dans le forum … J’ai simplement effacé le nom de mon nas, le chemin est correct et il n’y a d’ailleurs pas d’erreur à ce sujet dans le log. Je préfère simplement ne pas afficher cette information à la vue de tous sur un forum.
C’est visiblement là que Jeedom a décidé d’écrire l’information expliquant que j’ai dépassé le quota de requêtes journalières pour la création de nouveaux fichiers audio. C’est expliqué par Loic…
Oui, c’est d’ailleurs la raison pour laquelle le log Sonos3 donne le chemin vers mon NAS, pour lequel j’ai fourni une capture d’écran où j’ai intentionnellement masqué mon adresse IP. À titre de preuve, voici la capture depuis mon NAS qui montre clairement que l’utilisateur TTS a accédé depuis Jeedom à mon partage TTS dans le dossier TTS
Il s’agit de la capture d’écran de mon partage TTS dans le dossier TTS sur mon NAS, accédé depuis l’explorateur Windows. Cela montre simplement que le moteur TTS de Jeedom (je suppose que c’est le plugin Sons) crée un nouveau fichier audio, mais il ne peut pas le finaliser en raison de mon quota journalier dépassé, ce qui entraîne un fichier de 0 Ko
Quand je parle du bon fichier, il s’agit du fichier que mon scénario lisait avant de passer à la version bêta du plugin Sonos. J’avais simplement généré les phrases que je désirais via un site de création de voix et téléchargé les fichiers dans le dossier téléchargement de mon pc, ensuite, dans le plugin songs, j’ai créé des nouveaux sons avec nom, ID et ensuite cliqué sur ‘Envoyer’ et donné le chemin des fichiers que j’avais téléchargés, c’est la qu’ils ont été uploadé sur mon NAS.
Voici les fichiers audio que j’avais générés. Il s’agit d’une capture de mon dossier de téléchargement sur mon PC.
Voici la capture des fichiers téléchargés sur mon NAS dans le partage TTS et le dossier TTS. Ce n’est d’ailleurs pas moi qui ai placé et nommé les fichiers comme cela …
Tu peux constater que les dates coincident entre le dossier téléchargement de mon pc et le dossier TTS sur mon nas.
C’est déjà une bonne nouvelle pour moi que cela fonctionne chez toi .
Ça a fonctionné comme ça pendant 6 mois chez moi…
J’aurais effectivement simplifié le nom des fichiers à la base si cela ne fonctionnait pas.
Évidemment, il génère un fichier, et c’est bien ce qui me dérange. Comme expliqué initialement, depuis la mise à jour du plugin vers la version bêta, j’ai constaté un changement de comportement. D’ailleurs, tu peux voir sur ma dernière capture d’écran que c’est depuis le 19/08 que tout d’un coup, des fichiers se génèrent dans le dossier TTS de mon nas alors que ce n’est pas le comportement que j’avais vant.
C’est ton droit de penser cela, tout comme c’est le mien de te dire que dans ce cas-ci, tu te trompes. De mon côté, j’ai autre chose à faire que de prétendre que j’avais une solution fonctionnelle depuis 6 mois et que tout d’un coup, elle ne fonctionne plus, et devoir demander de l’aide. Je suis prêt à entendre qu’il faut que je modifie quelque chose mais pas que ma configuration n’est pas bonne. Je t’assure que cela fonctionnait très bien, j’avais juste comme « problème » le fait que lorsque nous écoutions de la musique et que la porte était ouverte ou fermée, il fallait relancer notre musique, ce qui a été corrigé grace à ton travail
Voici la capture d’écran de la configuration du plugin Sonos
s’il fait un appel via « dataservice », c’est le plugin songs qui le fait, pas le core ni sonos
=> cela veut dire que ton ID n’est pas trouvé / n’existe pas d’où ma question de voir la config de l’équipement, « porte entrée fermée »
peut-on voir cette config là ou pas? (c’est ca que je demandais dans ma réponse précédente)
pour les erreus sur le plugin songs, (js, page config vide etc) faudrait un autre post, c’est hors sujet.
tu peux pas savoir comme il n’y a rien de plus frustrant ! c’est hyper pénible
j’essaie d’aider et
tu caches de l’info
tu ne préviens pas! tu penses pas que ca m’aurait fait gagner du temps de recherche + poser la question si tu l’avais dis directement? je n’ai pas que ca à faire …
pareil ici, on aurait éviter 2 échanges inutiles!
donc je persite, non ce n’est pas le « bon » fichier
peut-être que le nom généré par le plugin a changé mais c’est un détail sans importance ou presque
donc non, le plugin songs ne les a pas upload sur ton nas, c’était le plugin sonos
c’est pas le nom du fichier l’important, c’est l’id qui est configuré dans l’équipement songs qu’il faudrait simplifier pour tester
si cela a toujours été ainsi: les fichiers doivent toujours être upload sur le nas pour être lu
simplement ici le nom du fichier a changé donc il y a des nouveaux
ca va ? tu veux un dédommagement? faut pas pousser non plus… moi j’ai autre chose à faire aussi…
et c’est sur que je me trompe:
je ne sais pas du tout comment le plugin sonos fonctionne, ni le core, ni le plugin songs et je n’ai pas du tout réussi à faire fonctionner le tout chez moi juste en suivant les docs
et d’un autre coté tu n’as aucune erreur sur ton plugin songs et tout est correctement configuré
quand à l’erreur de config sur sonos, effectivement je me suis trompé… en même temps tu fournis un log modifié sans prévenir… mais ca je devais le deviner tout seul
Je suis assez nouveau sur Jeedom et sur ce forum, et il m’a déjà souvent aidé et inspiré rien qu’en le lisant.
Je tombe souvent par hasard sur des posts où tu aides et participes, et ce, apparemment depuis de longues années. Donc, merci à toi.
Je trouve juste que ta façon d’écrire donne l’impression que tu me prends un peu de haut.
Tu as clairement une solide expertise de Jeedom et sûrement dans d’autres domaines aussi. Franchement, j’ai souvent eu envie de pouvoir discuter avec toi, car je pense que tu serais sûrement hyper intéressant. J’apprécie ton travail, et j’ai d’ailleurs déjà payé pour pouvoir en bénéficier.
De mon côté, je fais de mon mieux pour essayer de suivre vos règles sur la façon de formater un sujet sur ce forum. Je préférerais mille fois pouvoir en discuter en direct et partager mon écran afin d’être efficace et t’éviter de mal comprendre et interpréter ce que j’essaie d’expliquer. Cela nous éviterait les longs échanges interminables.
Généralement, je me débrouille en lisant jusqu’à ce que cela me dépasse. Il n’y a rien à faire, je n’aime pas cette façon de résoudre un problème. Moi aussi, j’ai configuré la majeure partie de mon Jeedom et mes plugins en lisant les docs et sans rien demander à personne…
Je ne maîtrise pas Jeedom, mais je maîtrise mon réseau pour la bonne et simple raison qu’il s’agit de mon métier. De même, si je dis que cela fonctionnait, à aucun moment je ne mens, à aucun moment je ne cache des informations. Mon range IP, hostname ne regarde personne. Si j’avais constaté qu’il était la cause de mon problème, je ne le cacherais peut-être pas. Je n’estimais pas omettre une info pertinente, sachant que cette partie de mon installation est fonctionnelle, et je persiste à dire que le reste l’était aussi jusqu’à ce que je passe le plugin Sonos en bêta (d’ailleurs, vu que c’est une bêta, je me disais que je risquais peut-être des problèmes…).
J’entends depuis des mois mes fichiers jouer dans mes SONOS à l’ouverture et à la fermeture de mes portes et ce malgré le formatge de ceux-ci. Tu remets beaucoup de choses en question, et c’est énervant.
Est-ce vraiment important de souligner que j’ai tenté de masquer mon IP dans toutes les informations que j’ai fournies ? Ou que je ne sache pas quel plugin (Sonos ou Song) a uploadé les fichiers sur mon NAS ou que mes fichiers ne sont pas lu depuis mon nas et encore que mes plugins seraient mal configurés, alors qu’ils fonctionnaient…
J’apprécie ton expertise, mais un peu plus d’empathie et confiance en l’autre serait bienvenu.
Oui ca l’est vraiment.
Lorsque j’ai vu ton log j’ai vraiment cherché 15 min dans le code du plugin s’il pouvait y avoir une erreur quelque part, j’ai fait des tests pour essayer de reproduire en vain.
Alors 15min ca semble rien … mais si en fait. Surtout de lire après « si si je l’ai fait exprès mais je voulais pas le dire »
Alors que pour moi c’était si évident de le signaler ou encore plus logique de juste changer le nom au lieu d’effacer.
Surtout qu’en fait ca sert à rien… c’est une ip privé/locale, ca n’a aucune importance de savoir que c’est 192.168.1.100 ou autre chose (ou que le nom est « nas » ou « super nas » ou « mon nas »). Aucun attaquant ne peut en faire quoi que ce soit et si quelqu’un s’introduit sur ton réseau local ca lui prendra 5s pour avoir la liste de tous tes devices connecté avec l’ip, marque et modèle de l’appareil…
Est-ce qu’on peut revenir sur ce fameux id d’équipement songs? Peux-tu montrer la config? Et modifier par autre chose, genre #porte_ouverte# histoire de supprimer ca de l’équation?
Autre test: créer un nouvel équipement songs, autre nom, autre id et envoyer à nouveau le fichier?
[2024-08-22 00:12:47][SCENARIO] -- Début : Scenario lance manuellement.
[2024-08-22 00:12:47][SCENARIO] - Exécution du sous-élément de type [condition] : if time_between(#time#,0630,2000)
[2024-08-22 00:12:47][SCENARIO] Evaluation de la condition : [0] = 0
[2024-08-22 00:12:47][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-08-22 00:12:47][SCENARIO] Exécution d'un bloc élément : 58
[2024-08-22 00:12:47][SCENARIO] - Exécution du sous-élément de type [condition] : if time_between(#time#,2000,0630)
[2024-08-22 00:12:47][SCENARIO] Evaluation de la condition : [1] = 1
[2024-08-22 00:12:47][SCENARIO] - Exécution du sous-élément de type [action] : then
[2024-08-22 00:12:47][SCENARIO] Exécution de la commande [Salon][Sonos Beam][Dire] avec comme option(s) : {"background":"0","title":"20","message":"#porte_entr\u00e9e_ferm\u00e9e#"}
[2024-08-22 00:12:48][SCENARIO] Fin correcte du scénario
Le log TTS
0024|[2024-08-22 00:12:48] DEBUG : Call tts api : Array ( [apikey] => UXS7bTMqmnFAB48kWQW0OhxS8nL1uQD1nAQArddPLZLQVITOBYubpDctEPlF71vL [text] => #porte_entrée_fermée# )
0025|[2024-08-22 00:12:48] DEBUG : Tag detécté dans le tts et plugin song présent
0026|[2024-08-22 00:12:48] DEBUG : Son trouvé path : /var/www/html/plugins/songs/core/ajax/../../data/song18-519004aa7ff029c641ff57dbc4318c40543f385ec13ccbe09eb56c912b5acc16e77b029a77cd837e02a6ab82d60f140eb90a5e57d2342c066f8989143d6d5cef.mp3
Le log sonos3
0620|[2024-08-22 00:12:48] DEBUG : params to send to daemon:{"action":"tts","uid":"RINCON_542A1B91605E01400","file":"\/\/NAS\/TTS\/TTS\/8bb58d245c7b9f957ad0e5f08a8d281c.mp3","title":"20","message":"#porte_entr\u00e9e_ferm\u00e9e#"}
Le log sons est toujours vide.
Les deux fichiers qui se retrouvent bien sur mon nas
Donc, pour résumer, la recréation de mes fichiers formatés de la même façon fonctionne sans que je ne modifie quoi que ce soit. C’est une super nouvelle pour moi, mais je ne comprends toujours pas pourquoi mes anciens fichiers seraient tout d’un coup devenus introuvables…
À mon sens, au vu de tes compétences, j’ai vraiment pensé que tu comprendrais… Loin de moi l’idée de te faire perdre ton temps. Ne penses-tu pas qu’il aurait été plus simple de me faire confiance ? Au vu de ce que je viens de montrer sur la résolution de mon problème, je pense que tu aurais pu.
Je suis d’accord avec toi, cette fois-ci, plutôt que d’effacer, j’ai simplement tapé “nas” dans le log ci-dessus.
Et tu continues …
Si je comprends bien, tu es aussi expert en sécurité… À ce que je sache, tu ne sais rien de la configuration de mon réseau ni de ce que j’héberge ou de ce qui est accessible depuis l’extérieur. Qui te dit que mes hostnames locaux n’ont rien à voir avec mes DNS externes ? Qui te dit que ce que j’ai flouté était une IP ?
Comme expliqué plus tôt, cette partie ne regarde personne sur un forum.
Pour toi, ça ne sert à rien, pour moi (et sûrement pas que pour moi…), un des principes de base en informatique, c’est la confidentialité. Peu importe le niveau.