i-magin Posté(e) le 17 août 2015 Signaler Posté(e) le 17 août 2015 Remplacer : local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. notification; par : local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&client=t&q=" .. notification; Pour l'explication, c'est ICI et ICI
tim974 Posté(e) le 18 août 2015 Signaler Posté(e) le 18 août 2015 Merci pour ta réactivité, mais ça marche toujours pas: 2minutes39 pour dire "hello world"... aucun son ne sort. sur le pc plus de capcha par contre. Comme ça n'a jamais marcher je peux pas dire que c'est la faute a google...
i-magin Posté(e) le 18 août 2015 Signaler Posté(e) le 18 août 2015 (modifié) - Si tu lances une commande TTS directement de ton PC depuis un navigateur, par exemple : http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=bonjour Au 1er lancement d'une commande TTS, un code Capcha t'est demandé, plus aux suivantes de ta session - Si tu lances une commande TTS directement de ton PC depuis un navigateur en intégrant le paramètre &client=t , par exemple : http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&client=t&q=coucou Pas de code Capcha demandé - Selon ta copie d'image, ton module virtuel envoie bien la commande à ton LMS . En ce qui concerne ma configuration, le son est redirigé sur ma Squeezebox Boom et je n'ai donc pas de son sur mon PC ! - je ne comprends pas que tu obtiennes 2mn39 En plus de ce tuto, tu peux éventuellement voir ICI... et en effectuant une recherche sur ce forum avec le terme Squeezebox, tu trouveras d'autres contributions NB pour les administrateurs du forum : J'ai beau défaire le lien url d'une ligne http, lors de la sauvegarde le lien est automatiquement recréé Pour permettre la visualisation de la ligne HTTP en entier, j'ai été contraint d'utiliser l'option "insérer un extrait de code", ce qui donne l'apparence de code lua ("insérer une citation" ne règle pas le problème) Modifié le 18 août 2015 par Lazer Oui je pense que c'est le moteur d'affichage des pages qui fait une regex sur le texte, détecte automatiquement les adresses http et les transforme en lien clicables.... pas d'autre choix que d'utiliser les balises de code <>
JossAlf Posté(e) le 8 octobre 2015 Auteur Signaler Posté(e) le 8 octobre 2015 Mince ... Il ya de nouvelles restriction chez google ? Ou ce n'est que pour moi J'ai de nouveau un message d'erreur sur mes squeezerons ...
JossAlf Posté(e) le 9 octobre 2015 Auteur Signaler Posté(e) le 9 octobre 2015 Bon devant les restrictions de google translate, j'ai cherché une autre solution. J'ai trouvé chez http://www.voicerss.org. En version gratuite on à 350 génération de TTS par jour. Ca devrait me suffire pour le moment. Exemple de lien qui génère un MP3 : http://www.voicerss.org/controls/speech.ashx?hl=fr-fr&f=16khz_8bit_mono&src=Ouverture%20du%20portail On peut choisir le format généré, la langue, l'échantillonnage ... TOP ! Toute la doc ici : http://www.voicerss.org/api/documentation.aspx 1
CharlesO Posté(e) le 20 février 2016 Signaler Posté(e) le 20 février 2016 salut a tous je n arrive pas a le faire marcher qui peux me donner un coup de main svp merci
CharlesO Posté(e) le 17 avril 2016 Signaler Posté(e) le 17 avril 2016 salut voila pour moi ca ne marche pas je veux juste le faire marcher sur 1 squeezebox je fais quoi ? je cree 1 VD ou 2 svp une petit aide pas a pas merci
JossAlf Posté(e) le 18 avril 2016 Auteur Signaler Posté(e) le 18 avril 2016 Tu crées 2 VD. Le pas àpas est dans le premier message. Regarde les commentaires des VD pour comprendre les réglages. Dans ton cas 1 seule squeeze demande peu de réglages. Fais un copier coller de tes VD modifiés pour que je vois où ça coince. Envoyé de mon iPhone àl'aide de Tapatalk
CharlesO Posté(e) le 18 avril 2016 Signaler Posté(e) le 18 avril 2016 ok pour l'appel du code : (VD ID: 182) VD adresse IP : "" Port TCP : 80
CharlesO Posté(e) le 18 avril 2016 Signaler Posté(e) le 18 avril 2016 -- Faire un copier/coller de ce code dans le bouton d'un module virtuel (attention bug si utilisé depuis une scène) -- depuis lequel on souhaite diffuser un message -- NivSonore -> de 1 à100 -- SqueezeNom -> Cuisine ; Salon ; ChambreB ; ChambreH ; Garage -- Attention àne pas se tromper sur l'orthographe des Squeezes !!! -- Messager -> Texte pour la TTS (inutile de mettre des %20) --Annonce sur la Squeezebox ... fibaro:setGlobal('NivSonore' , 80) --Liste des squeezes sous la forme {"Cuisine","Garage","Salon"} local ListeSqueeze = {"max2playSDBpar","max2playSDBenf","max2playSDBinv"} fibaro:setGlobal("SqueezeNom" , json.encode(ListeSqueeze)) -- Taper le message fibaro:setGlobal('Messager' , "Ouverture du portail") fibaro:call(183, "pressButton", "1"); -- fin annonce Squeezebox
CharlesO Posté(e) le 18 avril 2016 Signaler Posté(e) le 18 avril 2016 Pour le code : (VD ID: 183) adresse IP : "" Port : 80
CharlesO Posté(e) le 18 avril 2016 Signaler Posté(e) le 18 avril 2016 -- JossAlf ; 02/07/14 (V2.1) 21/06/14 (V2.0) 17/06/14 (V1.3) ; 22/05/14 (V1.1) ; 23/05/14 (V1.2) -- V2.1 : Ajout du réglage individuel duniveau sonore pour chaque squeeze en ajoutant 2 chiffre après le nom -- V2.0 : Simplification du code et possibilité d'allumer 1,2,3,4 ou 5 squeeze. -- Scène permettant simplifier la diffusion de messages sur 1 ou plusieurs squeezeboxes. -- Nécessite de créer les Variables Globales : SqueezeNom ; Messager -- (Ne pas utiliser dans une scène le json bug) -- l'appel de module virtuel se fera dans un autre module virtuel de façon simple -- en affectant les valeurs aux variables Globales -- puis en simulant le clic sur un bouton : exemple -> fibaro:call(144, "pressButton", "1"); local ListeSqueeze = fibaro:getGlobal("SqueezeNom"); local TableauSqueezeNom = json.decode(ListeSqueeze); local player = nil -- Adresse IP du Logitech Media Server local ipadd = "10.0.0.161" -- le port du serveur local portno = 9090 local Squeezers = { ['max2playSDBpar '] = "b8:27:eb:47:18:a5 ", ['max2playSDBenf '] = "b8:27:eb:e1:7f:3d ", ['max2playSDBinv '] = "b8:27:eb:1d:f1:cd ", } --On allume toutes les squeezes for i = 1, #TableauSqueezeNom do --on récupère uniquement le nom en retirant les 2 derniers caractères qui correspondent au niveau sonore local player = string.sub(TableauSqueezeNom, 1 , -3) fibaro:debug(player) local player = Squeezers[player] local cmnd = "power 1 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- on règle le son -- on prend que les 2 dernier caractères qui correspondent au niveau sonore. local VolumeSon = string.sub(TableauSqueezeNom, -2) local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) end -- on laisse une seconde pour laisser le temps àtoutes les squeeze de s'allumer fibaro:sleep(1000) -- On envoie le message en utilisant la première radio local player = string.sub(TableauSqueezeNom[1], 1 , -3) local player = Squeezers[player] local notification = fibaro:getGlobalValue('Messager') -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20"); fibaro:debug(notification) local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. notification; local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- OFF des squeezeBoxs après 10 secondes fibaro:sleep(10*1000) -- on éteint les squeezes for i = 1, #TableauSqueezeNom do fibaro:debug("debut de la boucle") local player = string.sub(TableauSqueezeNom, 1 , -3) local player = Squeezers[player] local cmnd = "power 0 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) end
CharlesO Posté(e) le 18 avril 2016 Signaler Posté(e) le 18 avril 2016 au 10.0.0.161 c'est mon raspberry pi2 avec max2play (donc une squeezebox) du nom de : max2playSDBpar
JossAlf Posté(e) le 18 avril 2016 Auteur Signaler Posté(e) le 18 avril 2016 (Ligne 58 de ton code dans le message au-dessus, sur la HC2 c'est peut-être ligne 68), tu remplaces : local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. notification; par local cmnd = "playlist play http://www.voicerss.org/controls/speech.ashx?hl=fr-fr&src=" .. notification; Google limite maintenant l'usage du TTS alors je passe maintenant par VoiceRSS (je viens de modifier la code de la page 1 en conséquence).
CharlesO Posté(e) le 18 avril 2016 Signaler Posté(e) le 18 avril 2016 merci je test ce soir et te tien au jus merci encor
JossAlf Posté(e) le 19 avril 2016 Auteur Signaler Posté(e) le 19 avril 2016 Ok j'ai vu un autre truc. En tout cas laisse voicerss. Alors : dans le VD principal (message 87), Lignes 23, 24, 25, retire l'espace après le nom de tes squeeze. Dans l'autre VD (message 85) qui appelle le code : Efface la ligne 11 qui ne sert àrien. Et quand tu mets le noms de tes Squeezebox, elles doivent avoir le niveau sonore sous la forme de 2 chiffres collés Exemple : max2playSDBpar25
JossAlf Posté(e) le 19 avril 2016 Auteur Signaler Posté(e) le 19 avril 2016 Pour que ce soit plus clair voici le code du VD 182 : -- Faire un copier/coller de ce code dans le bouton -- depuis lequel on souhaite diffuser un message -- Le niveau sonore est attribué àchaque squeeze individuellement -- àla suite du nom avec comme valeur de 01 à99 (pas 100 ! on doit rester sur 2 chiffres) -- SqueezeNom -> max2playSDBpar ; max2playSDBenf ; max2playSDBinv -- Attention àne pas se tromper sur l'orthographe des Squeezes !!! -- Messager -> Texte pour la TTS (inutile de mettre des %20) --Liste des squeezes sous la forme NomsqueezeNiveausonore {"max2playSDBpar30","max2playSDBenf80","max2playSDBinv 60"} local ListeSqueeze = {"max2playSDBpar30","max2playSDBenf40","max2playSDBinv25"} fibaro:setGlobal("SqueezeNom" , json.encode(ListeSqueeze)) -- Taper le message fibaro:setGlobal('Messager' , "Ouverture du portail") fibaro:call(183, "pressButton", "1"); -- fin annonce Squeezebox Voici le code du bouton 1 de ton le VD principal (ID 183) : -- JossAlf ; 02/07/14 (V2.1) 21/06/14 (V2.0) 17/06/14 (V1.3) ; 22/05/14 (V1.1) ; 23/05/14 (V1.2) -- V2.1 : Ajout du réglage individuel duniveau sonore pour chaque squeeze en ajoutant 2 chiffre après le nom -- V2.0 : Simplification du code et possibilité d'allumer 1,2,3,4 ou 5 squeeze. -- Scène permettant simplifier la diffusion de messages sur 1 ou plusieurs squeezeboxes. -- Nécessite de créer les Variables Globales : SqueezeNom ; Messager -- (Ne pas utiliser dans une scène le json bug) -- l'appel de module virtuel se fera dans un autre module virtuel de façon simple -- en affectant les valeurs aux variables Globales -- puis en simulant le clic sur un bouton : exemple -> fibaro:call(144, "pressButton", "1"); local ListeSqueeze = fibaro:getGlobal("SqueezeNom"); local TableauSqueezeNom = json.decode(ListeSqueeze); local player = nil -- Adresse IP du Logitech Media Server local ipadd = "10.0.0.161" -- le port du serveur local portno = 9090 local Squeezers = { ['max2playSDBpar'] = "b8:27:eb:47:18:a5 ", ['max2playSDBenf'] = "b8:27:eb:e1:7f:3d ", ['max2playSDBinv'] = "b8:27:eb:1d:f1:cd ", } --On allume toutes les squeezes for i = 1, #TableauSqueezeNom do --on récupère uniquement le nom en retirant les 2 derniers caractères qui correspondent au niveau sonore local player = string.sub(TableauSqueezeNom[i], 1 , -3) fibaro:debug(player) local player = Squeezers[player] local cmnd = "power 1 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- on règle le son -- on prend que les 2 dernier caractères qui correspondent au niveau sonore. local VolumeSon = string.sub(TableauSqueezeNom[i], -2) local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) end -- on laisse une seconde pour laisser le temps àtoutes les squeeze de s'allumer fibaro:sleep(1000) -- On envoie le message en utilisant la première radio local player = string.sub(TableauSqueezeNom[1], 1 , -3) local player = Squeezers[player] local notification = fibaro:getGlobalValue('Messager') -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20"); fibaro:debug(notification) -- Attention google ne fonctionne plus il vaut mieux utiliser VoiceRSS pour le TTS -- local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. notification; -- Voicerss TTS local cmnd = "playlist play http://www.voicerss.org/controls/speech.ashx?hl=fr-fr&src=" .. notification; local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- OFF des squeezeBoxs après 10 secondes fibaro:sleep(10*1000) -- on éteint les squeezes for i = 1, #TableauSqueezeNom do fibaro:debug("debut de la boucle") local player = string.sub(TableauSqueezeNom[i], 1 , -3) local player = Squeezers[player] local cmnd = "power 0 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) end Normalement en faisant un copier/coller des codes pour les 2 VD ça devrait fonctionner.
CharlesO Posté(e) le 19 avril 2016 Signaler Posté(e) le 19 avril 2016 Salut et merci mais ca ne marche toujour pas ;-(
JossAlf Posté(e) le 19 avril 2016 Auteur Signaler Posté(e) le 19 avril 2016 (modifié) Tu es sûr de l'IP (du LMS) ligne 18 ? Tu as de messages dans le debug ? Sinon essaye de placer des fibaro:debug pour voir oú ça coince. MAJ : tu as bien créé les 2 variables comme indiqué ligne 7 dans les commentaires ? 7 -- Nécessite de créer les Variables Globales : SqueezeNom ; Messager Modifié le 19 avril 2016 par JossAlf
CharlesO Posté(e) le 20 avril 2016 Signaler Posté(e) le 20 avril 2016 pour l'adresse ip c'est l adresse ip de ma squeezebox comme dans les autre VD et lamas ca marche pour le debug ou et comment le placer stp ? merci encore pour ta patience
CharlesO Posté(e) le 20 avril 2016 Signaler Posté(e) le 20 avril 2016 quand je clic si je vais voir les variables dans messager je vois : Messager = Shany maman tappel et dans squeezenom je vois : SqueezeNom = ["max2playSDBpar90","max2playSDBenf90","max2playSDBinv90"]
JossAlf Posté(e) le 20 avril 2016 Auteur Signaler Posté(e) le 20 avril 2016 Et quand tu vas sur ton VD 182 et que tu cliques sur le bouton debug. Est-ce qu'il y a des messages rouges qui s'affichent ? Envoyé de mon iPhone àl'aide de Tapatalk
Messages recommandés