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

Jarvis avec Kinect - Possible but not recommended #89

Open
LengZai opened this Issue Aug 2, 2016 · 37 comments

Comments

Projects
None yet
@LengZai

LengZai commented Aug 2, 2016

Hi,

For testing purpose, i succeed in installing Kinect with Pi2 to be used with jarvis.
The bad thing... we cannot set the mic volume
So it only works within a short distance
I think it's possible to improve it like PS EyeToy but in all the case, Kinect is not the best solution

@LengZai LengZai closed this Aug 2, 2016

@alexylem

This comment has been minimized.

Owner

alexylem commented Aug 2, 2016

Fantastic! Kinect was marked so far as "not compatible with Raspberry pi".
Would you share your sources on how did you proceed?

@alexylem

This comment has been minimized.

Owner

alexylem commented Aug 2, 2016

Pre-requisite page updated:
image

@LengZai

This comment has been minimized.

LengZai commented Aug 2, 2016

Well,
It was just for testing purpose through a Kinect from one of my friend and his Pi2. So I didn't mark down my installation process.
But i made it possible through this tutorial: http://www.connectingstuff.net/blog/reconnaissance-vocale-sarah-raspberry-et-le-kinect/

But to sum up as not all are details on this website:
sudo aptitude install wget p7zip-full
git clone http://git.ao2.it/kinect-audio-setup.git/
cd kinect-audio-setup
sudo make install
sudo ./kinect_fetch_fw /lib/firmware/kinect
sudo udevadm control --reload-rules

For checking:
lsusb
You should have something like this:
Bus 002 Device 003: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 002 Device 004: ID 045e:02ad Microsoft Corp. Xbox NUI Audio
Bus 002 Device 005: ID 045e:02ae Microsoft Corp. Xbox NUI Camera

If you see Kinect as USB audio with this command
cat /proc/asound/cards
You will be able to see it with Jarvis menu (But as mentioned you won't be able to handle the mic volume (sensitivity) as alsamixer will tell you that it cannot)

I didn't try the ffmpeg part as it will be more complicated but the trick is quite smart but the result is not guarantee at all

I stopped my test here but for people who want to go further... (Don't want to read too many docs :P)
https://me.m01.eu/blog/2014/07/an-asoundrc-alsa-config-for-the-ps3-eye/
I'm quite confident that by playing with this .asoundrc file, it will be possible to increase the gain..

@Choco7

This comment has been minimized.

Choco7 commented Feb 27, 2017

Bonjour,
J'ai trouvé ceci, je pense que ça peux aider pour rendre jarvis compatible kinect :
http://www.connectingstuff.net/blog/reconnaissance-vocale-sarah-raspberry-et-le-kinect/
N'ayant pas encore investit dans un Jarvis (attente de compatibilité avec le kinect) j'espère vraiment que vous arriverez à le faire fonctionner :) merci a vous

@Choco7

This comment has been minimized.

Choco7 commented Feb 27, 2017

Oups je viens de voir que ca fait doublon avec le message précedent ... dsl j'ai mal lu

@alexylem

This comment has been minimized.

Owner

alexylem commented Feb 27, 2017

@Choco7 according to @LengZai input it should be working. On top of this, you no longer need to adjust the mic sensitivity as I have implemented an auto-adjust process of the microphone gain that I use in snowboy & sox rec.

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 5, 2017

Bonjour, je vais essayer de relancer la proposition de compatibilité entre jarvis et kinect car sauf erreur de ma part, le probleme d'ajustement devrait etre régler.

Et kinet v1 pourait etre une bonne solution pour jarvis (micro et camera #56 ).

D'apres mes premiers tests, kinect v1 est pris en charge nativement par le noyau linux sous raspbian:
$ lsusb
Bus 002 Device 003: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 002 Device 004: ID 045e:02ad Microsoft Corp. Xbox NUI Audio
Bus 002 Device 005: ID 045e:02ae Microsoft Corp. Xbox NUI Camera

La caméra fonctionne et est détectée parfaitement.

Par contre Alsa ne detecte pas le micro avec
cat /proc/asound/cards

Je peu eventuellement pousser les tests avec ffmpeg comme l'évoquait @LengZai mais est ce que JARVIS détecterait le micro ?

Si @alexylem ou n'importe qui a une idée pour rendre le micro détectable par jarvis je suis pret à tester. :)

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 6, 2017

Petit retour, le probleme de:
cat /proc/asound/cards est résolu, et je confirme que la modification de gain du micro fonctionne a merveille 👍
Je préparerais un script pour corriger le problème précedent mais ce n'est pas très long.

Jarvis avec Kinect v1 fonctionne parfaitement sur mon rpi-3, le micro array marche très bien même à distance (reste a vraiment mesurer).
Je pense qu'une fois le script en place, je pense que @alexylem ou @wikijm pourront supprimer la mention "non recommandé" du site.

@wikijm

This comment has been minimized.

Collaborator

wikijm commented Jun 6, 2017

@Erim32 N'hésites pas à me redemander une fois le script/l'adaptation faite 😜

@wikijm wikijm reopened this Jun 6, 2017

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 6, 2017

Le script est fait ;-)
Kinect v1 détectable par Alsa

@wikijm voila :)
Pour le coût, d'occasion un Kinect v1 et l'adaptateur (usb secteur pour Kinect v1)
c'est trouvable pour ~ 50€

@wikijm

This comment has been minimized.

Collaborator

wikijm commented Jun 7, 2017

A voir avec @alexylem pour soit intégrer ton script dans OpenJarvis ou faire ça sous forme de plugin (du moins, même structure mais peut-être différemment ?).

Actuellement ce qui me dérange c'est que l'utilisation de ton script est dépendant de la disponibilité de 2 dépôts :

Dans ces conditions on peut difficilement donner le statut "validé" au matériel.
Je sais que je suis exigent mais j'essaie à ce que les solutions apportées au projet le soient de façon pérenne.

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 7, 2017

@wikijm Oui effectivement plus un module d'installation lors de la configuration de openJarvis (peut être bien une nouvelle catégorie de plugin "Drivers").
Je n'ai pas fait de plugin OpenJarvis depuis longtemps il va falloir que je regarde les changements.
Concernant les deux dépendences, le kinect-audio-setup.git est un projet à l'arret de depuis 2014, je ne pense pas que ça pose un problème si on copie le dépot sur le serveur qui héberge le site de openJarvis.
Pour mon script, vous avez carte blanche.

Sinon l'une des solutions les plus simple est dans les prérequis de laisser un lien toujours vers le post #89 pour comprendre comment configurer Kinect v1

De plus mon script n'a pour l'instant, par manque de mini sd jamais été lancé dans des conditions réelles.
Un retour d'un autre utilisateur serrait utile avant d'envisager une incorporation interne ou plugin a OpenJarvis.

Tu as tout a fait raison d'être exigent, l'exigence est critère de qualité et c'est plus que requis sur un projet de l'envergure de OpenJarvis.

@wikijm

This comment has been minimized.

Collaborator

wikijm commented Jun 7, 2017

Je vois que l'on est sur la même longueur d'onde, j'avais peur que tu le prenne mal.
Ce projet amène des gens impliqués et de bonne volonté, ça fait plaisir à voir 😃

@Slevink05

This comment has been minimized.

Slevink05 commented Jun 8, 2017

Bonjour je suis tout nouveau dans le monde de Jarvis et linux
J'apprends au fur et à mesure :s
Mon installation domotique est terminée et j'utilise Tasker pour contrôler chez moi j'aimerais tout migrer sur Jarvis pour éviter de déverrouiller mon téléphone à chaque commande vocale
N'ayant pas de Raspberry Pi j'ai installer Jarvis sur une VM en attendant l'achat du Raspberry Pi
J'ai installer la Kinect grâce à ton script ( ligne de commande par ligne de commande car je sais pas faire autrement lol )tout a l'air nickel mais à la fin la Kinect n'est pas détecté mais je pense que ça vient de ma VM ou erreur de ma part en tout cas super Boulot j'essayerai de te faire un retour viable ce weekend quand j'aurai un peu plus de connaissance =)

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 8, 2017

Bonjour, merci pour ton retour ça fait plaisir 👍
Normalement kinect est détecté nativement par la commande "lsusb", ci ce n'est pas le cas la machine virtuelle simule également les ports USB. Et sans rpi je ne sais pas.
Tiens moi informé de l'avancement.

Pour éviter le double post, j'en profite pour signaler que la commande de l'étape 4 est a refaire après chaque reboot, en attendant d'avoir une solution stable implémentatable.

@Slevink05

This comment has been minimized.

Slevink05 commented Jun 9, 2017

Voilà mon petit retour après avoir installé Debian 8. 8 sur une vieille tour

J'ai tout recommencer à zéro et la Kinect est détecté parfaitement merci beaucoup pour ton script

Par contre je sais pas si c'est moi qui suis nul ou on peut faire autrement mais l'étape 4 je suis obligé de faire
./kinect_upload_fw /lib/firmware/kinect/UACFirmware

Et non pas

kinect_upload_fw /lib/firmware/kinect/UACFirmware

pour que ça marche il me reste juste à tout recommencer demain soir avec un Ubuntu car Snowboy n'est pas disponible pour Debian d'après ce que j'ai compris en tout cas super boulot merci pour tout

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 9, 2017

oui effectivement pas besoin du "./" je pense avoir suffisament d'info sur le fonctionnement pour débuter la création d'un plugin pour automatiser la detection par Alsa.

@wikijm Petite question, (je ne trouve rien dans la doc) est il possible de gérer les hook depuis les plugins, ou dois-je modifier le fichier en charge dans jarvis? (l'ajout serrait simple, mais la désinstallation poserait problème ...).

@wikijm

This comment has been minimized.

Collaborator

wikijm commented Jun 9, 2017

@Erim32 Très bonne question, que je t'invite à poser à @alexylem.
Même si je suis dans le domaine de l'informatique, je ne suis absolument pas un développeur sur ce projet 😅

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 9, 2017

@wikijm Ok 😄 ,
comme tu supervises les issues depuis un bail, je me disais que quelqu'un l'avait déja posée.
Comme tu l'as tag, j'ai pas besoin de le faire plus qu'a attendre une réponse 😅😅

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 10, 2017

Désolé pour le double post, en attendant une réponse de @alexylem , j'ai fait un premier prototype
⚠️ en Beta ⚠️ qui devrait fonctionner mais je n'ai plus mon rpi sous la main 😅 @Slevink05
Il suffit d'installer le plugin depuis le store: ici
n'hésitez pas à me faire un retour. 😄

@Slevink05

This comment has been minimized.

Slevink05 commented Jun 10, 2017

Le plugin s'installe sans problème mais il faut quand même que je refasse l'étape 4 pour que la Kinect soit prise en compte mais je suis vraiment pas un bon exemple car je découvre tout juste Jarvis et Linux

Donc il se peut qu'il y a pleins d'erreurs de ma part et pour l'instant j'ai un souci avec la détection de commande dans Jarvis il détecte bien le mot clé mais quand je lance une commande il ne se passe rien
Avec Jarivs -v
J'obtiens :
Jack servet is not running or cannot be started

J'ai essayé d'installer le paquet "jackd2" mais rien ne change impossible d'effectuer la commande "Jack_controle start" ça vient peut-être de ma version d'Ubuntu qui est pas fait pour
Il me faut il me faudrait un Raspberry Pi pour te donner des retours viables je pense

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 10, 2017

Normalment ça devrait marcher même sous Ubuntu, peu tu me faire un petit comparatif de la commande
cat /proc/asound/cards

  • Avant de lancer Jarvis.
  • Pendant que jarvis tourne, avec le plugin (tape la dans un second terminal)
  • Apres l'execution de Jarvis (avec le plugin installé bien évidement).

Merci pour tes retours @Slevink05 tu m'aide beaucoup. 😄

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 12, 2017

Je viens de tester sur mon rpi, la capture du son a longue distance est excellente (à tel point qu'au début snowboy écoutait les réveils dans la pièce).

Mais la reconnaissance des commandes provoque un timeout mais je ne pense pas que ça vienne de kinect.
Message d'erreur.

utils/timeout.sh 10 python recorders/snowboy/main.py 27 /dev/shm/jarvis-record.wav

Un idée ?

@Slevink05

This comment has been minimized.

Slevink05 commented Jun 12, 2017

Désolé Erim j'ai pas arrêté du weekend et cette semaine est charger au travail
Mais j'ai la même erreur que toi pour les commandes ça me provoque un timeout
Lance un :
Jarvis -v
Je pense que tu auras la même erreur que moi expliquer au-dessus
Pourrais-tu me donner ta configuration de la Kinect avec les gain ( sensibiliter , ect)
Car je trouve qu'il faut que je sois un vraiment près de la Kinect pour qu'elle reconnaisse ma voix merci pour tout à partir de mercredi je reprends ma passion =)

@doodz

This comment has been minimized.

doodz commented Jun 13, 2017

salut , pour le plugin kinect, il semble y avoir des drivers plus récent :
https://github.com/OpenKinect/libfreenect
https://openkinect.org/wiki/Main_Page

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jun 15, 2017

@Slevink05 Je te preparerais un zip complet de mon jarvis d'ici quelques jours pour la config.
@doodz J'avais vu mais je ne suis pas arrivé a le faire fonctionner, si tu y arrive n'hésite pas a me partager l'explication pour voir comment l'automatiser dans le plugin.

@wikijm

This comment has been minimized.

Collaborator

wikijm commented Jul 23, 2017

Bonjour @Erim32

Une avancée concernant tes actions ?

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jul 26, 2017

@wikijm Pas trop eu le temps avec mon job d'été, je reprend ça le premier week end d'Août normalement. Mais sans trop m'avancer, je pense que l'ajout de comande dans le fichier des commandes à executer au démarrage de Jarvis n'est pas une solution stable.
Car soit le systeme audio est de Jarvis est deja initialiser avant d'executer les commandes du fichier donc le fix que j'avais imaginé ne devrait pas fonctionner.
Donc je reprendrais les tests pour voir une intégration "stable" à jarvis mais ça demanderait l'ajout de commande de pré-initialisation pour des gestions hardware de jarvis par @alexylem.
Sinon pour une utilisation plus classique il faut que je partage mes configs pour la detection par kinect ....
Bientot 😃

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Aug 6, 2017

De retour comme promis, voici mes paramétrés @Slevink05 (désolé pour l'attente).
param1_kinect

Après avoir passé le week-end à chercher, je confirme pas possible d'automatiser l'initialisation hardware de kinect sans toucher au "core" de jarvis, l'initialisation de kinect doit etre faites avant celle de pulse audio pour qu'il puisse détecter le périphérique.
Sans une modification de @alexylem dans JARVIS, je ne vois pas comment l'automatiser. 😞

@Jeyson2001

This comment has been minimized.

Jeyson2001 commented Aug 30, 2017

Bonjour j'ai un problème à l'installation du plugin ,je n'arrive tout simplement pas à l'installer et ensuite quand j'essaye de faire l'installation manuellement j'obtient 2erreurs je suis sur rpi modem 3B si quelqun a une solution je suis preneur

@davidkls

This comment has been minimized.

davidkls commented Feb 22, 2018

Bonjour, et merci par avance.
Le script d'install fonctionne nickel sur le RPI3 , et le micro est reconnu par alsa mais ( il y a toujours un mais ) quand j'essaye d'initialiser le micro sous jarvis , il le vois mais boucle sur la détection ( choix carte , choix device )

card 1: Audio [Kinect USB Audio], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

EDIT :

En faite il suffisé d'installer pulseaudio.

Ca marche super et a une distance vraiment trés bonne :)

Merci a vous

merci par avance

@Johjoss

This comment has been minimized.

Johjoss commented Mar 24, 2018

Hello,

je suis un peu newbie en Raspberry et Linux en général, donc je galère pas mal pour installer et surtout faire marcher Jarvis, qui me semble être super. On dirait que je suis le seul en vous lisant, et que vous avez 20 ans d'expérience dans le domaine ;-)
Pour celui qui débute vos conversations sont du chinois (ne le prenez pas mal, hein, c'est que vous maitrisez bien la chose, c'est tout).

J'ai essayé d'installer la Kinect V1 (comme j'en ai une et qu'ele marchait très bien avec Sarah), mais je n'y arrive pas. Je m'y perds dans tous ces codes, plugin ...

Que faut-il faire exactement ? Utiliser les codes de ce thread (et dans ce cas quels codes ?) ou l'installer par le plugin ?

Et avant, pendant l'install de Jarvis, est-ce qu'il faut répondre "No" à "Checking audio input, ... Press [No] if you don't have a microphone." ?

Pour info, je suis sur Raspberry Pi 3 et Raspbian Stretch with desktop.
Merci par avance pour votre aide.

@LordDarkneo

This comment has been minimized.

LordDarkneo commented Jul 4, 2018

Hello!
Alors, cette histoire de kinect? Car il semble y avoir des solutions pour installer kinect sur le RPI, mais si derrière il n'est pas détecté par Jarvis, pas la peine de se lancer dans l'aventure! :)

C'est quoi d'ailleurs le meilleur micro a utiliser pour Jarvis (distance, bruit etc..) car je trouve aucune info sur ce sujet (et pour le moment je suis avec un pauvre micro usb a deux sesterces.... pas terrible...)

Merci d'avance pour l'info ;)

@satana888

This comment has been minimized.

satana888 commented Jul 7, 2018

@Erim32

This comment has been minimized.

Contributor

Erim32 commented Jul 7, 2018

Bonsoir @LordDarkneo ,
les résultats avec l'intégration de kinect v1 au projet JARVIS sont plus qu'intérésant, j'étais parvenu à avoir d’excellent résultats de compréhension, même à de longues distances ( ~ 10 m).
Et les possibilités à venir son nombreuses: reconnaissance faciale, gestion des distances ...

J'avais entamer un plugin d'intégration: https://github.com/Erim32/jarvis-kinect
Malheureusement par faute de temps, je n'ais jamais eu l'ocasion de finir l'intégration (à mon sonvenir, le plugin avait un petit probleme lors des reboot).
Si vous souhaitez le finir, je vous aiderais et validerais vos PR, mais malheureusement n'ayant plus de kinect sous la main je ne peux continuer son développement.

@LordDarkneo

This comment has been minimized.

LordDarkneo commented Jul 9, 2018

Hello @Erim32 ,
Oui j'avais vu ce plugin. Mais je n'arrive pas à comprendre comment cela peut "techniquement" bloquer... A partir du moment où on installe la kinect sur le RPI, qu'elle est détectée en mode micro, il suffit "juste" que Jarvis la trouve comme interface d'input (à priori). Comme les tuto d'installation de l kinect pullulent sur le net, je vais essayer de l'installer sur mon RPI dans un premier temps, et voir si Jarvis me le trouve en natif (sinon je passerai par la plugin + éventuels débug si besoin).
Pour la logitech C270, la portée en de combien? J'hésite aussi à faire une demaned d'évol pour avoir plusieurs micros en entrée (pour les maison avec plusieurs pièces / plusieurs niveaux, ca évite de devoir hurler pour que la commnde soit entendue dans le salon :P)

@satana888

This comment has been minimized.

satana888 commented Jul 9, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment