Closed HoLengZai closed 7 years ago
I contacted the DSP manufacturer XMOS but I have no answer. ReSpeaker don't sell microphone array module only.
Looks like this in fact... https://creator.matrix.one/#/index
What do you think @diyfr
J'ai backé le projet pour voir ce que ça va donner.
@LengZai Intéressant ton lien mais, super cher par contre ...
Vous connaissez pas d'autres array micro ? Car j'aimerai vraiment me faire un amazon echo like mais avec le micro à 10€ je dois être a maximum 1m de distance et il n'y a pas de reduction de bruit.
Faut peut être même trouver des drivers pour travailler sur la réduction de bruit, ça doit exister. Respeak le propose et il est en plus open source/hardware ce qui va nous être utile.
Qu'en pensez-vous ?
Pour Respeak il me semble que ca soit open-source
J'ai pris un Matrix Creator. J'attends de le recevoir
C'est un peu cher mais ca fait plus qu un micro array.. bcp de possibilite.. avec reconnaissance facial, gest, etc... C'est a peu pres ca que tu veux faire @francoismartin Alexa c'est qu'en anglais pour le moment http://www.instructables.com/id/Build-a-DIY-Amazons-Alexa-With-a-Raspberry-Pi-and-/?ALLSTEPS
@francoismartin Si tu veux un micro avec le noise reduction et le echo cancellation, le tout build in 100% hardware et ne nécessitant aucun driver, je te conseille fortement le CM-1000USB. C'est le 3e micro que j'ai essayé, et je suis bien content d'enfin avoir trouvé un micro qui me comprend à distance même quand il y a des travaux au dessus de ma tête :smile:
@LengZai Quand je parlais d'amazon echo, je voulais dire dans le sens reconnaissance vocale et qualité. Car là j'avais acheté le micro usb Trixes, ça fonctionne mais c'est pas super performant.
@physicien Merci ;) Comment tu as fais pour acheter sur amazon.com en étant en France ?
@francoismartin Je l'ai acheté sur amazon.ca en étant au Québec :rocket: C'est un micro assez facile à trouver sur Ebay aussi.
@LengZai la platine de microphone array du ReSpeaker. C'est par ici Xmos Mais ils ne commercialisent que le développeur kit à 1500$ de mémoire
@physicien Merci, je go acheter sur ebay, étonnant qu'amazon france ne le vend pas.
@diyfr Très belle découverte, comment as-tu trouvé ça par indiscrétion ? Si Xmos le fait, ils ne doivent pas être les seuls.
@francoismartin le produit est cité sur la page kickstarter de ReSpeaker. Et c'est le processeur DSP conçu par Xmos Sinon après faudrait monter une platine avec des composants TI. Ils ont aussi un DSP. mais ça dépasse mes compétences.
Merci @diyfr Mais j'ai déjà commandé le Matrix Creator qui me parait mieux du coup (plus de sensors, zwave, zigbee, etc) et moins cher que le Xmos. Mais bon, faut bien avouer que le Xmos parait parfait niveau sonore. J'attends de le recevoir et je posterai les résultats avec Jarvis (en espérant que cela fonctionne)
@LengZai c'est le prix de la plateforme de dev. J'ai regardé effectivement le Matrix créatif est pas mal. Mais trop cher pour moi. Merci @physicien pour l'info je me le note quelque part.
@LengZai Je serai vraiment curieux d'avoir ton retour d’expérience et avis sur matrix creator.
@diyfr
Que veux-tu dire par Sinon après faudrait monter une platine avec des composants TI
?
Merci
@francoismartin c'est la solution utilisée par Amazon écho. Le DSP pour les microphone array est un Texas Instruments. (Lien vers Fixit)[https://fr.ifixit.com/Teardown/Amazon+Echo+Teardown/33953] Aucune idée des coûts.
@diyfr Donc si je comprend bien tout le cerclage, avec le PCB, les micro, la technologies de captation et de réduction d'echo est directement développé par TI ?
@francoismartin à priori oui c'est ce que semble décrire Fixit et c'est ce que l'on voit sur la photo. Mais j'ai regardé un peu la Doc et pour les non initiés c'est un peu inabordable...
@LengZai Merci je vais regarder aussi par curiosité ;) Du coup si TI fait tout quel est l'intérêt pour ReSpeaker de passer par Xmos ... ?
@francoismartin oui bonne remarque lol. Bah finalement j'ai pris le matrix creator car la communauté me parait plus important.. mais respeaker reste à suivre.. Disons que pour le meme prix environ, le matrix fait plus de choses.. zwave,zigbee,accelerometre, camera,nfc,rfid,... Language de dev principal: javascript et ils ont prevu du c++ et python.
Malheureusement, j'ai du payer la douane de 42e.. abusé pour un board de développement (cout total avec conversion usd/eur.. 165 eur environ)... Enfin bon.. j'espere que j'aurai un bon retour d'investissement.. je le recois d'apres DHL, Vendredi soir (il est en France actuellement apres l'avoir commander y a 3jours)... Donc je suppose samedi au plus tard.
Avec le prix du pi3, ca fait presque 200e soit plus cher qu un Amazon Echo ou Google Home mais le Matrix Creator a beaucoup plus de possibilités et surtout customizable... Je ferai des tests ce week-end (si je le recois bien a l'heure) et vous tiendrai au courant.
DHL vient de m'appeler... Colis reçu today mais je suis au taff là donc je ne peux pas encore voir la bête.
Avez-vous entendu parler de ça.. Y'a pas beaucoup d'info sur le net.. société française il semblerait...
http://www.getfili.com/ https://www.facebook.com/getfili
Pas très bien référencé
@LengZai Il doit bien avoir un avantage de passer par Xmos sinon, il ne le ferait pas :D Vraiment curieux d'avoir des news sur l'utilisation, la facilité de Matrix creator et sur leur store de fonctionnalité.
Pour Fili, oui j'en est entendu parlé autour de moi, un ami d'un ami a été invité a une démonstration dans un de leur showroom et il m'a dit que c'était concluant et très prometteur. C'est une startup française, ils ne vendent pas encore le produit sur le mass market mais, souhaite avoir un nombre limité d'early adopter pour créer le produit avec eux et répondre a de vrai besoin ( si j'ai bien compris ;) ). Car leur but est de faire avancer le produit avec leur communauté et ne pas promettre 30 000 fonctionnalités avec un délai très cours de livraison qui n’est jamais respectée comme régulièrement fait sur les campagnes de crowdfunding.
Du coup, je trouve que leur approche est pas mal, et l'ami de mon ami aussi, car il l'a acheté et fait partie de ces "créateurs ».
Discussion passionnante, je suis vos échanges avec beaucoup d'intérêt !
@alexylem j'ai une discussion similaire sur Google plus j'espère que ce ne sont pas les mêmes personnes sinon on va se répéter à chaque fois :)
Ok mon 1er retour rapide sur le sujet.. On s'en franchement que c'est le début.. Tu installes comme indiquer sur leur site.. ca compile... quelques demos sont fournis.. code source (98% codes sources en c++, ca va, c'est lisible) et apres c'est tout Bon je rappelle que c' est la version creator donc fallait pas non plus s'attendre a du plug n play pour utiliser tous les capteurs avec n'importe quel programme.
Donc forcement jarvis ne marche pas avec car le micro n' est pas reconnu par le alsamixer (chose que j' avais cru avant d'acheter). Apres je ne connais pas encore bien le Rpi mais d'apres ce que j'ai pu lire sur le net... avoir une sorte de carte audio a travers les GPIO.. c'est peu courant..
Enfin bref.. je ferai plus de tests ce week-end.
Grace au demo, j'ai testé le micro a travers le binaire.. les leds s'allument pendant 10sec le temps de l' enregistrement, et ca m'enregistre 8 fichiers au format raw. petite conversion avec sox sox -b 16 -c 1 -r 16000 -e signed-integer mic_16000_s16le_channel_0.raw 000.wav ca me donne un fichier de 313Ko Ca bug a la fin de l enregistrement (mais les fichiers sont propres).. un prob de liberation de memoire mais j'ai quand meme mes 8 fichiers (un par micro donc)
~/matrix/matrix-creator-hal/build/demos $ ./micarray_recorder * Error in `./micarray_recorder': free(): invalid pointer: 0x76d3a4f8 * Aborted
Et je dois bien avouer que le son est très propre et très peu de bruit/souffle (difficle de l entendre en tout cas) Apres niveau volume du micro je n'ai pas trop regardé.. j'ai laissé la conf par defaut du prog en c++ la portée a l air bonne mais je n'ai pas pu tester bien loin... (le neveu dormait -_-''.. il repart demain donc je serai plus tranquille ce week-end)
j'ai vu que sur leur site.. il y a quelque code source en js pour faire des demo en js.. mais pas eu le temps de regarder et tester en details.
Donc pour le moment encore un peu tot a dire.. J' avais lu sur des sites GPS, BT mais il semblerait que non.. J'attends donc avec impatience les acces par js et python en tout cas
A titre d'info.. voici le code source de leur prog pour tester les 8 micro...
`/*
namespace hal = matrix_hal;
int main() { hal::WishboneBus* bus = new hal::WishboneBus(); bus->SpiInit();
hal::MicrophoneArray mics; mics.Setup(bus);
hal::Everloop everloop; everloop.Setup(bus);
hal::EverloopImage image1d;
for (auto& led : image1d.leds) led.red = 10;
everloop.Write(&image1d);
uint16_t seconds_to_record = 10;
int16_t buffer[mics.Channels()][seconds_to_record * mics.SamplingRate()];
uint32_t step = 0; while (true) { mics.Read(); /* Reading 8-mics buffer from de FPGA */
for (uint32_t s = 0; s < mics.NumberOfSamples(); s++) {
for (uint16_t c = 0; c < mics.Channels(); c++) { /* mics.Channels()=8 */
buffer[c][step] = mics.At(s, c);
}
step++;
}
if (step == seconds_to_record * mics.SamplingRate()) break;
}
for (uint16t c = 0; c < mics.Channels(); c++) { std::string filename = "mic" + std::to_string(mics.SamplingRate()) + "_s16lechannel" + std::to_string(c) + ".raw"; std::ofstream os(filename, std::ofstream::binary); os.write((const char)buffer[c], seconds_to_record * mics.SamplingRate() \ sizeof(int16_t));
os.close();
}
for (auto& led : image1d.leds) { led.red = 0; led.green = 10; } everloop.Write(&image1d);
return 0; } `
quelques images rapide:
L'impression sur la boite est vraiment de mauvaise qualite
Merci pour cette restitution. Du coup pas de dsp si 8 pistes audio ...
@diyfr Je suis curieux de suivre la discussion sur google plus, peux-tu me donner le lien ;) Merci Et pourquoi pas de DSP si 8 piste audio ? C'est limité à 6 pistes le DSP ?
@LengZai Merci beaucoup pour ton retour rapide. Et leur communauté sur leur forum, aucun ne parle pour la reconnaissance du micro sur alsa, c'est étonnant.
@francoismartin il y a des communautés qui traitent de ce sujet (domotique, S.a.r.a.h) Mais le post ici évoqué est celui-ci
Je me suis inscris à leur communauté ce matin.. Y'a des "anglais" qui cherchent à faire la meme chose que jarvis.sh donc j'ai fais un peu de pub :-)
J'ai posté ce matin... http://community.matrix.one/t/doing-on-board-word-phrase-detection/37/7 Pour augmenter la communauté, faut passer en anglais https://github.com/alexylem/jarvis/issues/107 :-P
C' est pour cela que je suis sceptique pour Fili, mon ami a fait une demande, il va avoir un appel avec eux pendant 15min avant de "se voir physiquement". Il devrait faire un site au moins en anglais pour avoir plus de beta testeur... enfin si j' etais eux.. je miserai le potentiel de l'international
@diyfr, @francoismartin j'ai regardé sur le net mais pas trop d'info au sujet du DSP.. J'ai aussi du mal a comprendre ce que ca peut changer et si c'est materiel ou/et logiciel? Voici le composant micro du Matrix Creator: https://github.com/matrix-io/matrix-creator-quickstart/wiki/Data-Sheets MICS: MEMS MP34DB02
Le DSP va traiter les flux (8) des différents microphones pour te restituer un seul flux audio nettoyé des éléments parasites et echo en se concentrant sur le spectre de la voix humaine. Cela peut être fait programmatiquement parlant mais la ou c'est le plus efficace c'est un microprocesseur dédié.
Ha ? Si c'est en cpp, moi ca m'interesse.
Par contre pas besoin nécessairement de 8 flux pour traiter l'audio, je vois pas ce qui empeche de traiter uniquement 2 micros. Cela depend de l’algorithme utilise pr traiter le son.
Pour la reconnaissance offline ils tournent avec pocketsphinx, pour l'avoir teste, c'est pas fameux, donc meme si le hardware est plus puissant, ca ne vaudra jamais les versions online.
En fait j'ai beau chercher des infos sur leur projet, je ne vois pas le "plus" qu'ils ont face aux autres projets comme mycroft, alexa, ou simplement Jarvis qui lui est a 100% modifiable a convenance et a l'infini. Tu prend Jarvis, tu le couple a un systeme domotique qui gere deja zwave par exemple (comme Domoticz) une meilleur microphone et tu as deja mieux que leur projet.
Ceci dis moi perso j'attend que alexa debarque en francais. Le seul truc qui pourrais faire sortir un projet du lot, c'est le traitement de la reconnaissance vocale, et pour moi c'est le "projet" que je surveille le plus (meme si c'est plus un service qui va arriver de toute facon qu'un reel projet).
Pour le MATRIX Creator @LengZai , si tu avances dans les tests ca m'interesse par contre.
Edit: je viens de voir un exemple de "Face Tracking" avec une "interface camera" par contre je ne vois pas de webcam sur la video, ni d'info comme quoi il y aurait une cam sur la MATRIX. Des infos ?
@Smanar Pour capter une voix de manière claire à moyenne distance, on utilise des Microphones Arrays (de 2 à xx) Soit un DSP traite le flux tel que le fait XMOS ou le DSP TI, soit un traitement sur ton PC, mais cela est consommateur de ressource exemple Un DSP va traiter les flux des différents microphones (NoiseCancellation) pour "nettoyer la voix" et te restituer une seule piste.En résumé (vraiment à la louche) ça prend en compte le déphasage entre les différents micro en se concentrant sur le spectre de la voix humaire
@diyfr Tu as déjà bidouillé du DSP ?
Sorry for my late reply on this topic.. I was a bit disappointed because i was waiting a better docs from Matrix.. But in fact, they have published the JS API doc.. Their website menu was not really clear so i didn't see it... I will finally be able to play with it as the JS API is the most interesting part to play and interact quickly with it
Here the link of the API doc.. https://matrix-io.github.io/matrix-documentation/ I will play with it and let you know if i can use it with Jarvis.sh... Computer Vision (I will need to order Pi Camera) Microphone .. very light description for that one u_U Speaker Cross-Talk.. Cool feature to establish communication between Matrix
Désolé pour le retour tardif sur le sujet... j'etais un peu dessus car j'attendais plus de docs de la part de Matrix.. et je ne sais pas depuis quand il avait publié une vrai doc (en anglais)... je pourrais enfin "joué" avec.. ce qui m'interressait surtout c'etait la partie API JS...
Pour les intéresser.... Voici l'API doc.. https://matrix-io.github.io/matrix-documentation/ Je vous ferai un retour et voir comment exploiter tout cela avec Jarvis... Computer Vision (faudrait que je me prends la Pi Camera Microphone .. un peu light encore leur API Speaker Cross-Talk.. ca .. ca peut etre cool
Stay tune...
@physicien , Hi Is it possible to have your opinion about CM-1000 USB ? I don't know what can I buy like microphone. In the moment I'm using the Trixies but I get always a timeout because apparently, it hears always background noise ... So I search a new microphone. Ah also, I'm at ~2-3 meters of the microphone. And it's near of the TV. Me I'm on the couch... I think I want the impossible but I ask in case :)
thanks !
@kevincaradant In my opinion, this microphone is just what you want. With the built-in (hardware) echo cancellation and noise reduction, I can make myself understood even listening to music and being at 2-3 m from the microphone. You have to speak a little louder if you're away, but it's the same thing with human after all. In addition, the microphone requires no software or driver, so it's directly preprocessed audio signal via USB to your computer.
@physicien OK, I will buy it on Ebay because it's the only location where I find it .
But, I want to be sure before, I can't bring back it like with Amazon etc :).
Thank you for your comment :)
Edit: @physicien , Do you know this microphone: MXL AC-404 ?
@LengZai Tu as pu avancer avec le micro matrix ?
merci
Hi we are excited to announce that ALSA support is ready in MATRIX Creator !! Just need to do:
sudo apt-get update sudo apt-get upgrade sudo reboot
After reboot, you can use arecord like this: arecord --device=mic_channel1 -r 16000 -c 1 -f S16_LE test.wav
Enjoy !!
MATRIX Labs Team!
Hi @kdpatino,
Thanks a lot of that great news and your support! Indeed, I was just looking for playing with the mic array and Jarvis.sh.
I will give my feedback by the end of the week here and on the Matrix community... (...I suppose i can put any mic_channelx?) Or find the trick with your mic_array_demo to catch the loudest sound within the mic array.
Thanks again!
Jarvis is using rec
(sox
) to record voice commands because of its silence
plugin to detect end of speech. Hope it will also work with rec
.
@physicien Hi I bought the microphone CM-1000 SOUNDTECH. On a Windows computer, this microphone is really good, but I'm desapointed because on my odroid C1, it doesn't work. In fact, the odroid is frozen when I put it on USB :(. Maybe a problem of drivers ? With others microphones, that worked, so I don't know where can I look to resolve this.
@kevincaradant It's strange, because this microphone has no driver. I think it's a problem with Alsa, because the microphone is only a sensor that transmits the sound directly to the Alsa server. See maybe this problem?
Hi @kdpatino
Just tried as you mentioned above... (reboot twice, same issue) It doesn't work as expected alsamixer doesn't recognize a capture device I got this error message: $>arecord --device=mic_channel1 -r 16000 -c 1 -f S16_LE test.wav arecord: main:722: audio open error: No such file or directory
Here the result of the command: (so i suppose there is a link with PulseAudio?) $>arecord -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server mic_channel0 mic_channel1 mic_channel2 mic_channel3 mic_channel4 mic_channel5 mic_channel6 mic_channel7 sysdefault:CARD=Dummy Dummy, Dummy PCM Default Audio Device dmix:CARD=Dummy,DEV=0 Dummy, Dummy PCM Direct sample mixing device dsnoop:CARD=Dummy,DEV=0 Dummy, Dummy PCM Direct sample snooping device hw:CARD=Dummy,DEV=0 Dummy, Dummy PCM Direct hardware device without any conversions plughw:CARD=Dummy,DEV=0 Dummy, Dummy PCM Hardware device with all software conversions
and if needed... here my /etc/modprobe.d/alsa-base.conf
options snd_usb_audio index=0 options snd_bcm2835 index=1
options snd slots=snd_usb_audio,snd_bcm2835
@physicien , Ah it works now, the prblem come from my USB drivers, so I'm using an OTG connexion... What is your params in JARVIS ? Sensibility 0 , 50 , 100% ? and all parameters about silence min and max ? Thank you. When I'm close that works but when I want increase the distance (2 meters), I increase the sensibility because without this, JARVIS does not hear me but It's weird ... I say "Lance KODI" and JARVIS understand "avalanche coundy" ....
If you have very specific words, you can also record a quick command with snowboy...
yes but @alexylem , do you remember that I'm the guy which have more 30+ commands for kodi :D. So it's not a good idea with snowboy. I think with the CM-1000 microphone, I can find something great with some settings but I don't know what can I change. For physicien, that seems to work properly, that's why I ask him what are his settings ;)
Indeed 😄 I have re-opened your Issue as an Enhancement as it may interest others: #168
@kevincaradant I set the sensitivity to 64% in Jarvis. In terms of understanding the words, the STT that is problematic. You will notice that what he gives you as transcription is phonetically similar to what you tell him. So the STT engine is not trained to your accent or these words. The natural language understanding is complex.
@physicien , alright thank you, I will try this sensitivity. @alexylem, OK thanks, we will see if I'm the only one to want this :)
@LengZai i found this doc https://github.com/matrix-io/matrix-creator-quickstart/wiki/Microphone-Array-Recording-Test
I do not know if it can help you
Hi @LengZai, please check if you have the latest release of our debian packages. Next be sure that malos service is up, now in the last release it start automatic.
https://github.com/matrix-io/matrix-creator-malos
Please Let me know if you have more troubles.
Regards,
MATRIX Labs Team.
Hi Alex,
Just found this on Kickstarter.... Interesting regarding the mic array...
https://www.kickstarter.com/projects/seeed/respeaker-an-open-modular-voice-interface-to-hack?ref=newest