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/
238 stars 16 forks source link

Update von 2.6.1 auf 2.6.2 #205

Closed cap-blackbeard closed 1 year ago

cap-blackbeard commented 2 years ago

Hallo Florian,

ich brauch mal wieder Hilfe! Ich finde keine hilfreichen Infos, was ich machen muss.

Aktuell läuft der Docker Container mit dem Image 2.6.1_amd64. Den Sepia-Ordner habe ich zur Sicherheit schon mal gesichert. Kannst Du mir kurz die Schritte aufschreiben? Oder den Link, falls es eine Anleitung gibt?

Grüße Christian

fquirin commented 2 years ago

Hi Christian,

ich musste selbst wieder suchen =), aber ich wusste irgendwo hatte ich was dazu geschrieben ^^. Hilft das:

https://github.com/SEPIA-Framework/sepia-docs/wiki/SEPIA-inside-virtual-environments#update-your-container

cap-blackbeard commented 1 year ago

Hi, ja, hat geholfen. Docker-Server läuft und der DiY-Client eigentlich auch. Aber...

cap-blackbeard commented 1 year ago
  • der Client hat früher per SEPIA-Stream die MaryTTS Stimmen ausgegeben. Diese sind jetzt nach dem Update nicht mehr aufgelistet. Musste ich die irgendwie aktivieren/ installieren?

habs gefunden 😄 https://github.com/SEPIA-Framework/sepia-assist-server/blob/master/Xtensions/TTS/marytts/INSTALL.md läuft wieder 👍

Die zwei Probleme beschäftigen mich aber nach wie vor:

  • die Porcupine-Aktivierung bei Version 2.1_en schlägt fehl mit der Meldung: "Porcupine error: Failed to create module. - Name Error - Message: 'pv_porcupine-init' failed with same status INVALID_ARGUMENT"
  • unabhängig von Porcopine-Fehlermeldung. Ich hatte den Key früher in der settings.js eingetragen. Dieser wird jetzt ignoriert? Hat sich da seit dem Update was geändert oder habe ich ggf. nen (Schreib-)Fehler?
fquirin commented 1 year ago

Hi @cap-blackbeard ,

die Porcupine-Aktivierung bei Version 2.1_en schlägt fehl mit der Meldung: "Porcupine error: Failed to create module. - Name Error - Message: 'pv_porcupine-init' failed with same status INVALID_ARGUMENT"

Ich habe es gerade noch mal mit dem aktuellen release Client getestet (0.24.2) und es läuft ohne Fehler durch bei mir. Hier ist die Konfiguration:

{
    "headless": {
        "device": {
            ...
            "wakeWordAccessKeyPorcupine": "EhndhSN1g...",
            "wakeWordNames": "Computer",
            "wakeWordVersion": "2.1_en",
            "wakeWordRemoteUrl": "<sepia_website>/files/porcupine/"
        },
...

Als "wakeWordRemoteUrl" habe ich mal den public server genommen (die SEPIA GitHub Seite), weil ich gerade keinen 2.6.2 Server online hatte (alles im 2.7.0 Test-Mode ^^). Der default <assist_server>/files/wake-words/porcupine/ müsste aber auch gehen wenn du eingeloggt bist.

Hat sich da seit dem Update was geändert oder habe ich ggf. nen (Schreib-)Fehler?

Eigentlich nicht.

cap-blackbeard commented 1 year ago

Hmm... gibt es eine Konstellation, dass der DIY-Client seine Einstellungen nicht in der settings.js speichert? Bzw. nicht die settings.js benutzt? Ich habe am Client die Einstellungen für das WakeWord wieder auf Standard "Hey Sepia" gestellt (per Display, Maus und Tastatur) Wenn ich per ssh die settings.js anschaue, dann ist da trotz Neustart "Jarvis", "2.1_en" und der Key eingetragen.

fquirin commented 1 year ago

gibt es eine Konstellation, dass der DIY-Client seine Einstellungen nicht in der settings.js speichert?

Tatsächlich speichert der Client seine Einstellungen immer NUR im localstorage, sprich im Cache. Die settings.js wurde damals eingeführt, um den Client konfigurieren zu können, wenn kein Display existiert und ist "read-only". Sie wird auch nur benutzt wenn der Client im "headless" oder "pseudo-headless" (verhält sich wie headless aber mit Display) Modus ist. In Zukunft würde ich gerne ein Interface schreiben, mit dem man die settings.js auch schreiben kann, aber momentan ist die "komfortabelste" Methode die Einstellungen über die Client -> Einstellungen -> Account -> Device & App Settings: Exportieren zu speichern und dann in die settings.js zu schreiben.

cap-blackbeard commented 1 year ago

Und sie settings.js wird immer beim Neustart gelesen? Und dann müsste z.B. bei den wakeword-settings WakeWord aus der settings.js und der Key ... auftauchen?

Mein Client ist als pseudo-headless konfiguriert. Ich bin der Meinung, dass meine settings.js nicht verwendet wird. Habe eben das skin in der settings.js geändert und nach dem Neustart ist keine Veränderung eingetreten.

fquirin commented 1 year ago

Pseudo-headless konfiguriert den Client Start eigentlich mit einem der "headless" Parameter (siehe URL Parameter). Wenn der gesetzt ist müsste die settings.js bei jedem Start oder reload gelesen werden.

cap-blackbeard commented 1 year ago

Du meinst so: "http://serverIP:20726/sepia/assist/app/index.html?isHeadless=true" ??? Keine Ahnung, wie ich das vor dem Update gemacht hatte. Aber mit URL Parametern habe ich noch nie gearbeitet. Ist Neuland für mich.

fquirin commented 1 year ago

Hey, sorry ich war etwas im Stress und hatte ein paar Nachrichten übersehen. Die URL sieht gut aus, eigentlich müsste das in der run.sh aus ~/sepia-client/ aber automatisch drin sein 🤔 . Hat sich das Problem gelöst mittlerweile?

cap-blackbeard commented 1 year ago

Hallo Florian, kein Stress! Leider habe ich noch keine Lösung gefunden. Das eigentliche Problem ist, dass ich das ww JARVIS 2.1_en nicht mehr aktiviert bekomme. Folgende Meldung erscheint:

Ich habe meinen Key über die neue Touchtastatur eingegeben. Dann war mein Versuch den Key und die ww-Aktivierung mit der settings.js zu übergeben. Klappt leider auch nicht. Ich vermute, dass meine settings.js überhaupt nicht geladen wird. Denn nichts von dem, was ich dort eintrage, wird geladen (weder ww noch skin noch Koordinaten...). Übrigens, wenn ich den Key auf meinem Laptop benutze, dann wird dieser akzeptiert.

fquirin commented 1 year ago

Ich vermute, dass meine settings.js überhaupt nicht geladen wird. Denn nichts von dem, was ich dort eintrage, wird geladen (weder ww noch skin noch Koordinaten...).

Den Client startest du über die standard Methode, sprich auto-login beim boot des OS (über den Eintrag in der ~/.bashrc)? Hast du die ~/sepia-client/run.sh irgendwie modifiziert? Wenn nicht check mal was im Setup als modus angezeigt wird (~/sepia-client/setup.sh). Wenn da headless oder pseudo-headless steht, sollte der Client mit dem richtigen Befehl hochladen und dann auch die settings.js laden. Wenn das trotzdem nicht funktioniert würde ich eventuell mal die uninstall Schritte versuchen und den Client dann neu installieren :-|.

cap-blackbeard commented 1 year ago

Ja. Der Client startet per auto-login. Neu am Verhalten ist jetzt, dass der Debug Log ausgibt: Initialization took too long! ... Das könnte tatsächlich sein. Mein Server (gesamt 8GB RAM) hat aktuell nur noch 500MB RAM frei. Kann ich das timeout für den ww-start verlängern?

cap-blackbeard commented 1 year ago

Nö doch nicht. Habe eben noch nen anderen Container gestoppt und erhalte sofort wieder im Client die Meldung: "Porcupine error: Failed to create module. - Name Error - Message: 'pv_porcupine-init' failed with same status INVALID_ARGUMENT"...

Ich denke, ich nehme eine neue SD-Card und fange nochmal von vorne an.

fquirin commented 1 year ago

500MB ist etwas knapp für den Client, wobei das 2.1 WW am wenigsten RAM benötigt (1.9 ist glaube ich am schlimmsten, weil Picovoice das hard-coded hat und damals viel zu großzügig war :-|).

Initialization took too long! ...

wo genau kommt der Fehler noch mal? Ich kenne den, aber kann mich gerade nicht mehr erinnern ^^

cap-blackbeard commented 1 year ago

Initialization took too long! ...

hat der Debug Log im Client ausgegeben, kurz nachdem ich im Client in den WakeWord-Settings auf den Start-Button gedrückt habe.

Aber nachdem ich einen weiteren docker-Container gestoppt habe hat der Server ca. 1,2GB verfügbar. Jetzt schreibt der Client wieder:

Porcupine error: Failed to create module. - Name Error - Message: 'pv_porcupine-init' failed with same status INVALID_ARGUMENT
Error during setup of module: porcupine-wake-word-worker
ERROR: Failed to create module. -Name: Error - Message: 'pv_porcupine_init' failed with status INVALID_ARGUMENT
fquirin commented 1 year ago

hat der Debug Log im Client ausgegeben, kurz nachdem ich im Client in den WakeWord-Settings auf den Start-Button gedrückt habe.

Ach ja, jetzt erinnere ich mich, das kommt vom recorder, wenn der zu lange braucht, um zu starten. Das kann auch kommen, wenn der Client nach mic permission fragt und der User zu langsam klickt 😅 , aber ich denke hier war es doch der RAM der dann ausging.

Jetzt schreibt der Client wieder: ..

Wenn du in den "Hey SEPIA" Settings guckst, ist da der API Key für PP v2.1 sichtbar? (expert settings)

cap-blackbeard commented 1 year ago

Wenn du in den "Hey SEPIA" Settings guckst, ist da der API Key für PP v2.1 sichtbar? (expert settings)

Jupp ist sichtbar. Den habe ich ja per Hand eingetippt. Ich habe eben nochmal das letzte Zeichen des Keys gelöscht und erhalte bei der ww-Aktivierung jetzt die Meldung: ...blablabla Invalid AccessKey

Daher behaupte ich, dass ich den Key vorher auch richtig eingetippt habe.

fquirin commented 1 year ago

Ich habe eben nochmal das letzte Zeichen des Keys gelöscht und erhalte bei der ww-Aktivierung jetzt die Meldung: ...Invalid AccessKey

Ok, das heißt ja zumindest, dass der Key tatsächlich geladen wird und auch überprüft 🤔 Und der gleiche Key funktioniert am Desktop PC bzw. in der App hattest du gesagt, richtig? Komisch irgendwie klingt das, als ob die Porcupine Dateien falsch oder kaputt sind.

cap-blackbeard commented 1 year ago

Und der gleiche Key funktioniert am Desktop PC bzw. in der App hattest du gesagt, richtig?

Da war ich wohl zu voreilig stelle ich gerade fest. Der DebugLog schreibt: CREATING Wake-Word listener... CREATING Wake-Word listener...

Läuft also doch mit am PC und auch nicht am iPhone.

fquirin commented 1 year ago

CREATING Wake-Word listener... CREATING Wake-Word listener...

Ohne richtige Fehlermeldung danach? Komisch, irgendwie ist das alles total inkonsistent 😖 . Kannst du am PC mal F12 drücken für die Dev Tools und in der "Console" gucken ob da noch mehr Fehler stehen?

Die anderen Wake-Words gehen aber? v1.4 z.B.?

cap-blackbeard commented 1 year ago

Die anderen Wake-Words gehen aber? v1.4 z.B.?

Das iPhone hat 1.9 Jarvis geladen.

Der Laptop mit Browser: Edge hält Sepia für nicht sicher.

fquirin commented 1 year ago

Der Laptop mit Browser: Edge hält Sepia für nicht sicher.

Beim aktivieren des Mikrofons? Oder schon vorher? SSL hattest du noch nicht zum Laufen bekommen oder? Die quick-n-dirty Methode müsste auch im Edge klappen: Secure Origin Ausnahmen (eventuell edge:// anstatt chrome://)

cap-blackbeard commented 1 year ago

Ich dachte SSL mit dem Nginx Proxy Manager am Laufen zu haben. Aber Irgendwie ist da auch noch der Wurm drin. Mit dem iPhone kann ich Sepia von extern öffnen. Der Laptop zeigt nur die "Welcome to nginx!" Seite. ...

Secure Origin Ausnahmen

Der Laptop hat Hey Sepia 1.4 geladen! Und der Laptop lädt jetzt auch Jarvis 2.1_en !!!

fquirin commented 1 year ago

Ich dachte SSL mit dem Nginx Proxy Manager am Laufen zu haben. Aber Irgendwie ist da auch noch der Wurm drin. Mit dem iPhone kann ich Sepia von extern öffnen. Der Laptop zeigt nur die "Welcome to nginx!" Seite. ...

War das über SEPIA selbst eingerichtet (Duck-DNS oder self-signed) oder über ein anderes Gerät im Netzwerk (NAS etc.)?

Der Laptop hat Hey Sepia 1.4 geladen! Und der Laptop lädt jetzt auch Jarvis 2.1_en !!!

Ok, also grundsätzlich geht es, das ist schon mal gut zu wissen 😅

cap-blackbeard commented 1 year ago

War das über SEPIA selbst eingerichtet (Duck-DNS oder self-signed) oder über ein anderes Gerät im Netzwerk (NAS etc.)?

Ich hatte schon viel probiert/ gespielt. Aber jetzt müsste Sepia in der Standardkonfiguration sein. Ich habe den NginxProxyManager mit duck.dns Konfiguration als docker Container laufen und habe dort die Server-IP:20726 hinterlegt. Dem iPhone genügt das auch. Der Laptop hat da eben noch etwas gezickt.

Ok, also grundsätzlich geht es, das ist schon mal gut zu wissen 😅

Jupp. Ging ja eben auch bis zum Update. Und was machen wir mit dem DiY-Client jetzt?

fquirin commented 1 year ago

Und was machen wir mit dem DiY-Client jetzt?

Tja, gute Frage. Geht denn der Rest eigentlich vernünftig, wenn das wake-word deaktiviert ist? Insbesondere die Spracherkennung? Ich würde im Zweifel vielleicht wirklich mal die "Uninstall" Schritte (siehe Link oben) ausführen oder noch mal komplett sauber anfangen.

cap-blackbeard commented 1 year ago

Ja. Der Rest funktioniert tatsächlich gut. Aber egal. Einmal neu machen wird nicht schaden.

fquirin commented 1 year ago

Ok, wenn der gleiche Fehler wiederkommt, können wir das issue hier ja wieder auf machen.

cap-blackbeard commented 1 year ago

Der Client läuft wieder. Aber das ww bekomme ich trotzdem noch nicht zum Laufen. Ich bekomme immer noch folgende Meldung:

  • "Porcupine error: Failed to create module. - Name Error - Message: 'pv_porcupine-init' failed with same status INVALID_ARGUMENT"
fquirin commented 1 year ago

Ist das jetzt der v0.25.0 Client? "headless" und nur die settings.js angepasst um das Jarvis v2.1 WW zu laden? Funktioniert das 1.4er Hey SEPIA WW?

cap-blackbeard commented 1 year ago

Genau. v0.25.0; pseudoheadless und die settings.js wird jetzt auch geladen.

1.4er Hey SEPIA

ja. Funktioniert.

fquirin commented 1 year ago

kannst du mal die settings.js posten, also die relevanten Einträge. Die müssten ungefähr so aussehen:

{
    "headless": {
        "device": {
            "host-name": "my-sepia.domain",
            ...
            "wakeWordNames": "Jarvis",
            "wakeWordVersion": "2.1_en",
            "wakeWordAccessKeyPorcupine": "...HABKMi/A==",
            "wakeWordRemoteUrl": "<assist_server>/files/wake-words/porcupine/"
        },
        "user": {
            ...
            "autoloadWakeWord": true,
            "useWakeWord": true
        },
        ...
    }
}
cap-blackbeard commented 1 year ago

"wakeWordNames": "Jarvis", "wakeWordVersion": "2.1_en", "wakeWordAccessKeyPorcupine": "...M75oRlYRJtIxEg==",

"wakeWordRemoteUrl": "/files/wake-words/porcupine/"

Diesen Eintrag habe ich nicht.

fquirin commented 1 year ago

Diesen Eintrag habe ich nicht.

Der ist normalerweise auch nicht nötig und hat den angegeben Wert als Default. Man kann theoretisch die URL zu den Dateien ändern, die nicht standardmäßig im Client enthalten sind. Beim Default wird es vom eigenen SEPIA Server geladen.

[EDIT] Um z.B. aus dem Git zu laden kann man folgendes nutzen: <sepia_website>/files/porcupine/

cap-blackbeard commented 1 year ago

Jetzt wo der Server v2.7.0 läuft, startet auch der Browser-Client am iPhone den Wake-Word listener nicht mehr.

STARTING Wake-Word listener...
STARTING Wake-Word listener...

Der DIY-Client schreibt jetzt:

ENGINE URL: http://server-IP:20726/sepia/assist/files/wake-words/porcupine/2.1_en/pv_porcupine.wasm
CREATED SEPIA Web Audio Picovoice module
inputSampleRate: 16000
inputSampleSize: 512
UPDATED Engine
CREATING Wake-Word-listener...
Error in module:porcupine-wake-word-worker - Failed to create module. - Name: Error - Message: 'pv_porcupine_init' failed with status INVALID_ARGUMENT
Error during setup of module: porcupine-wake-word-worker
ERROR: Failed to create module. - Name: Error - Message: 'pv_porcupine_init' failed with status INVALID_ARGUMENT
STARTING Wake-Word listener...
fquirin commented 1 year ago

Verflixt noch mal 😬. Betrifft das jetzt "nur" DIY und iPhone oder auch den Desktop Browser? Ich kann den Fehler leider nicht reproduzieren und die Fehlermeldung sagt ja auch nicht viel was einem hilft :-|. Meine beste Vermutung ist, dass irgendwas nicht richtig geladen wird und deshalb eine Funktion mit null aufgerufen wird, was dann zu INVALID_ARGUMENT führt. Aber das ist total ins Blaue geraten :-|

Dieser Pfad klappt ja schon mal: http://server-IP:20726/sepia/assist/files/wake-words/porcupine/2.1_en/pv_porcupine.wasm. Vielleicht ist das Problem beim Laden der Wake-Word Datei (EDIT: wobei die im Client selbst liegt, also unwahrscheinlich).

cap-blackbeard commented 1 year ago

Der Web-Client auf dem iPhone und der Web-Client auf dem Windows-PC laden wieder das WakeWord! Und ich kann alles auch wieder von extern erreichen. Scheinbar hat mein eingebundener alter SEPIA-Ordner im docker-container ordentlich Unruhe verursacht.

Aber der DIY-Client mag immer noch nicht die WakeWord v2.1. "Hey Sepia" v1.9 läuft sofort. "Hey Sepia" v2.1 erzeugt denselben Fehler wie "JARVIS" v2.1.

By the way: Das Problem mit dem Chromium-Browser besteht immer noch? Ich habe ja als OS Bullseye installiert. Nachdem ich jetzt Dein downgrade-script durchgeführt habe, funktioniert zumindest die stt-Erkennung wieder.

fquirin commented 1 year ago

Der Web-Client auf dem iPhone und der Web-Client auf dem Windows-PC laden wieder das WakeWord! Und ich kann alles auch wieder von extern erreichen

Nice :-)

Aber der DIY-Client mag immer noch nicht die WakeWord v2.1.

😢, also die gleichen, die aber auf dem iPhone funktionieren ja?

Nachdem ich jetzt Dein downgrade-script durchgeführt habe, funktioniert zumindest die stt-Erkennung wieder

Das, was die ältere Version von Chrome installiert? Ja, irgendwie hat die Raspberry Pi Foundation leider die Google APIs komplett entfernt in neueren Versionen, so dass der SEPIA offline STT-Server zwingend nötig ist.

cap-blackbeard commented 1 year ago

die aber auf dem iPhone funktionieren ja?

Ja. Das ist ja das frustrierende dabei! Der PC und das iPhone können beide die v2.1 laden. Nur der DIY-Client nicht.

fquirin commented 1 year ago

Das ist schon sehr merkwürdig, denn der Code ist ja genau der gleiche :-/. Das ist jetzt alles v0.25.0 richtig?

cap-blackbeard commented 1 year ago

Das ist jetzt alles v0.25.0 richtig?

richtig. Ich installiere den DIY-Client nochmal komplett neu. Welche OS-version schlägst Du vor bzw. hast Du am laufen?

fquirin commented 1 year ago

Ich habe sowohl Bullseye als auch Buster laufen, die Empfehlung in den DIY Client Docs ist noch "32Bit Buster ('Legacy')", weil es häufiger getestet wurde.

Ich frage mich gerade ob das Problem eventuell der API Key ist. Wenn man den zu oft benutzt sperrt Picovoice neue Geräte für glaube ich 30 Tage. Ich weiß aber nicht mehr was dann für ein Fehler kommt, eigentlich würde ich dann "Invalid Key" erwarten. Da die eine "Device ID" im Browser Cache speichern ist leider jeder Cache-Clear = 1 neues Device. Bei 3 verschiedenen Devices wird gesperrt.

Guck mal in der Picovoice Console, was da über deinen Key steht.

cap-blackbeard commented 1 year ago

Guck mal in der Picovoice Console, was da über deinen Key steht.

Monthly Active Users (1 of 3)

fquirin commented 1 year ago

Monthly Active Users (1 of 3)

Also auch nicht die Antwort :-/

Ich installiere den DIY-Client nochmal komplett neu.

Mehr fällt mir jetzt auch gerade nicht ein :-(

cap-blackbeard commented 1 year ago

Komplett andere Hardware (aber wieder n Raspi 3b), komplett neu installiert und der wieder selbe Fehler. Spracherkennung klappt, Sprachausgabe klappt. Und jetzt?

cap-blackbeard commented 1 year ago

Kann der Fehler mit der Hardware zusammenhängen? Bisher benutze ich den RPI 3b. Ich denke, ich installiere mal den Client auf meinem 4er. Mal gucken, was dann passiert.

fquirin commented 1 year ago

Ich habe den Client jetzt schon länger nicht mehr auf dem RPi3 ausprobiert, was mich allerdings wundert ist, dass der Fehler nur bei dem 2.1er WW auftritt. Von den Resourcen müsste das 1.9er eigentlich am anspruchsvollsten sein (da wurde von Picovoice versehentlich zu viel Memory reserviert).

Ich frage mich, ob das irgendwie mit der Authentifizierung der 2.1 Lib zu tun haben kann. Die muss sich einmal mit dem Picovoice Server verbinden, damit die im Rahmen des free-Tiers aktiviert werden kann.

cap-blackbeard commented 1 year ago

Und wie schaffe ich diese Verbindung? Hört sich plausibel an.

Am 17.11.2022 um 12:14 schrieb Florian Quirin @.***>:

 Ich habe den Client jetzt schon länger nicht mehr auf dem RPi3 ausprobiert, was mich allerdings wundert ist, dass der Fehler nur bei dem 2.1er WW auftritt. Von den Resourcen müsste das 1.9er eigentlich am anspruchsvollsten sein (da wurde von Picovoice versehentlich zu viel Memory reserviert).

Ich frage mich, ob das irgendwie mit der Authentifizierung der 2.1 Lib zu tun haben kann. Die muss sich einmal mit dem Picovoice Server verbinden, damit die im Rahmen des free-Tiers aktiviert werden kann.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you modified the open/close state.

fquirin commented 1 year ago

Das macht die Porcupine Lib automatisch (und geheim, was mich eigentlich nervt), ich weiß aber nicht wie die reagiert, wenn sie keine Internetverbindung hat oder keine Verbindung zum Picovoice Server herstellen kann. Gibt es vielleicht eine Firewall bei dir, die die Verbindung ablehnen könnte?