Giter Site home page Giter Site logo

Retour expérience about avatar-webapi-client HOT 16 CLOSED

Seb85 avatar Seb85 commented on July 20, 2024
Retour expérience

from avatar-webapi-client.

Comments (16)

Spikharpax avatar Spikharpax commented on July 20, 2024

Salut Seb,
Eh ben... que de problèmes... :-)

Tu ne peux pas envoyer 2 speak en même temps. Même avec le précédent client. Il ne peuvent et ne pouvaient pas être vocalisés en même temps. Impossible.
Peut être que tu veux dire "l'un après l'autre" non ?

Pour ton crépitement, ca ne me dit rien. Je n'ai pas d'enceinte PC pour Avatar, j'utilise mon système Sonos comme enceinte et ca fonctionne très bien. Mais bon... sur mon PC de dev, j'utilise l'enceinte du PC et j'ai pas ce soucis. Rien dans Avatar n'utilise l'enceinte tout le temps. et je vois pas comment d’ailleurs, ce serait magique... :-) C'est seulement lorsqu'il y a quelque chose à vocaliser que j'envoie à l'enceinte, c'est tout. C'est très bizarre. J'ai beau chercher, absolument rien peut interférer avec les enceintes et si c’était le cas, je l'aurais aussi sur mon pc de dev.
Tu ne crois pas que ca vient d'un de tes plug-in ? si tu les enlèves un par un pour voir...
Tu devrais aussi essayer avec une autre enceinte si tu en a une pour voir si ca ne vient pas du type d'enceinte que tu as. Je sais qu'une fois j'ai eu une enceinte pour laquelle j'étais obligé de mettre à 60% du volume, à 100% j'avais des trucs bizarres.
Peut être aussi que tu ne me dis pas tout. Peut être que ca arrive au bout de quelques heures et pas systématiquement... Il faudrait que tu analyses bien le pb et que tu saches exactement quand ca arrive et que tu puisses le reproduire. Ca aiderait pour la compréhension.

Que tu relances le serveur si tu as un pb sur le client me surprend... Ce sont 2 appli séparées et elles n'ont rien à voir l'une avec l'autre... :-O
Moi aussi, j'ai pu constater ce pb mais uniquement si je n'utilise pas le client de toute la journée et que la première règle est très tard (vers 23h...) et c'est pas systématique et c'est plutôt rare. Mais je n'ai pas besoin de relancer quoi que ce soit. Il suffit juste de cliquer sur "démarrer l'écoute" sur le node client sur le serveur. Ca suffit pour le réveiller et ensuite plus de pb.
Bon mais peut être que vous n'utilisez pas correctement ce système. Il est nécessaire de redémarrer automatiquement le serveur Avatar pour le rafraîchir. J'espère que tu le fais... Chez moi il se redémarre automatiquement 4 fois dans la journée (voir les paramètres).
J'ai aussi le client sur un stick PC séparé du serveur (ce que je conseille). Mon PC serveur (une tablette) a 4gb et mon PC client (un stick) à 2gb.
Si vous avez les 2 sur le même pc, il est nécessaire d'avoir au moins 6 ou 8 gb (conseillé). Electron est un système assez lourd, ajouté à Chrome qui est très gourmand en ressources, si vous êtes justes, ca peut venir d'un manque de mémoire, il faudrait que tu regardes l'utilisation de la ram pour voir.
Et chaque PC doit être redémarré au moins une fois par jour pour le réinitialiser. Les miens redémarrent à 3h toutes les nuits.
Je sais qu'Antoine utilise des VM. Donc pour lui, ca ne m'étonne pas. Ca demande énormément de ressources les VM et ce n'est pas viable. Déjà à l’époque il avait déjà des problèmes avec ce choix de config. Pour lui, avec ses VM, il faudrait coller 16gb de ram et 16 pour le pc soit 2 barrettes de 16... truc de fou, pour une config qui n'apporte rien, c'est dur...

from avatar-webapi-client.

Spikharpax avatar Spikharpax commented on July 20, 2024

L'enceinte en jack sur ton micro, euh... ouai... :-)
Une enceinte jack, ca fait 1000 ans que je n'en ai pas vu une, je ne savais même pas qu'on pouvait encore... Tu as raison, appelons ça "une solution de contournement" de le passer en usb...
Tu cherches quand même un peu les problèmes toi :-D :-D

from avatar-webapi-client.

Flamouth avatar Flamouth commented on July 20, 2024

Salut, c'est bon pour moi tout fonctionne bien, j’utilisais le serveur console pour un gain de perf.

J'ai changé de type d'installation et c'est très stable et pratique. J'ai un mini pc chinois 16go de ram et un i58350u. Il consomme +/- 15w et ne fait pas de bruit. J'utilise deux amplis pour micro jts, 2 pour le salon/séjour/cuisine et 1 pour ma chambre. OS principale Win10 et en VM, un win10, Jeedom et Synology, J'ai qu'un tiers de performance utilisé. Je peux encore rajouter des clients si je veux. Je ne coupe finalement pas le son de mes équipements, la compréhension se fait très bien même en forçant sur le son de la tv.

J'ai poussé le vice, j'ai acheté un moniteur tactile 13" pour avoir accès à tout. Bureau virtuel avec chacun sa fonction méteo, domotique jeedom, musique squeezbox, interface avatar, caméra etc...
Ça fait même portier ^^ grâce à jeedom et quelques script windows. Et tous cela commandable aussi par la voix j'adore.

Donc quand on réfléchit bien, c'est pas si con mon idée de tout centraliser. Je n'est plus rien d’apparent, seulement les micros encastré au plafond.
Et là, le client que tu a fait est époustouflant. j'ai le grand sourire à chaque fois qu'il comprend ce que je dit en direct.

Revenons aux divers problèmes de Seb
Je suis en jack sur ampli pour mes enceintes avec alimentation secteur, pas de grésillement.
J'ai réglé le problème de freeze après un temps de non utilisation en utilisant l'interface graphique du serveur. A voir la semaine prochaine comment il réagit.
Je le redémarre 3 fois par jour serveur et clients.

from avatar-webapi-client.

Seb85 avatar Seb85 commented on July 20, 2024

Pour le speak, c'est bien l'un après l'autre. Il gardait en mémoire le speak envoyé pour le dire dans la foulée. Plus possible ?

Je suis passé en USB, c'est mieux. Mais toujours un petit crépitement, ça s'entend quand je mets de la musique. Avec le nouveau client coupé plus aucun bruit. Bizarre..

Je redémarre le pc toutes les nuits. Aujourd'hui pas eu de freezer, c'est par moment, si tu trouves comment optimiser c'est top.

Je viens de voir un petit autre souci, je devrais le demander sur le plugin timer mais j'en profite ici. Lorsque je demande par exemple un timer de 30s. Il me répond : minuteur de 30 secondes démarré. Puis aucun son ni de speak : Minuteur de ... terminé. J'ai bien récupéré la nouvelle version.

from avatar-webapi-client.

Seb85 avatar Seb85 commented on July 20, 2024

le log serveur :
info: mets un minuteur de 30 secondes From: Sejour
info: IntentTimer syntax: true
info: ***** NLP Relations ****
info: state.tokens: put,a,timer,of,30,second
info: state.tags: PastTense,Determiner,Noun,Preposition,Date
info: Relations action : [object Object]
info: Relations object : [object Object]
info: Relations when : [object Object]
info: ********** END *********
info: ActionTimer startTimer
info: Timer command: startTimer From: Sejour To: Sejour
info: Minuteur de 00:00:30
info: Remote speak with callback
info: call(timer) in 23ms
info: Minuteur de 30 seconde terminé
info: Remote receive_data with callback
info: Send /Avatar/Serveur/resources/core/plugins/timer/sound/rencontre_du_troisieme_type.mp3 to Sejour

from avatar-webapi-client.

Spikharpax avatar Spikharpax commented on July 20, 2024

Ca n'a jamais été le cas, Seb. Le speak n'a jamais été gardé en mémoire. Tu te trompes.
La seule chose que je vois est qu'avant c'était par ffmpeg et là ce ne l'est plus.
A mon avis, tu ne fais pas de callback correct dans ton plug-in
C'est:
Avatar.speak("mon 1er text", client , function( {
Avatar.speak("mon 2ème text", client , function( {
Avatar.Speech.end(client);
})
})
et pas:
Avatar.speak("mon 1er text", client);
Avatar.speak("mon 2ème text", client);

Je suis désolé mais pour ton crépitement, je ne peux rien faire. Je ne peux pas tout faire... :-)
Encore une fois, ce client ne touche pas du tout aux enceintes.
Tu devrais t'acheter une enceinte correcte ou peut-être un système Sonos... Ca c'est du super son en 5:1 pour ta musique, ta télé et tu peux utiliser les enceintes comme enceinte pour Avatar.. et ca ne grésille pas :-)

Pour ton freeze, je vois pas ce que je pourrais y faire. Ca ne dépend pas de moi mais plutôt de Google Chrome. Et personnellement, ca ne me le fait pas plus que ca. Peut être 1 fois pour 100 et encore... C'est pour aller dans ton sens.
Je ne sais pas, regarde si ton pc a suffisamment de mémoire ou si ta config n'est pas trop.. euh... exotique, Je dis ca parce qu'à chaque fois je découvre que vous faites des trucs vraiment space avec vos pc :-) Vous devriez n'avoir que Avatar dessus. perso, je n'ai rien d'autre, c'est des pc dédiés et ca fonctionne très bien.

Pour le timer, j'ai regardé. En fait tout est bon.
C'est juste le fs.createOutputStream() qui n'existe plus dans le nouveau module fs-extra du nodejs 10
Pour que ca fonctionne tout de suite, tu peux remplacer sur le nouveau client le module node_modules/fs-extra par l'ancien du précédent client.
Renomme fs-extra en fs-extra.old et copie à la place l'ancien. ca fonctionnera.
Je ne m'en suis pas aperçu parce que c'est mon système Sonos qui joue les sons et ca ne passe pas par le client.

from avatar-webapi-client.

Seb85 avatar Seb85 commented on July 20, 2024

J'envoi des speak a partir de jeedom via le plugin parle dispo sur mon github. Si tu veux y jeter un œil. Il y a peut être une manière plus propre de le faire. Je viens de retester et avec l'ancien si j'envoi deux requêtes sans attendre la fin de la première, il me passe bien la deuxième. Alors que la seule la première est pris en compte. C'était bien pratique.

Pour le plugin timer je viens de copier l'ancien dossier, en prenant soin de renommer l'actuel et redémarrer le serveur. J'ai toujours le même souci

from avatar-webapi-client.

Spikharpax avatar Spikharpax commented on July 20, 2024

Des speak à partir de jeedom, je ne vois pas bien. Envoyer une commande depuis jeedom pour vocaliser un speak alors que cette commande vient de ton plugin, j'ai l'impression que ca tourne en rond et c'est pas bon.
Pratique surement mais peut être mal développé aussi surement.
Je suis désolé Seb mais il faut respecter les callback.

Pour le Timer, je l'ai testé avant de te l'envoyer et je sais que c'est bon. Testé et validé :-)
Par contre tu parles du serveur mais la manip à faire n'est pas sur le serveur mais sur le nouveau client. Pas la peine de redémarrer le serveur. Il n'a rien à voir avec le client

from avatar-webapi-client.

Seb85 avatar Seb85 commented on July 20, 2024

Ok pour le timer, après redémarrage du client et non le serveur ça va mieux..

J'ai des scénarios qui font parler Avatar. Ce plugin "parle" me permet d'effectuer un speak a distance.
Comment envoies-tu ça depuis ta box domotique ?

J'utilise cette requête depuis jeedom :
http://IPSERVER:3000/Avatar/parle?command=parle&txt=Salut&client=Sejour

from avatar-webapi-client.

Spikharpax avatar Spikharpax commented on July 20, 2024

D'où vient l'action qui le fait parler, de ta box sans aucune action vocale qui provient d'avatar ?

from avatar-webapi-client.

Seb85 avatar Seb85 commented on July 20, 2024

Ma jeedom envoi la requête http que je t'ai fait passé, pour déclencher mon plugin parle (dispo sur mon github si tu veux jeter un œil. Je lui passe le texte a dire dans la requête http. Si tu as un autre moyen plus propre je suis preneur :)

from avatar-webapi-client.

Spikharpax avatar Spikharpax commented on July 20, 2024

Oui j'avais bien compris mais pour te dire si c'est cohérent et propre, je dois savoir pourquoi tu fais ca.
La seule raison valable pour faire parler ta box est que ta box déclenche un scénario toute seule sans aucune intervention (par programmation ou autre) et t'avertie. C'est le cas ?

from avatar-webapi-client.

Seb85 avatar Seb85 commented on July 20, 2024

Effectivement je créer des scenarios jeedom qui déclenche l'action de faire parler Avatar.
Du genre quand je rentre chez moi, l'oeil zwave declenche un scenario jeedom et fait parler avatar pour qu'il me dise bonjour.

from avatar-webapi-client.

Spikharpax avatar Spikharpax commented on July 20, 2024

Je comprends ton problème. Il est plus que très simple. C'est même étonnant que tu ne le résolves pas tout seul.
Tu envoies des speak à Avatar sans te soucier de savoir si le précédent a fini d'être vocalisé.
C'est juste que tu envoies en masse et à la chaîne et hop... on verra bien... fini, pas fini... Synchro, pas synchro... on s'en fou.
C'est pas du dev ca, c'est du poker... :-)
Plus sérieusement,
Si tu veux vraiment que les speak s’enchaînent correctement, pourquoi tu n'appelles pas ton plugin "parle" sans passer le texte ? tu t'en fou d'écrire "Bonjour" dans Jeedom ou dans ton plugin Parle, non ?
Tu fais même plusieurs fonctions par rapport à ce que tu veux faire dire:

var tblCommand = {
bonjour : function() {bonjour ();},
bonjouretplus : function() {bonjouretplus ();}
};

http://IPSERVER:3000/Avatar/parle?command=bonjour // depuis Jeedom
function bonjour () {
Avatar.speak("bonjour", "Salon");
}

http://IPSERVER:3000/Avatar/parle?command=bonjouretplus // depuis Jeedom
function bonjouretplus () {
Avatar.speak("bonjour comment vas-tu ?", "Salon", ()=> {
Avatar.speak("Moi je vais bien, merci", "Salon");
});
}

2 secondes chrono pour écrire d'autres fonctions avec d'autres speak... et parfaitement synchro...

from avatar-webapi-client.

Flamouth avatar Flamouth commented on July 20, 2024

Le truc, c'est qu'avec jeedom, le texte peut provenir de variable de d'autre plugins jeedom. Avatar ne peut pas les connaître. Niveau facilité, c'est indéniable une ligne dans le scénario pour dire ce que l'on veut. La pause dans jeedom sinon, du temps de la vocalisation, je n'ai pas essayer. Ou alors quand avatar fini la phrase reçu, il passe à la suivante. Mais il faut qu'il les gardes en mémoire. Après je sais pas.

from avatar-webapi-client.

Spikharpax avatar Spikharpax commented on July 20, 2024

Je sais pas. Ca me semble difficile à croire que tu ne connaisses pas ce que tu veux faire vocaliser par Jeedom. Tout ce que tu fais à mon avis, c'est toi qui le définis. Bizarre bizarre tout ca. Mais bon, comme je n'ai pas Jeedom, gardons un 1% que ce soit possible...
Une pause, ça ne fonctionne pas, tu ne connais pas le délais que tu dois attendre. ca doit forcement etre un callback
Pour Avatar, il n'est pas besoin de garder en mémoire, c'est fait en callback et d'ailleurs ca ne fonctionne pas dans ce que j'ai développé et je cautionne pas parce que ca me semble difficile à faire, comment prendre en compte la possibilité que d'autres plugins vocalisent en même temps que le tableau "gardé en mémoire" qui se dépile ? Gardez à l'esprit que tout doit être synchrone... ou alors on s'en fou :-)
Franchement, si j'étais vous, j'essayerais de faire un tableau de speak et de le dépiler. Pour bosser un peu mon js, m'amuser et le proposer ensuite à ceux qui le veulent...
Chez moi, j'ai des connecteurs HTTP sur ma box et tout est fait dans mon plug-in eedomus coté Avatar. Je n'ai pas besoin de me poser ce genre de problème.
Bref, dans tout les cas, il y a plusieurs façons de faire possibles, bonnes, moins bonnes, très mauvaises, carrément hors standard développement... alors faites-vous plaisir :-)

from avatar-webapi-client.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.