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

STT-Server einrichten #35

Closed DanielL12345 closed 4 years ago

DanielL12345 commented 4 years ago

Vorab vielen Dank für deine großartige Arbeit!

Mein Ziel ist es eine offline Sprachsteuerung meiner Smart Home Geräte zu ermöglichen.

Ich habe SEPIA auf einem RPI 4 installiert und mit openhab verbunden, was auf dem selben Gerät läuft. Es läuft bei mir bis zu dem Punk, dass ich meine Smart Home Geräte über den Browser meines PCs und über die App per Sprache steuern kann.

Um das Mikrofon im Browser verwenden zu können habe ich versucht einen SSL nach der Anleitung Securing your server (professionally) einzurichten, was jedoch nicht funktioniert hat. Es kamen keine Fehlermeldungen beim Einrichten, aber der Server ist unter https://[my-duck-dns-domain]:20726/sepia/assist/app/index.html (an meine Domain angepasst) nicht erreichbar. (Ist das für das Einrichten eines STT-Server notwendig?) Deshalb habe ich vorerst die von dir genannte einfache Lösung Set up web browser to treat your local IP as secure origin verwendet.

Der nächste Schritt wäre den STT-Server zu erstellen, nach folgender Anleitung, richtig? Hier bin ich nach der Custom Installation vorgegangen, jedoch scheitert es hier bereits an dem zweiten Befehl echo "deb http://goofy... da die Datei /etc/apt/sources.list.d/zamia-ai.list nicht vorhanden ist. image

Habe ich hier bereits einen Schritt übersprungen, oder ist es notwendig die SSL bereits eingerichtet zu haben? Muss ich hierfür evtl. bereits vorab Dateien von Zamia Speech herunterladen?

Vielen Dank im Voraus!

sepia-assistant commented 4 years ago

Hi Daniel,

Um das Mikrofon im Browser verwenden zu können habe ich versucht einen SSL nach der Anleitung Securing your server (professionally) einzurichten, was jedoch nicht funktioniert hat [...] der Server ist [...] nicht erreichbar.

Kriegst du denn unter https://[my-duck-dns-domain]:20726 generell eine Seite angezeigt? Eventuell blockt dein Router den Zugriff?

Ist das für das Einrichten eines STT-Server notwendig?

Nicht zwangsläufig. Es geht auch alles über self-signed SSL oder wenn die Clients auf localhost laufen.

Der nächste Schritt wäre den STT-Server zu erstellen, nach folgender Anleitung, richtig?

Die Anleitung ist etwas kurz und speziell der Debian Teil wurde länger nicht upgedated aber ja ;-)

bereits an dem zweiten Befehl echo "deb http://goofy... da die Datei /etc/apt/sources.list.d/zamia-ai.list nicht vorhanden ist.

Ich fürchte die Debian packages sind nicht mehr vorhanden und wurden vom Zamia Projekt entfernt. Du müsstest so lange auf die Variante mit Docker ausweichen. Ich werde mir das nach dem SEPIA v2.5.0 Release mal genauer angucken!

DanielL12345 commented 4 years ago

Hallo Florian, danke für die schnelle Antwort!

Es hat etwas gedauert bis ich mich wieder damit beschäftigen konnte, aber ich habe es jetzt über Docker ausprobiert und leider hat auch das nicht funktioniert.

Die Installation von Docker und der Download des STT-Servers war erfolgreich, nur bei Starten des STT-Servers gibt es Probleme. Hier die Ausgabe des Terminals:

Docker_Problem

Wie du siehst wird beim Ausführen von _docker run --rm --name=sepiastt -d -p 9000:8080 sepia/stt-server:beta2.1 nur eine Reihe von Zahlen und Buchstaben ausgegeben. Standest du evtl. schon mal vor dem gleichen Problem, oder weist was ich falsch gemacht habe?

Des weiteren habe ich noch 2 kleinere Probleme:

  1. Das Wake Word "Hey SEPIA" wird automatisch nach einem Neustart des SEPIA-Servers (auch wenn ich mich in SEPIA aus und wieder einlogge) ausgeschaltet, gibt es hier eine Möglichkeit dies dauerhaft zu aktivieren?
  2. In SEPIA kann ich unter Allgemein -> Voice auf dem RPI keine Sprache auswählen und erhalte somit keine gesprochene Antwort von SEPIA, nur geschrieben. Auf dem PC funktioniert das einwandfrei wenn ich über [IP des RPI]:20721 auf den SEPIA Server zugreife. Gibt es hierfür eine Lösungsmöglichkeit?

Erneut vielen Dank für deine Hilfe!

royrogermcfreely commented 4 years ago

Hallo Leute,

super Projekt. Lauft seit ein paar Tagen bei mir.

ich habe den STT Server im Docker laufen. Wie kann ich das englische ASR Modell ändern? Habe das deutsche Modell heruntergeladen aber mit änderung der app.conf funktioniert es leider nicht.

Vielen Dank für die Hilfe

fquirin commented 4 years ago

Die Installation von Docker und der Download des STT-Servers war erfolgreich, nur bei Starten des STT-Servers gibt es Probleme. [...] Standest du evtl. schon mal vor dem gleichen Problem, oder weist was ich falsch gemacht habe?

Das ist ein Raspberry Pi richtig? Leider funktioniert der Docker Container noch nicht auf ARM Systemen, nur auf x86 (Desktop CPUs etc.) :-( Wo der Server läuft im lokalen Netzwerk ist im Grunde egal, so lange der RPi eine Verbindung dahin aufbauen kann. Vielleicht hast du ja einen anderen Rechner den du nutzen kannst für eine Weile.

  1. Das Wake Word "Hey SEPIA" wird automatisch nach einem Neustart des SEPIA-Servers (auch wenn ich mich in SEPIA aus und wieder einlogge) ausgeschaltet, gibt es hier eine Möglichkeit dies dauerhaft zu aktivieren?

Wenn du in den Settings der App guckst bei "Hey SEPIA" da gibt es den Eintrag "Load engine on start" bzw in der settings.js "autoloadWakeWord": false. Damit sollte es automatisch laden.

  1. In SEPIA kann ich unter Allgemein -> Voice auf dem RPI keine Sprache auswählen und erhalte somit keine gesprochene Antwort von SEPIA, nur geschrieben. Auf dem PC funktioniert das einwandfrei wenn ich über [IP des RPI]:20721 auf den SEPIA Server zugreife. Gibt es hierfür eine Lösungsmöglichkeit?

Das liegt daran, dass der Client im PC auf die Stimmen des OS zugreifen kann, die es leider im RPi nicht gibt :-/. Der SEPIA Server hat aber einen TTS Endpoint, man muss lediglich über "bash setup.sh" im Server Ordner die TTS Stimmen nachinstallieren. Im Client kann man dann bei "Voice engine" auf custom umstellen. Die (kurz vor dem Release stehende) v2.5.0 wird dafür auch noch weitere Stimmen anbieten :-)

fquirin commented 4 years ago

ich habe den STT Server im Docker laufen. Wie kann ich das englische ASR Modell ändern? Habe das deutsche Modell heruntergeladen aber mit änderung der app.conf funktioniert es leider nicht.

Hi. Der STT Server kann über den SEPIA Control HUB konfiguriert werden. Auf der Seite "Speech Recognition" gibt es das Feld 'Model' und dort kannst du den Pfad zum deutschen Modell anpassen.

royrogermcfreely commented 4 years ago

ich habe den STT Server im Docker laufen. Wie kann ich das englische ASR Modell ändern? Habe das deutsche Modell heruntergeladen aber mit änderung der app.conf funktioniert es leider nicht.

Hi. Der STT Server kann über den SEPIA Control HUB konfiguriert werden. Auf der Seite "Speech Recognition" gibt es das Feld 'Model' und dort kannst du den Pfad zum deutschen Modell anpassen.

Nein SEPIA und STT laufen auf einer Ubuntu VM x86.

Ich habe den STT Server mit dem Befehl aus dem Tutorial installiert: docker run --rm --name=sepia_stt -d -p 9000:8080 -v /home/[my user]/sepia-stt-share:/apps/share sepia/stt-server:beta2.1

Dann habe ich im Ordner /sepua.stt-share/kaldi_models/ das deutsche modell heruntergeladen.

Im Control HUB zeigt er mir den derzeitigen Pfad mit /opt/kaldi/model/kaldi-generic-en-tdnn_f für das ASR-Modell an. Wenn ich diesen auf "/sepia-stt-share/kaldi_models/kaldi-generic-de-tdnn_f-r20190328" ändere kommt nur die Meldung das der Pfad nicht richtig ist.

Danke für die Unterstützung. LG

Edit: [my user] im Pfad habe ich natürlich angepasst ;)

DanielL12345 commented 4 years ago

Vielen Dank, das hat mir sehr weitergeholfen!

Leider funktioniert der Docker Container noch nicht auf ARM Systemen, nur auf x86 (Desktop CPUs etc.) :-(

Leider kann ich SEPIA dann nicht für mein Projekt verwenden, da es notwendig ist es auf einem RPI laufen zu lassen mit offline STT-Server.

Da hier noch offene Fragen sind lasse ich die Issue vorerst auf offen.

fquirin commented 4 years ago

Dann habe ich im Ordner /sepua.stt-share/kaldi_models/ das deutsche modell heruntergeladen. Im Control HUB zeigt er mir den derzeitigen Pfad mit /opt/kaldi/model/kaldi-generic-en-tdnn_f für das ASR-Modell an. Wenn ich diesen auf "/sepia-stt-share/kaldi_models/kaldi-generic-de-tdnn_f-r20190328" ändere kommt nur die Meldung das der Pfad nicht richtig ist.

Versuch mal /apps/share/kaldi_models/kaldi-generic-de-tdnn_f-r20190328. Das Docker Kommando verknüpft via -v /home/[my user]/sepia-stt-share:/apps/share den externen Pfad /home/[my user]/sepia-stt-share mit dem internen Pfad /apps/share und die Pfade im HUB sind immer relativ zum internen Docker Filesystem. Etwas verwirrend und bisher nicht gut dokumentiert ... ich weiß :see_no_evil:

Leider kann ich SEPIA dann nicht für mein Projekt verwenden, da es notwendig ist es auf einem RPI laufen zu lassen mit offline STT-Server.

Da hier noch offene Fragen sind lasse ich die Issue vorerst auf offen.

Kein Problem. Im Grunde laufen alle packages vom STT Server auch auf dem RPi ARM System, es fehlen nur leider die kompilierten Versionen zur Zeit. SEPIA v2.5.0 ist in der finalen Test-Phase, sobald der Release draußen ist versuche ich mal ein Installationsskript für den RPi4 zu machen :-)

DanielL12345 commented 4 years ago

Kein Problem. Im Grunde laufen alle packages vom STT Server auch auf dem RPi ARM System, es fehlen nur leider die kompilierten Versionen zur Zeit. SEPIA v2.5.0 ist in der finalen Test-Phase, sobald der Release draußen ist versuche ich mal ein Installationsskript für den RPi4 zu machen :-)

Vielen Dank. dann werde ich es mit SEPIA v2.5.0 nocheinmal testen.

Damit schließe ich den Thread.

royrogermcfreely commented 4 years ago

Dann habe ich im Ordner /sepua.stt-share/kaldi_models/ das deutsche modell heruntergeladen. Im Control HUB zeigt er mir den derzeitigen Pfad mit /opt/kaldi/model/kaldi-generic-en-tdnn_f für das ASR-Modell an. Wenn ich diesen auf "/sepia-stt-share/kaldi_models/kaldi-generic-de-tdnn_f-r20190328" ändere kommt nur die Meldung das der Pfad nicht richtig ist.

Versuch mal /apps/share/kaldi_models/kaldi-generic-de-tdnn_f-r20190328. Das Docker Kommando verknüpft via -v /home/[my user]/sepia-stt-share:/apps/share den externen Pfad /home/[my user]/sepia-stt-share mit dem internen Pfad /apps/share und die Pfade im HUB sind immer relativ zum internen Docker Filesystem. Etwas verwirrend und bisher nicht gut dokumentiert ... ich weiß see_no_evil

Leider kann ich SEPIA dann nicht für mein Projekt verwenden, da es notwendig ist es auf einem RPI laufen zu lassen mit offline STT-Server. Da hier noch offene Fragen sind lasse ich die Issue vorerst auf offen.

Kein Problem. Im Grunde laufen alle packages vom STT Server auch auf dem RPi ARM System, es fehlen nur leider die kompilierten Versionen zur Zeit. SEPIA v2.5.0 ist in der finalen Test-Phase, sobald der Release draußen ist versuche ich mal ein Installationsskript für den RPi4 zu machen :-)

Danke hat funktioniert :)