SEPIA-Framework / sepia-docs

Documentation and Wiki for SEPIA. Please post your questions and bug-reports here in the issues section! Thank you :-)
https://sepia-framework.github.io/
236 stars 16 forks source link

Pi Zero als headless client? #68

Open rubipopubi opened 4 years ago

rubipopubi commented 4 years ago

Hey,

hat irgendjemand Erfahrungen bei der Umsetzung eines headless clients mit einem Pi Zero und einem Respeaker 2Mic Hat? Ich bekomme Sepia zwar grundsätzlich zum Laufen, allerdings ist das Teil unheimlich langsam (ich weiß, ist ein Pi Zero :D) und die Wake-Worderkennung klappt gar nicht. Wenn ich das Mic per Client Connection triggere, dauert es ca. 5-10 Sekunden, bis das Mikrofon sich einschaltet, Sprachausgabe scheint er gar nicht hinzubekommen. Ist das normal angesichts der Leistung des Pi Zero oder mach ich was falsch? Muss der Pi Zero anders eingerichtet werden als z.B. ein Pi3?

LG Ruben

neporamone commented 4 years ago

Moin @rubipopubi

den Zero dazu zu verwenden, halte ich für den praktischen Gebrauch nicht für sehr sinnvoll. Hatte noch einen RPI 1 rumliegen und habe es mal getestet. Die Auslastung (htop) lag immer bei knapp 100%, selbst wenn ich nichts gemacht habe. Dementsprechend wundert es mich nicht, das alles bei dir sehr sehr langsam (wenn überhaupt) läuft. Nachvollziehbar, da stetig chromium in mehreren Instanzen läuft und der braucht nun mal CPU-Power. Hatte auch anfangs diesen Grundgedanken und wäre natürlich eine Super Client-Lösung.

Tschau nepo

rubipopubi commented 4 years ago

Hey @neporamone,

danke für die Rückmeldung, dann lass ich das erstmal sein. Schade allerdings wirklich, das hätte alles sehr viel kompakter machen können.

fquirin commented 4 years ago

@rubipopubi ich habe bei mir einen RPi Zero mit ReSpeaker HAT rumliegen. Hatte den jetzt schon länger nicht an aber zuletzt lief er eigentlich ganz ordentlich. Zugegebenermaßen hatte ich das Wake-Word glaube ich aus am Ende und immer über die Remote-Action getriggert (Bluetooth oder Wifi). Ich war aber auch generell nicht so happy mit dem 2Mic HAT. Wenn nur der Client im Headless Modus läuft auf dem Zero und sonst nichts anderes sollte die Auslastung akzeptabel sein. Chromium braucht nur einen Tab für den Client und 2 oder 3 Threads für sich selbst, das frisst hauptsächlich RAM.

Nutzt du das Neuste Raspberry Pi OS und Bluetooth? Ich hatte da mal Probleme, allerdings auf dem RPi4 und musste Bluetooth deaktivieren weil das Wifi unendlich laggy wurde. Eventuell gibt es dieses Problem hier auch.

Ich werde demnächst auch noch mal eine Version mit dem RPi Zero basteln + mini Display ... mal gucken.

rubipopubi commented 4 years ago

Hey Florian,

ja, drauf war das neueste Raspi Os. Bluetooth hatte ich gar nicht beachtet. Ich werde es nochmal aufsetzen und Bluetooth deaktivieren und dann mal testen, ob es besser läuft. Habe mir zwischenzeitlich noch einen Pi 3a+ besorgt und den 2Mic-Hat drauf gesetzt. Damit klappt alles bestens. Bin auch im Allgemeinen mit dem 2Mic-Hat ganz zufrieden, wobei ich keinen Vergleich mit besseren Alternativen anstellen kann - außer dem 4Mic-Hat, der tatsächlich wesentlich bessere Reichweite ermöglicht, aber dafür - siehe anderer Thread - Probleme mit der Audioausgabe bei Sepia macht.

fquirin commented 4 years ago

Am besten ist wahrscheinlich wenn man Bluetooth schon in der boot config vom RPi deaktiviert und bei der SEPIA Client installation dann bash install_sepia_client.sh skipBLE nutzt (ich weiß jetzt gerade nicht genau ob ich das Feature schon in der v0.22.0 hatte, eventuell noch etwas warten auf die neue Version ^^).

außer dem 4Mic-Hat, der tatsächlich wesentlich bessere Reichweite ermöglicht, aber dafür - siehe anderer Thread - Probleme mit der Audioausgabe bei Sepia macht

Vielleicht bestelle ich mir auch mal eins zum Testen, der war ja glaub nicht so teuer :-)

[EDIT] Noch eine zusätzliche Info. Ich habe vor einer Weile mal angefangen an einem puren Node.js Client zu arbeiten. Der kann zwar noch keine Spracherkennung aber immerhin schon mal mit dem Server kommunizieren ^^ ... vielleicht wird daraus noch ein super-light headless client irgendwann ;-)

rubipopubi commented 3 years ago

Super-light headless client... das wäre ein Traum!

Ich habe den Pi Zero nochmal schnell aufgesetzt, er scheint auch tatsächlich etwas schneller zu reagieren. Allerdings habe ich nun folgende Fehlermeldung im Client Connections Log und die automatische WakeWorderkennung funktioniert nicht:

Broadcaster event: {"broadcast":{"client":"zero_chrome_app_v0.22.0","deviceId":"zero","sepia-wake-word":{"state":"active"}}} Broadcaster event: {"broadcast":{"client":"zero_chrome_app_v0.22.0","deviceId":"zero","sepia-wake-word":{"state":"error","msg":"Cannot read property 'apply' of undefined"}}} Broadcaster event: {"broadcast":{"client":"zero_chrome_app_v0.22.0","deviceId":"zero","sepia-wake-word":{"state":"inactive"}}}

Wahrscheinlich habe ich irgendwas falsch eingestellt aber ich komme grade nicht dahinter.

fquirin commented 3 years ago

Super-light headless client... das wäre ein Traum!

Ich habe mir letzte Woche einen Atom Echo aus dem M5Stack Sortiment bestellt, das ist ein ESP32 Modul mit Mikrofon und Lautsprecher. Kleiner geht es nicht ^^. Das ganze funktioniert über Mikroprozessor Programmierung z.B. mit MicroPython. Dafür muss ich wahrscheinlich genau diesen "super-light" Client basteln ^^. Weiß noch nicht genau wann ich dazu komme, momentan ist bisschen viel zu tun :-/ aber bleibe dran ;-)

Broadcaster event: {"broadcast":{"client":"zero_chrome_app_v0.22.0","deviceId":"zero","sepia-wake-word":{"state":"error","msg":"Cannot read property 'apply' of undefined"}}}

Oh diese Meldung kenne ich auch noch nicht. Trat die wiederholt auf?

rubipopubi commented 3 years ago

Ich habe mir letzte Woche einen Atom Echo aus dem M5Stack Sortiment bestellt, das ist ein ESP32 Modul mit Mikrofon und Lautsprecher. Kleiner geht es nicht ^^.

😲 wusste gar nicht, dass es schon so winzig geht.

Oh diese Meldung kenne ich auch noch nicht. Trat die wiederholt auf?

Ja die kam regelmäßig. Ich kann es leider gerade aber nicht reproduzieren, da ich den Pi Zero grade wieder verstaut und erstmal ad acta gelegt habe.

463nt-0ran63 commented 3 years ago

Gibt es denn generell noch Alternativen wie man so einen echo dot usw annähernd nachgebaut bekommt zumindest was die Mikrofonqualität angeht und vielleicht den Ton auch einigermaßen ausgibt? So ein respeaker 2mic clone aber in "besser"? Gibt's sowas für den pi?

fquirin commented 3 years ago

Hi @463nt-0ran63

Es gibt eine ganze Menge an ReSpeaker 2 Clones, die nutzen aber fast alle den selben Chip. Vor ca. 1 Woche hatte ich mal wieder eine ganze Reihe durchgetestet:

Als Unterbau sollte mindestens ein RPi3 dienen, die Zeros sehe ich höchstens als remote Mic ähnlich wie eine Fire-TV Fernbedienung, zumindest Wake-Word Detektion auf den Zeros ist ziemlich schlecht.

Hoffe das hilft etwas weiter :-)

463nt-0ran63 commented 3 years ago

Cool einige von denen ich noch nie gehört habe, den ReSpeaker 4-Mic HAT hatte ich aufm Schirm, hier fehlt mir halt nur der Lautsprecher. Wobei ich einige RPI für multiroom Audio benutze (max2play) richtig nice wäre es wenn es möglich wäre den audiostream quasi auf diese Lautsprecher zu leiten...

Der Joy-IT Talking-PI HAT hört sich auch interessant an ich kam da nur nicht rauslesen ob man da spezielle Treiber benötigt für die Micro Installation, der respeaker benötigt es ja, hast du den zum laufen bekommen? Preislich wäre der auch auf jeden Fall interessant auch das man das Micro freier platzieren könnte ist eine feine Sache Update: hab doch noch die Treiber install gefunden http://talkingpi.joy-it.net/wp-content/uploads/2020/05/RB-TalkingPi-SoundTreiber-Anleitung-20200417.pdf

fquirin commented 3 years ago

Fun fact: die Treiber scheinen die vom Google AIY voice HAT zu sein. Funktionierte bei mir auf Anhieb... was mich selbst etwas überrascht hat 😅.

Bei den WM8960 Geräten scheint es übrigens zur Zeit Probleme mit dem RPi Kernel 5.10 zu geben. Im Seeed Studio GitHub Repository gab es dazu Kommentare und einen Fork mit Treibern, die zu laufen scheinen.