jarvis
jarvis copied to clipboard
[App] Jarvis (Android | iOS)
Bonjour à tous,
J'ai récemment décidé d'apprendre d'avantage le dev d'app mobile via le framework react-native de Facebook et du coup en test j'ai voulu développer une app pour Jarvis malgré que @Oliv4945 en a déjà créé une pour Android.
Du coup, bien entendu l'app sera dispo open-source (github), gratuite et sans pub sur le PlayStore.
Actuellement, il est possible de communiquer avec Jarvis et de parler à la place de Jarvis. Une fois les 2 ou trois bugs réglés, je l'ajouterai ici.
Merci d'avance !
PS: Petit screen actuel de l'app
PS2: si vous avez des suggestions de fonctionnalités :)
UPDATE
- [x] Bug sauvegarde paramètres
- [x] Création SplashScreen + Logo app.
- [x] Retour sonore sur le smartphone (activation + désactivation dispo),
- [x] Retour sonore sur serveur (idem)
- [ ] Play/pause musiques
Super, j'ai hâte de voir ça !
Bon alors à l'heure actuelle, il me reste un petit bug à résoudre (obligé de relancer l'app pour que les paramètres soient mis à jour) + Icône et Splashscreen à faire et je publie la première version de l'app.
Si j'ai le temps ce week je vais essayer de tester sur mon mac la version iOS. par contre je ne pourrai ni tester sur un "vrai" iphone ni l'ajouter au store apple.
Bon alors j'ai balancé la première version de l'app ! Elle bug un peu si les mauvaises infos de l'api sont entrées mais si tout ok elle fonctionne sans bug (promis !).
Je vais regarder si j'arrive à corriger ce bug rapidement.
L'application est accessible ici : https://play.google.com/store/apps/details?id=com.openjarvis.messenger
Je vous laisse donc tester et me retourner ici vos remarques 👍
Bonjour, super boulot (perso, je ne sais pas faire des applis sur mobile...). Est ce que tu peux préciser si cette version utilise au maximum le mode offline pour la reconnaissance vocale (hotword et/ou ordre) ? Il serait intéressant d'avoir cette option afin de ne pas tout envoyer à google ... c'est ce qui manque dans la version de @Oliv4945 + personnalisation des couleurs ...
Salut @mbl-35 cette version n'utilise que l'api, du coup je ne comprends pas trop ta question ^^. Il n'y a rien qui est envoyé à google à ma connaissance.
Mais c'est vrai que je n'ai pas regarder + en détail le plugin que j'ai utilisé pour la reconnaissance vocal
En fait, lorsque l'on appuie sur le micro de l'application, le mode de reconnaissance est activé au niveau du téléphone. Je sais que l'on peut forcer à n'utiliser que le mode hors-ligne de la reconnaissance vocale, n'envoyant pas aux serveur google l'interprétation de ce que l'on dit. Pour illustrer, regarde les options de l'application andoid Jarvis@Home (qui permet de forcer le mode offline pour la reco). Une fois la reco effectuée, bien sûr, tu utilises l'API de jarvis (jarvis-api) pour envoyer l'ordre à notre RPI pour interpréter la commande... Je me focalisais juste au niveau de la reco... Pour envoyer le moins possible vers google (vie privée)
Re @mbl-35
alors j'ai mené mon enquête ^^ effectivement j'ai pas vu mais c'est bien en ligne. Pour passer en mode hors ligne : Just download Offline speech recognition in settings > language and input > Voice input (this can be difference on every device).
Et normalement c'est tout bon ! (à tester quand même, je serai pas étonné que ça ne fonctionne pas..).
Salut @Sh1n1x , je confirme que cela fonctionne en mode offline chez moi (mais il faut une version d'android récente pour que ce soit effectivement en offline complet). J'ai remarqué 2/3 trucs dans l'application disponible sur le store:
- fonctionne uniquement chez moi si je ne renseigne aucune clef pour accéder à l'API,
- les phrases reconnues avec des accents ou autres caractères posent problèmes ("comment ça va")
- les phrases sont souvent coupées (le messenger n'affiche et n'envoie pas la fin de la phrase). En tout cas, super boulot... Plus sympa que l'application initiale (mais reconnaissance moins bonne pour le moment)..
ça serait aussi cool de pouvoir enchainer les ordres (sans avoir à réactiver la reco avec l'icône du micro).
Salut @mbl-35,
Merci pour ton retour! Pour le problème avec la clé api vérifie si tu n'as pas mis un espace devant ou à la fin car moi je l'utilise avec une clé et aucun soucis.
Tu entends quoi par pose problème sur les accents ? À l'oral sur l'appli ?
Oui j'ai remarquer pour la fin de la phrase c'est assez chiant il faut que je vois si je peux rajouter un délai de 1 ou 2 secondes vers la fin pour prendre correctement le dernier mot.
re ;)
concernant le soucis avec la clef API (plugins_enabled/jarvis-api/config.sh):
jv_pg_api_port=8080 # port for Jarvis RestAPI Server jv_pg_api_key="Lmai2018" # optional secret key for additional security, "" to disable
Lorsque je lance jarvis avec les options -nmvk, j'ai l'erreur suivante au niveau des traces serveurs lorsque je lance le test de connexion:
jarvis: 192.168.144.7 - - [08/Jan/2018 21:26:30] "GET /?say=Connexion%20r%C3%A9ussie HTTP/1.1" 400 - ERROR: Missing API Key
Tout se passe bien si je supprime la clef de sécu.
Concernant le soucis que j'ai mentionné avec les caractères non ascii, je ne pense pas que ce soit le soucis... J'ai obtenu plusieurs fois l'erreur serveur suivante (mais je n'arrive pas à reproduire):
192.168.144.7 - - [08/Jan/2018 20:49:40] "POST / HTTP/1.1" 400 - ERROR: execv() arg 2 must contain only strings
Je précise que je n'ai aucun autre plugin que REST-API (donc pas de soucis de locales à priori :
locale -a C C.UTF-8 POSIX
, mais plus un soucis de taille de la phrase reconnue (car c'est un POST qui est envoyé)
C'est étrange car mon appli n'envoi aucune donnée au format POST uniquement en GET. Si tu parviens à reproduire le bug n'hésite pas à m'en faire part. Mais à l'heure actuelle je n'ai pas assez d'info pour localiser le soucis. Pour l'api Key as-tu bien vérifié que tu n'avais pas un espace au début ou à la fin en trop dans le champs sur l'appli ?
Bon alors j'ai jeté un coup d'oeil, alors pour le problème de connexion avec une clé api en faite ça fonctionne... c'est juste que j'ai oublié de prendre en compte la clé lors du test de connexion xD.
J'ai également résolu le soucis de la voix (de l'appli) qui ne dit que la dernière phrase si jarvis retourne plusieurs phrase. Maintenant la voix les dit toutes l'une après l'autre.
Concernant le problème du dernier mot pas pris en compte lors du speech to text j'ai essayé de le corriger, à voir si j'ai réussi (en tout cas sur mes 15 testes aucun soucis de rencontré mais je me méfie quand même).
PS: Je balance la mise à jour sur le playstore ce soir
salut @Sh1n1x Je confirme que la clef est maintenant bien prise en compte avec la nouvelle version sur le store. Le problème du dernier mot au niveau du stt est encore présent (mais effectivement, pas tout le temps).
J'ai aussi remarqué que parfois, il y a une phrase de détectée (bip-bip et affichage de ce qui est reconnu au niveau de l'application, mais aucune trace au niveau du serveur (pas de requêtes GET affichée). Lorsque cela se produit, et tant que l'on dit la même phrase, rien n'est envoyé au serveur .... Pour débloquer, il faut dire une phrase complètement différente... (je suis en mode offline au niveau STT android 7.0, pas de problème de reconnaissance des phrases).
En tout cas, merci pour ta réactivité.
Super boulot ! j'adore cette appli. Deux petites choses cependant : qu'est-ce que le mode jarvis ? et également, il ne se passe rien lorsque j'appuie sur le micro.... une idée ?
Salut @potjoe-97, Le mode jarvis c'est pour parler à la place de jarvis au lieu de poser une question. Pour ton micro vérifie les autorisation que tu as donné à l'application qu'elle aie bien accès à ton micro.
@Sh1n1x ah d'accord, cela fait sens. Problème résolu pour le micro, au temps pour moi, comme il n'y a pas de retour visuel indiquant que la reconnaissance vocale est active, j'en avais déduit que cela ne fonctionnait pas. Désolé pour le dérangement !