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

App stürzt ab bei Voice-Befehl #31

Closed Praevision closed 4 years ago

Praevision commented 4 years ago

Describe the bug Wenn ich den Voice-Button klicke oder das wake word "Hey SEPIA" sage, stürzt die App ab. Befehle, die als Text eingebe funktionieren normal. App-Berechtigungen sind alle zugelassen

SEPIA client and server versions

To Reproduce Steps to reproduce the behavior:

  1. Auf Voice-Button klicken oder wake word sagen

Expected behavior Befehl wird aufgenommen und ausgeführt

fquirin commented 4 years ago

Oh ha, das sollte natürlich nicht passieren O_o. Was ich bestätigen kann ist, dass es auf einem S10e mit Android 9 läuft und mit 10 zumindest ohne "Hey SEPIA" (mit hatte ich dort noch nicht getestet). Das dürfte im Wesentlichen identisch sein mit dem S10.

Praevision commented 4 years ago

Sowohl als auch: Also entweder ich klicke den Button oder ich rufe "Hey Sepia", dann stürzt sie ab. Hab auf beiden Handys die App via PlayStore geladen. Kann das sein, weil ich SSL auf meinem Apache noch nicht zum laufen gebracht habe?

fquirin commented 4 years ago

Also entweder ich klicke den Button oder ich rufe "Hey Sepia"

Und wenn "Hey SEPIA" in den Settings deaktiviert ist?

Kann das sein, weil ich SSL auf meinem Apache noch nicht zum laufen gebracht habe?

Das dürfte mit der Spracherkennung erstmal nichts zu tun haben, es sei denn du nutzt vielleicht deinen eigenen SEPIA STT Server für die Spracherkennung? Dann müsste er das aber innerhalb der App anzeigen. Springt die App komplett raus auf den Homescreen und sagt garnix oder zeigt sie noch einen Fehler an?

Praevision commented 4 years ago

Auch wenn "Hey Sepia" deaktiviert ist. Den Grund habe ich dafür jetzt gefunden: Ich habe noch gar keinen ASR-Server installiert. Gemerkt habe ich es beim Zugriff über den PC, da kommt nämlich die Fehlermeldung, dass kein ASR-Server angegeben wurde. Auf dem Smartphone stürzt die App nur mit dem bekannten Android-Fehlerpopup ("S.E.P.I.A angehalten" --> App schließen / Feedback geben) ab. Eine Fehlermeldung wie am PC erscheint in der SEPIA-App nicht. Ich mach mich mal an die Installation des ASR-Servers und geb dann nochmal Bescheid, obs das war :D

SSL habe ich jetzt beim Apache auch zum Laufen bekommen, evtl. fügst du die .conf noch irgendwo zur Doku dazu - es kursiert ja schon irgendwo eine .conf für Apache2, die war aber ohne SSL?

Define LOCATION sepia
Define HOST localhost
Listen 20726

<VirtualHost *:20726>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/sepia/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ServerName DOMAIN

ProxyPass /${LOCATION}/assist/ http://${HOST}:20721/
ProxyPass /${LOCATION}/teach/ http://${HOST}:20722/

<Location /${LOCATION}/chat/>
  ProxyPass http://${HOST}:20723/

  RewriteEngine On
  RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
  RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
  RewriteRule /messages/(.*) ws://${HOST}:20723/messages/$1 [P]
</Location>
# SSL
        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateFile /etc/letsencrypt/live/DOMAIN/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem
</VirtualHost>
fquirin commented 4 years ago

Den Grund habe ich dafür jetzt gefunden: Ich habe noch gar keinen ASR-Server installiert. Gemerkt habe ich es beim Zugriff über den PC, da kommt nämlich die Fehlermeldung, dass kein ASR-Server angegeben wurde.

Ach, hast du direkt auf 'custom' ASR engine umgestellt? ^^. Selbst das sollte aber die App nicht crashen :-/. Hab das gerade bei mir noch mal getestet. Hattest du schon einen Server angegeben?

SSL habe ich jetzt beim Apache auch zum Laufen bekommen, evtl. fügst du die .conf noch irgendwo zur Doku dazu - es kursiert ja schon irgendwo eine .conf für Apache2, die war aber ohne SSL?

Cool, danke. Werde ich ergänzen :slightly_smiling_face:

Praevision commented 4 years ago

Ach, hast du direkt auf 'custom' ASR engine umgestellt? ^^. Selbst das sollte aber die App nicht crashen :-/. Hab das gerade bei mir noch mal getestet. Hattest du schon einen Server angegeben?

Ne ich hab da eigentlich gar nichts eingestellt, weil ich bis dato gar nicht wusste was das sein soll 🙂 In den Einstellungen steht bei ASR engine "Native". Könnte das daran liegen, dass ich von Google die meisten Apps auf den Handys entfernt habe?

Den Test mit dem ASR-Server muss ich tatsächlich noch etwas aufschieben, weil ich den von dir vorgeschlagenen ASR-Server nicht zum Laufen bekomme, weil ich kein x86/x64-Server, sondern einen ARM-Server (Jetson Nano) habe. Da steht mir nach meiner Recherche höchstens DeepSpeech zur Verfügung. Um das anzubinden, werde ich vermutlich noch länger brauchen.

Edit: Die Deaktivierung/Entfernung der Google-App war tatsächlich für den Crash verantwortlich. Wenn die Google-App läuft, funktioniert auch SEPIA wie es soll. Wenn ich irgendetwas anders als mqtt als Trigger verwende, sagt er mir immer, dass SEPIA keine Verbindung zu einem Smart Home hab. Getestet habe ich "Smart Home", "Kevin", "Steuerung", "Haussteuerung". Den RegScoreBoost habe ich auf 99 gesetzt.

fquirin commented 4 years ago

Edit: Die Deaktivierung/Entfernung der Google-App war tatsächlich für den Crash verantwortlich. Wenn die Google-App läuft, funktioniert auch SEPIA wie es soll.

Ach, das ist ärgerlich, aber typisch Android irgendwie :-( . Wahrscheinlich hat das irgendwas mit den Google Play Services zu tun. Ich habe in meinem Android System bei der Spracherkennung noch die Möglichkeit "Einfache Google-Erkennung" (Einstellungen -> Apps -> Standard Apps -> Geräteassistenz-App -> Spracheingabe). Das nutze ich als Standard und es funktioniert auch, wenn das Handy im Flugzeugmodus ist. Vielleicht ein Versuch wert, aber wie der Name schon sagt benötigt es auch irgendwas von Google.

Den Test mit dem ASR-Server muss ich tatsächlich noch etwas aufschieben, weil ich den von dir vorgeschlagenen ASR-Server nicht zum Laufen bekomme, weil ich kein x86/x64-Server, sondern einen ARM-Server (Jetson Nano) habe.

Momentan leider ein Manko, ja. Theoretisch funktioniert es auch auf einem RPi4 und der Jetson Nano scheint ja ähnlich viel Saft und RAM zu haben. Ich kam aber leider bisher noch nicht dazu die Installation entsprechend anzupassen und zu testen. Welches Linux läuft auf dem Nano?

Wenn ich irgendetwas anders als mqtt als Trigger verwende, sagt er mir immer, dass SEPIA keine Verbindung zu einem Smart Home hat.

Ja, das kommt daher, dass vermutlich kein "Smart Home HUB" eingerichtet wurde. SEPIA funktioniert z.B. zusammen mit FHEM oder openHAB. Was also passiert ist, SEPIA erkennt deinen Befehl als Smart Home Kommando, sucht dann nach einem HUB, um die Aktion auszuführen, findet aber keinen. Ich arbeite gerade an einem generischen HUB, bei dem man virtuelle Geräte in SEPIA selber konfigurieren kann und dann auch MQTT direkt als Option hat (neben openHAB, FHEM und HTTP, individuell für jedes Gerät).