-
Notifications
You must be signed in to change notification settings - Fork 196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jarivs multi-utilisateurs #190
Comments
Ok si je comprends bien tu voudrais qu'une instance de Jarvis puisse gérer plusieurs pofils d'utilisateurs pour les différentes personnes de la maison? On pourrait aussi imaginer que ca soit automatique pas au démarrage, mais au déclenchement du hotword (ex: 1 hotword par utilisateur): Alex: Jarvis?
Jarvis: Oui Alex?
Alex: Check mes mails
Jarvis: tu as 2 emails non lus
[...]
Sarah: Siri?
Siri: Oui Sarah?
Sarah: Check mes mails
Siri: Tu n'as aucun email non lu |
Quelle perspicacité ;-) |
Il est peut etre jouable de tester bob pour faire du speaker recongition sur le fichier audio du hotword prononcé, par contre, je ne suis pas chaud pour faire un poc =P |
Pour être plus concis, le but est qu'une fois l'utilisateur "reconnu" (en l’occurrence, là cela sera de la reconnaissance faciale), c'est que je puisse transmettre en paramètre le(s) fichier(s) de config/commandes en exécutant Jarvis. |
+1 pour la reconnaissance vocale de l'utilisateur. La reconnaissance faciale a plusieurs problèmes, comme l'obligation d'avoir une caméra, et d'être placé en face (cela dit, si c'est possible de faire un hook qui permet de switcher le profil utilisateur, ça peut aussi être implémenté en externe). |
J'ai un projet de ce type dans mes futures bidouilles... |
Pour la reco faciale c'est discuté ici: #56 @Stan92 dans ma proposition il n'y a pas un hotword commun mais bien 1 par utilisateur. Il n'y a pas trop de sens de lancer jarvis avec un fichier de config en paramètre car il est censé être lancé en permanence. Donc je serai plus en faveur de reconnaitre le speaker via l'un des 3 moyens discutés:
|
Je te remercie Alex, pour la reco faciale, ma bidouille fonctionne apparemment sans souci. |
Aujourd'hui Jarvis ne gère pas le multi-profile. Si tu veux ca il faut l'implémenter dans Jarvis. git clone https://github.com/alexylem/jarvis jarvis-1
git clone https://github.com/alexylem/jarvis jarvis-2
# external event, launch corresponding jarvis to start recognition
./jarvis-X/jarvis.sh -l # directly listen for an order Pour aller plus loin il faut que j'implémente ca dans le Core (je pourrai utiliser ce ticket). |
Point d'information: devrions nous avoir le multi-profile ou la reconnaissance en premier? Je demande, car les deux fonctionnalités sont intimement liées et d'un certain point de vue, c'est la poule ou l'oeuf. |
@Stan92 si je comprends bien tu as un système de reconnaissance faciale et tu aimerais lancer Jarvis avec le bon profile. J'imagine que tu souhaite lancer Jarvis en mode écoute d'une commande et non pas en mode normal car la personne est déjà reconnue donc pas besoin d'attendre un hotword, si? |
Alex, Pour les questions communes, l'idéal serait réellement que chaque utilisateur puisse paramétrer les siennes.. pour être un peu plus transparent sur le projet, c'est que je comptais faire une interface Web où chaque membre de la famille puisse paramétrer comme bon lui semble ses commandes. Grosso modo voici comment je voyais le workflow de mon petit projet..
Je suis relativement novice dans l'environnement Raspberry & Raspian (Linux), et donc peux être un peu utopique sur mes demandes... |
Ok donc c'est vrai qu'après réflexion, une installation par membre de la famille est un peu limité car tu dois tout paramétrer X fois (moteurs de reco vocale, différentes clés API, sensibilité, ...). Donc le multi-profil pourrait être adapté ici (sur les commandes). (pas encore disponible) # Stan est reconnu
# lancer Jarvis en mode écoute avec les commandes de Stan
$> ./jarvis.sh -l -m stan-commands
# Stanette est reconnue
# lancer Jarvis en mode écoute avec les commandes de Stanette
$> ./jarvis.sh -l -m stanette_commands En fait dans l'absolu tu pourrais déjà le faire ainsi (déjà possible) # Stan est reconnu
# lancer Jarvis en mode écoute avec les commandes de Stan
$> cp stan-commands jarvis-commands && ./jarvis.sh -l
# Stanette est reconnue
# lancer Jarvis en mode écoute avec les commandes de Stanette
$> cp stanette-commands jarvis-commands && ./jarvis.sh -l Lorsque Jarvis est lancé en mode écoute avec Par contre ici les plugins sont partagés, donc si tu veux aussi des plugins personnalisés (ex: pour les emails) alors il faut changer le Core de Jarvis. A toi de voir. |
Je ferai déjà avec le (Déjà possible)... |
Pour les plugins tu peux te renseigner ici: |
@Stan92 on ne sait jamais, peut être que ca peut te permettre de partir sur de bonne base:smart-mirror |
j'ai vu @alexylem dans Jarvis-events ( ouai je sais j'ai mis du temps) que l'on pouvais lancer une commmande directement dans Jarvis on pourrait alors prononcer un nom différent (comme tu as fait) et charger un nouveau fichier commande? mais ca impliquerai un fichier contenant les préférences etc alors que l'on peut simplement ajouter ces commandes dans "Jarvis command" sous forme de dialogue |
@NYGHOST j'ai du mal à te suivre... $> ./jarvis.sh -x "check mes emails" Mais si tu veux charger un fichier de commande à part (si les commandes ne peuvent pas être mergées dans le même fichier), alors voir mon post ci-dessus. |
Je suis super intéressé par cette fonctionnalité, surtout que les dernières versions ne permettent pus le multi-instance. |
Salut @alexylem. Je tenais à te féliciter pour le travail que tu as fais, c'est vraiment super. As tu avancé concernant la reconnaissance faciale? |
@Dens26 Merci bcp. Non pas avancé sur ce projet, même si j'ai un prototype fonctionnel dans les cartons. Mais trop complexe à ce stade pour être généralisé et accessible en plugin. |
Qui est toujours intéressé par cette fonctionnalité?
|
Hello, |
Inconvénient de l'option 2, pas de personnalisation pour les plugins, ex pour le plugin gmail, chaque personne enregistrée ne pourra pas checker sa propre boite mail. |
moi ca m'interesse mais la 3eme option chacû ayant ses propres plugins et configuration
|
Pour ma part je pense que d'avoir la possibilité de mettre en place plusieurs hotwords (plusieurs utilisateurs) n'a pas de sens si derrière on partage la même config. Apres, il y a des plugins qui ne demande pas forcement une config par utilisateur comme la météo par exemple. |
L'issue #109 devrait aussi répondre au besoin. |
@wikijm il y plusieurs manières de reconnaitre la personne en question:
@Stan92 puisque tu es à l'origine de ce ticket, tu es ok avec la proposition 3 tout en ayant un partage par défaut de la config et des plugins? |
Le WAF n'étant pas le fort de mon foyer, j'ai peur de ne pas pouvoir trop participer aux tests 😑 |
On irait donc vers la proposition 3 avec un partage de le config et des plugins? Je ne voit pas l’Intérêt de reconnaitre la personne qui parle si c'est pour après ne pas en tenir compte. Ça donnerait juste la possibilité à tout les membre de la famille d'activer Jarvis. Je comprend que ça permet de ne pas avoir à installer et configurer chaque plugins à chaque fois. Du coup, une solution toute bête serait de créer une variable avec la personne reconnu. On garde la config et les plugins par défaut. Pour les plugins qui n'ont pas besoin de savoir qui est l'auteur de la commande comme par exemple Jarvis-time, la réponse est la même pour tous. Pour les plugins comme Jarvis-mails, ont vient récupérer qui est l'auteur de la commande via la variable et ont exécute la demande en fonction de l'auteur! En gros, c'est au concepteur du plugins de gérer le multi-utilisateur si besoin |
@RobyBioloid regarde mon commentaire plus haut:
Qu'est-ce que t'en penses? |
Ok, je comprends pas très bien. Il faut créer un fichier utilisateur par utilisateur avec un fichier config Du coup si j'installe le plugins Jarvis-mails, il faut entrer la config "pour tout le monde" et après entrer pour chaque utilisateur la config propre à l'utilisateur. Quand la commande est reconnue, que ce passe t'il? Jarvis demande à chaque coup si c'est pour 'tout le monde' ou pour 'l'utilisateur'? |
@RobyBioloid |
salut,
maintenant l'username est alex dans la variable. Le but serait, dans un premier temp de personnaliser la conversation. apres je dis ca je suis novice dans tout ces langages |
@fredissimo06 ta solution est déjà possible. Tu peux modifier la variable JE*APPELLE (*)==username=(1); say "ok $username" Par contre pour la prise en compte dans les plugins, faire un tableau dans la config veut dire qu'il faut demander à tous les développeurs de plugins de changer en fonction. La je suis moins chaud. |
ah ok, merci je vais essayé d'exploiter ça pour l'username. excact, comme tu l'avais déjà dis, ce n'est pas une solution viable. Il vaut mieux que ce soit en natif plutôt que de retoucher tous les plugins. désolé, je vais encore poser une question bête, qui peut paraître en décalage avec le sujet, mais j'essaye de comprendre la mécanique pour l'identification de l'utilisateur : |
Oui rien à voir avec ce ticket, mais si tu regardes dans le code, les plugins sont chargés au démarrage de Jarvis et chaque Plugin a ses propres variables (convention de nommage à respecter) qui sont utilisées dans les fonctions (aussi nommées specifiquement) des plugins, qui elles-même sont utilisées dans les commandes des plugins. Bon il ne me reste plus qu'à m'y mettre! |
J'espère vivement qu'une telle fonctionnalité verra le jour, étant donné que j'ai justement installé Jarvis pour que ma femme (et moi) commandions la maison. |
@D-Kalck je suis d'accord avec toi, le speaker recognition est bien meilleur. Disons que la reco via le hotword est une prémière étape, car relativement plus facile à implémenter. |
Bonjour, Une question sur le multi micro et le multi utilisateur: est-il actuellement possible de lancer des instances différents de jarvis (mais sans l'installer plusieurs fois) tout en lui donnant un fichier de conf différent à chaque fois ? Le fichiers de conf pas pour les commandes, mais pour les périphériques à utiliser. De cette manière on fait par exemple tourner un jarvis par pièce. (Après les ressources CPU à nous de les gérer) Bonne journée :) |
Bonjour, Tout d'abord, merrci pour ce super projet ! Je cherchais justement à pouvoir utiliser Jarvis à 2. De mon côté, aucun problème d'utiliser un seul hotword pour les 2. J'ai juste le besoin de reconnaître 2 voix pour les mêmes commandes. Merci! |
Bonjour,
Ce n'est pas une issue mais une demande éventuelle de fonctionnalités.
Est il possible ou serait il envisageable de prévoir les points suivants :
Le but de fichier de configuration serait uniquement de permettre de récupérer le nom et le magic word
Tous les autres paramètres de config seraient communs (Moteur de synthèse, de reconnaissance, etc...)
The text was updated successfully, but these errors were encountered: