Open tlrider99 opened 4 years ago
Hi Dirk,
freut mich zu hören :-)
Die Wakeword-Erkennung ist relativ schlecht, obwohl die restliche Sprache gut erkannt wird.
Relative schlecht heißt es funktioniert fast gar nicht? Der ReSpeaker ist ja ein solides Mikrofon und Seeedstudio benutzt es sogar erfolgreich mit der selben Wake-Word engine (Porcupine) in einigen Videos. Gute Ergebnisse sollten also möglich sein. Du könntest test weise mal ein anderes Wake-Word versuchen, vielleicht hast du da bessere Resultate. Hier gibt es eine kleine Anleitung wie man das Wake-Word ändern kann: Wake-Word Info. "grasshopper" mit Engine v1.6 zum Beispiel sollte sehr gut funktionieren. Wenn selbst das nicht gut klappt müssten wir mal die Mikrofon Konfiguration testen, vielleicht ist die Lautstärke zu niedrig. Die Spracherkennung vergibt das eher als die Wake-Word engine.
Kann ich die TTS-Qualität auf dem Client verbessern?
Das Beste was man im DIY Client zur Zeit rausholen kann wäre MaryTTS. Das frisst allerdings auch die meisten Resourcen. Läuft dein SEPIA Server auf einem RPi4 oder stärker? Falls ja kannst du den MaryTTS Server installieren über ~/SEPIA/sepia-assist-server/Xtensions/TTS/marytts/download_linux.sh
. Beim nächsten Neustart des Servers lädt MaryTTS dann automatisch mit. Falls das System zu schwach ist kann man den TTS Server auch auf einem anderen Rechner laufen lassen. Da könnte ich auch noch mal erklären wie das geht.
Die TTS Stimme selber wird im DIY Client dann über die "settings.js" eingestellt: ~/clexi/www/sepia/settings.js
. Zum Beispiel "de-voice": "de-DE marytts m"
oder "de-voice": "de-DE marytts r"
(ich hoffe ich habe das jetzt richtig im Kopf ^^).
Hasst du ne Idee wie man die LEDs am Respeaker aktivieren kann?
Das habe ich auf der To-Do Liste. Der CLEXI Server sendet Events für "listening"/"speaking"/"idle"/etc. , die man abfangen kann und dann in Befehle umwandeln für die LEDs. Hast du bisher schon ein Programm genutzt für die LED Steuerung?
Grüße, Florian
Danke für deine schnelle Antwort. Ich werde deine Tips mal ausprobieren. Aktuell funktioniert das Wake-Word zu 95% nicht, keine Reaktion. Wenn ich es über den Shortcut "Trigger Mic" aktiviere, klappt die Spracherkennung zu 100%. Für die LED's gab es bei Snips einen Skill (https://github.com/snipsco/snips-skill-respeaker), der funktionierte für viele Respeaker.
Grüße Dirk
95% ist definitiv nicht OK :see_no_evil: . Manche User hatten Probleme mit der Aussprache von "Hey SEPIA", deswegen der Vorschlag mal auf "Grasshopper" zu wechseln. Ich habe aber das Gefühl es liegt eher in den Settings des Mikrofons :thinking:
Für die LED's gab es bei Snips einen Skill (https://github.com/snipsco/snips-skill-respeaker), der funktionierte für viele Respeaker.
C Code ... iiii :stuck_out_tongue_closed_eyes: ... ich gucke es mir mal an ;-) Ich meine da gabs auch was für Node.js ^^.
Die Mikrofone sind alle ca bei 80%, das sollte reichen um aus 50 cm Entfernung alles aufzuzeichnen. Oder? Ich trau mich irgendwie nich an das Tauschen des Wake-Words heran.
Habe jetzt dein Beispiel ausprobiert mit "hey sepia" und "yellow". Yellow klappt fast zu 100%. Lag wohl doch an meiner Aussprache. Werde jetzt mal einen separaten MaryTTS aufsetzen und schauen ob die Wiedergabe dann noch schöner wird. Grüße Dirk
80% dürfte wirklich ok sein, zumal du ja schon festgestellt hast, dass es mit Yellow sehr gut klappt. Ich frage mich trotzdem manchmal wie diese ganzen Kanäle vom ReSpeaker eigentlich benutzt werden. Ich habe etwas die Befürchtung, dass der am Ende nur einen der 6 Kanäle nutzt und man eigentlich irgendwie eine Kanalbündelung selber einrichten müsste :thinking: .
Ich trau mich irgendwie nich an das Tauschen des Wake-Words heran.
Sah es zu kompliziert aus? Es ist wirklich ganz einfach eigentlich :sweat_smile: , zumindest wenn man diese Multi-Keyword Sachen erstmal ignoriert ;-)
Ich habe jetzt 3 Wake-Words installiert, Version 1.5. Damit klappt es am besten. Ich habe auch das Gefühl, dass es besser klappt wenn man die Uint8Array's direkt eingibt. Kann das sein? Ich habe jetzt MaryTTS auf einem separatem Raspi3+ laufen, der Server startet auch, aber ich kann die Webseite nicht aufrufen. Was muß ich denn in Sepia dann umstellen?
Hallo,
da bin ich ja schon in der richtigen Diskussionsrunde. Erstmal muss ich sagen das die Wake-Word Erkennung seit Version 2.5.0 um Welten besser ist als in der 2.4.1.
@tlrider99 ich hatte hier mit der älteren Version die gleichen Probleme wie du. Die Wake-Word Erkennung über die Android App funktioniert jetzt richtig gut. Vorher musste ich meine Geräte auch anbrüllen und Sepia mit einer starken Betonung auf PI - A aussprechen damit das Mic triggert. Seit Version 2.5.0 ist die Kleine nicht mehr so zickig. Ich selbst nutze einen Respeaker Core V2 und habe damit ähnliche Probleme wie du. Ich werde das mit dem ändern des Wake-Words auch mal testen.
@sepia-assistant, ist egal welches Wake-Word ich erstelle oder gibt es vordefinierte? Die Sache mit dem ansteuern der LED´s wäre dann echt noch das Sahnehäubchen für den DIY Client. Dann kann ich endlich meine dubble Helix bauen.
Hi Florian, der MaryTTS-Server läuft. Kannst du vielleicht kurz beschreiben wie ich ihn an Sepia anbinden kann? @Smarthome-Creator Vielen Dank für deinen Bericht. Da fühlt man sich gleich nicht mehr so allein :-). Es gibt verschiedene vordefinierte Wake-Words.
Gruß
Hallo zusammen :-)
Ich habe jetzt 3 Wake-Words installiert, Version 1.5. Damit klappt es am besten. Ich habe auch das Gefühl, dass es besser klappt wenn man die Uint8Array's direkt eingibt. Kann das sein?
Ob Uint8Array oder file macht keinen Unterschied. Aus der Datei wird auch nur das Array erzeugt ;-)
Ich habe jetzt MaryTTS auf einem separatem Raspi3+ laufen, der Server startet auch, aber ich kann die Webseite nicht aufrufen. Was muß ich denn in Sepia dann umstellen?
In den "Core Settings" (SEPIA Control HUB -> Persitent Settings) gibt es das Feld marytts_server
, dort kannst du die URL zum MaryTTS Server eingeben, z.B. http://192.168.0.10:59125
(IP anpassen). Danach bitte einmal einen kompletten SEPIA Server Neustart via Konsole machen (soft-restart über den HUB reicht leider nicht). Beim Start müsste er dann schon sagen "MaryTTS Server gefunden" (o.ä.)
ist egal welches Wake-Word ich erstelle oder gibt es vordefinierte?
Wie tlrider99 schon erwähnt hat gibt es vordefinierte. Hier kannst du dich z.B. durchklicken. Das WW ergibt sich dabei aus dem Dateinamen, bumblebee_wasm.ppn
ist z.B. "Bumblebee", das "_wasm.pnn" lässt man also einfach weg.
Ich habe alles was Picovoice frei zur Verfügung stellt gesammelt und nach unterstützter Version sortiert. Leider kann man zur Zeit keine eigenen erstellen ohne die Hilfe von Picovoice.
Wollte den Server gerade eintragen, aber bei mir gibt es nur diese Einträge zu TTS: Hast du noch ne Idee? Dankeschön!
Bei mir ist der Eintrag über smarthome_hub_host
.
Es kann sein, dass der Eintrag nicht existiert, weil die Settings aus v2.4.1 importiert wurden. Das heißt er nimmt intern den Standardwert. Du kannst ihn aber einfach hinzufügen mit dem "write to config" Button weiter unten. So würde der Standard aussehen:
Jetzt steht der Server drin und beim Neustart versucht Sepia auch den MaryTTS-Server zu erreichen bekommt aber keine Antwort. Hätte ich in meinem Leben doch bloß etwas vernünftiges gelernt ;-).
Ich glaube wir hatten das Problem schon mal. Wenn ich mich recht erinnere lag es daran, dass der MaryTTS Server in der Standardkonfiguration nur 'localhost' Verbindungen zulässt. Sekunde ... ... jo, ich war schlau genug es irgendwo zu notieren :sweat_smile: : MaryTTS Readme.
Bei dir konkret müsste das dann so gehen (hoffentlich ^^):
export MARYTTS_SERVER_OPTS="-Dsocket.addr=0.0.0.0 -Dsocket.port=59125"
bash ./marytts-server
Ich weiß jetzt gerade nicht ob vor das "export" auch ein "sudo" muss wenn du später mit sudo bash ...
den MaryTTS Server startest.
Ich hoffe das löst das Problem :crossed_fingers: :smiley: :crossed_fingers:
@tlrider99 ,
also wie gesagt, die Spracherkennung über die App ist nun wirklich gut. Ich habe hier Test von bis zu 4 Metern Entfernung vom Handy oder Tablet gemacht und ich konnte ohne Geschrei Sepia zum zuhören bringen. Was den reSpeaker angeht muss ich dir aber recht geben. Ich habe ihn heute auch nochmal getestet ohne etwas daran zu verändern und die Erkennung läuft mehr als schlecht. Was genau heißt denn jetzt nachdem du die Wake-Word Erkennung umgestellt hast das es jetzt gut läuft? BTW, kannst du kurz eine kleine Anleitung schreiben wie du Mary auf dem extra Pi installiert hast? Ich will mir für STT und TTS nun den 4er mit 8GB RAM holen und hoffe der reicht dann. Woher weißt du denn außerdem welche unit8Array Zahlendinger du da angeben musst? Ich sag´s wie´s ist... ab da ist´s chinesisch für mich. Ich würde deinem Beispiel gerne mal folgen wollen um zu testen ob mein reSpeaker dann auch besser auf mich hört.
@fquirin ,
die Wake Wörter habe ich gefunden und musste kurz in mich gehen... wer denkt sich denn solche Wörter aus? :-D Da werde ich wohl nie meinen eigenen an Sepia vergeben können. Aber kommt Zeit kommt Rat.
Guten Morgen Florian,
leider ändert sich nichts. Im Sepia-Log steht "MaryTTS server did not answer...." Muß in der Kommandozeile statt der 0.0.0.0 die IP-Adresse des MaryTTS-Servers stehen?
@Smarthome-Creator In Post 2 gibt es einen Link zu Wake-Word-Info. Dort findest du ein Beispiel. Zum installieren von MaryTTS habe ich lediglich das Skript vom Sepia-Server auf den neuen Raspi gepackt und ausgeführt, zuvor Java 8 installiert. Bei Java 11 gab es Fehler.
Grüße und einen guten Start in die Woche Dirk
Woher weißt du denn außerdem welche unit8Array Zahlendinger du da angeben musst?
Vergiss die Arrays (erstmal) ;-) Hier ist noch mal der link mit dem relevanten Teil: Switching the Wake-Word
leider ändert sich nichts. Im Sepia-Log steht "MaryTTS server did not answer...." Muß in der Kommandozeile statt der 0.0.0.0 die IP-Adresse des MaryTTS-Servers stehen?
0.0.0.0 müsste eigentlich "offen für alles" bedeuten. Kannst du den Server von einem anderen PC erreichen? Z.B. via http://192.168.10.109:59125/version
zuvor Java 8 installiert. Bei Java 11 gab es Fehler
Oh, interessant. War das auch openJDK11_JDK? Bei meinen Tests auf dem Pi4 lief das auch mit 11 :-|
Ich habe hier Test von bis zu 4 Metern Entfernung vom Handy oder Tablet gemacht und ich konnte ohne Geschrei Sepia zum zuhören bringen
Kurze Frage aus Interesse, was ist das für ein Tablet? :-)
http://192.168.10.109:59125/version nein leider nicht. Das hat mich auch schon gewundert. Ich kann den MaryTTS client nur lokal ausführen. Da hat die Sprachausgabe mich aber begeistert :-).
OpenJDK 11 war es installiert mit "sudo apt install default-jdk", vielleicht gibt es da ja Unterschiede.
Kannst du den Server auch ohne "sudo" starten? Falls nicht versuch mal "sudo export ...".
OpenJDK 11 war installiert mit "sudo apt install default-jdk", vielleicht gibt es da ja Unterschiede.
Ok, das muss ich dann mal testen. Raspian bzw Raspberry OS?
Das "sudo" zum Serverstart war es, jetzt ist der MAryTTS-Server von aussen erreichbar.
Die Fehler bei Java11 waren auch eher Warnings, du kannst die oben in einem Screenshot sehen. Vielen Dank für deine Hilfe!
:partying_face:
Die Fehler bei Java11 waren auch eher Warnings, du kannst die oben in einem Screenshot sehen.
Ach ja, jetzt sehe ichs, ich glaub die kann man ignorieren :see_no_evil:
Sepia kann MaryTTS trotzdem nicht erreichen. Muß ich denn eine Voice installieren oder gibt es per default eine?
:disappointed_relieved: Stimmen für Deutsch und Englisch sind alle drin, es ist also kein weiteres Setup nötig.
Kannst du in den SEPIA Settings noch mal gucken, ob der neue Server korrekt angezeigt wird. Du kannst übrigens auch die ~/SEPIA/sepia-assist-server/Xtensions/assist.custom.properties
per Hand bearbeiten. Wenn du eh auf dem Server bist geht das vielleicht schneller.
[EDIT] Mir fällt gerade was ein, Sekunde. Ich glaube das SEPIA Start-Skript hat den localhost von Mary-TTS hard-coded [EDIT2] Wobei ne, da prüft er nur ob er den Server selber starten muss. Die eigentliche Abfrage später ist korrekt.
Sieht eigentlich gut aus, finde ich:-) hier ein Auszug aus der custom.properties:
smarthome_hub_host=http://192.168.10.xxxx smarthome_hub_name=openhab
smarthome_hub_auth_type= smarthome_hub_auth_data= dirble_key= acapela_vaas_app= acapela_vaas_key= affilinet_pubID= affilinet_key= deutscheBahnOpenApi_key= marytts_server=http://192.168.10.109:59125
Ja, sieht gut aus :thinking:
Probier mal bitte diese modifizierte Assist-Server jar. Einfach in den Ordner ~/SEPIA/sepia-assist-server/
entpacken und den Server neu starten.
Dann sollte er im Log anzeigen welchen Server er versucht hat aufzurufen.
Mit der jar hat es sofort geklappt. Hast du noch etwas geändert? In welchem Format trage ich den die TTS-Stimme im DIY Client in die settings.js? backup_2020_06_22_090858.out.log
Ah komisch 😅, die einzige andere Änderung betraf nur einen Bug im openHAB Interface 🤓👽.
In die settings.js kommt der Name der Stimme genau so wie er im Client Dropdown Menü angezeigt wird. Falls du keinen zur Hand hast gerade kannst du auch im Control HUB auf der TTS Seite gucken. Aus dem Kopf würde ich sagen "de-voice":"de-DE marytts m". Statt "m" am Ende geht auch noch "f" und "r".
EDIT: Es lag am Marytts-Server der war down.
mhhh, so habe ich es jetzt drin stehen aber es kommt keine Stimme aus dem Lautsprecher.....
Broadcaster event: {"broadcast":{"client":"05_chrome_app_v0.22.0","deviceId":"05","sepia-speech":{"type":"tts_error","msg":"unknown"}}}
//Settings primarily for headless mode and setup (URL parameter: 'isHeadless=true') SepiaFW.settings = { headless: { device: { "host-name": "192.168.10.35", "deviceId": "05", "deviceLocalSiteData": { "location": "home", "type": "room", "name": "unassigned", "index": "" }, "en-voice": "", "de-voice": "de-DE marytts m", "wakeWordSensitivity": [0.5] },
},
Noch eine Frage, sorry. Wenn ich die SSH Verbindung zum MaryTTS-Server beende ist direkt auch der Server down. Da verstehe ich nicht warum...... Eigentlich müßte doch MaryTTS weiterlaufen, oder?
Hi, ich denke ich muss die Situation heute Abend mal versuchen zu reproduzieren. Die Settings sehen soweit ok aus.
Bezüglich SSH. Wenn der Prozess nicht im Hintergrund läuft (zB via nohup) bricht er ab wenn du die Verbindung trennst. Eventuell gab es da noch eine Eigenheit beim Mary TTS Sever. In dem run-sepia script nutze ich
bash marytts-server > /dev/null 2>&1 &
@fquirin , ich habe hier mein Nvidia Shield Tablet zum testen verwendet, muss aber auch sagen das ein iPad hier noch etwas besser ist. Ich weiß leider trotzdem nicht wie ich ohne copy & paste aus deiner Anleitung mehr als 1 Wake Word einstellen kann. :-(
@tlrider99 , ich habe es jetzt auch mal versucht am respeaker etwas mit den Wake Words zu spielen und kann mich dir anschließen mit den Words aus Version 1.5 funktioniert es etwas besser aber immer noch viel zu schlecht als das ich sagen könnte das wäre akzebtabel. Daher nochmal die Frage welche Wörter hast du denn eingestellt. Ich habe nach wie vor festgestellt das man schon sehr extrem auf die Aussprache achten muss bevor das Mic triggert. Und ich weigere mich irgendwie in meiner Wohnung "Alexa" durch den Raum zu brüllen. Und da frage ich mich doch schon wieder... wie werden denn diese Wörter recorded? Eine so extrem deutliche und klare Aussprache hat doch kein Mensch, wenn ich selbst schon bei Alexa eine sehr deutliche Betonung auf das X legen muss. Nächstes Problem ist das ich auch sehr na vor dem respeaker hocken muss damit ich überhaupt gehört werde, das kann natürlich nicht Sinn und Zweck eines Fernfeld Mikrofons sein.
Ich bin mir aber auch mittlerweile sicher dass das Problem hier nicht Sepia, sondern die respeaker selbst sind. Laut der Dokumentaion über den V2 nutzt das Ding eine Handvoll toller Mechanismen, die aber alle erst aktiviert und genutzt werden sobald Alexa oder Google darauf genutzt werden.
Ich werde das mal mit Google testen damit ich ausschließen kann das Sepia "schuld" ist.
@Smarthome-Creator hier der Inhalt meiner Datei: SepiaFW.wakeTriggers.porcupineVersion = "1.5"; SepiaFW.wakeTriggers.porcupineWakeWords = { 'alexa': new Uint8Array([ 0x64, 0x29, 0x02, 0xc1, 0x6f, 0x5b, 0xfa, 0x66, 0xc9, 0x17, 0x97, 0xe3, 0x7d, 0x45, 0x50, 0x7d, 0xf5, 0x5c, 0xfd, 0x17, 0x7e, 0xb7, 0xd2, 0x31, 0x6f, 0x46, 0x05, 0x51, 0x64, 0x6a, 0xfa, 0x35, 0x0b, 0x1e, 0x9a, 0xda, 0x43, 0x1c, 0x16, 0x93, 0x8a, 0x39, 0xcd, 0xf9, 0x2f, 0x88, 0x10, 0x29, 0xe0, 0x3c, 0x3b, 0x9a, 0xce, 0xbb, 0xc8, 0x8b, 0x6b, 0x6a, 0xef, 0x46, 0x21, 0x74, 0x1d, 0xa6, 0x2d, 0x27, 0x11, 0x1c, 0xec, 0xd5, 0x3a, 0xc5, 0x2c, 0x7a, 0x8a, 0xb5, 0xc9, 0xc1, 0x5c, 0x6c ]), 'francesca': new Uint8Array([ 0x1d, 0xaa, 0x4e, 0x09, 0xa1, 0x59, 0xed, 0xc5, 0x06, 0xc0, 0x88, 0x32, 0x4e, 0x76, 0x0a, 0xe5, 0x99, 0xca, 0x77, 0x83, 0x1c, 0xf0, 0xca, 0x18, 0xb7, 0xc8, 0x7e, 0x64, 0x6d, 0x23, 0x44, 0xfc, 0x12, 0xdd, 0xc1, 0x03, 0x21, 0x9c, 0x13, 0x6b, 0x8d, 0xf5, 0x9a, 0xfc, 0xb7, 0x0c, 0x07, 0xaa, 0xf8, 0x5a, 0x84, 0x62, 0x22, 0xba, 0xf4, 0xf6, 0x4a, 0x95, 0x68, 0xf6, 0xf9, 0x42, 0x5b, 0xa5, 0x0a, 0xbd, 0x4b, 0x82, 0xce, 0x9d, 0x71, 0x32, 0x9c, 0x96, 0x6b, 0xd8, 0x95, 0xff, 0x16, 0x6b, 0xfa, 0xfa, 0xd7, 0x6c, 0x9c, 0x20, 0x15, 0xcb, 0x17, 0x54, 0x7e, 0x13, 0xc9, 0x2b, 0x37, 0x72 ]), 'christina': new Uint8Array([ 0x3a, 0xcf, 0x5f, 0x5e, 0xf4, 0x96, 0x22, 0x62, 0x67, 0xc2, 0xbe, 0x20, 0xfe, 0x8d, 0x0f, 0x4e, 0x32, 0x55, 0x2f, 0xc8, 0x0d, 0x48, 0x84, 0xa5, 0x59, 0x26, 0xed, 0x2d, 0x86, 0xd6, 0x67, 0x47, 0x7a, 0xa1, 0x02, 0x14, 0x8f, 0xd9, 0x4f, 0xd1, 0x1f, 0x85, 0x99, 0xcd, 0x00, 0xaf, 0x0c, 0xf2, 0xbb, 0x4d, 0x6d, 0x03, 0x32, 0x96, 0x9c, 0x14, 0x47, 0xcc, 0x1f, 0xcb, 0x27, 0x60, 0xb8, 0xd4, 0xd2, 0x29, 0xea, 0x8a, 0xe4, 0xab, 0x84, 0xc7, 0x1f, 0x59, 0x5f, 0xfb, 0x96, 0xd2, 0xb5, 0xe5, 0x4e, 0x6a, 0x01, 0x61, 0xe2, 0x96, 0x6f, 0x3f, 0xb0, 0x07, 0x73, 0xd2 ]) };
Du kannst den Inhalt jedes wake-words per copy/paste einfügen, must nur aufpassen, dass du in den Versionen bleibst. So sieht Bumblebee aus: 0x0a, 0x08, 0xb8, 0x86, 0x43, 0x36, 0x86, 0x44, 0x95, 0x3f, 0x82, 0x61, 0xe1, 0x06, 0xea, 0x3e, 0xf8, 0xca, 0x17, 0xe0, 0x9e, 0x34, 0xa7, 0x6d, 0x6f, 0x7f, 0x31, 0x1d, 0x70, 0x7a, 0x59, 0x43, 0xe0, 0xe7, 0xa0, 0xce, 0x31, 0xe5, 0x13, 0x3b, 0x89, 0xd2, 0x38, 0xc4, 0x96, 0xd0, 0x52, 0xde, 0x6b, 0xe1, 0x44, 0x52, 0x81, 0x9e, 0x66, 0xd9, 0xf5, 0xe1, 0xd6, 0xef, 0xa0, 0xd4, 0xf5, 0x17, 0xbe, 0xca, 0x02, 0x87, 0xa1, 0xc8, 0x89, 0x4c, 0x30, 0x3c, 0x6e, 0x34, 0x63, 0x6d, 0x3b, 0x13, 0x1c, 0x88, 0x9c, 0x7c, 0xc8, 0xf2, 0xc5, 0x1a, 0xaf, 0xec, 0x95, 0x95
Ich hoffe jetzt ist es klarer :-).
Grüße Dirk
@tlrider99 , in die Wake Word Dateien reinzugucken muss man auch erstmal drauf kommen. :-D
Danke
mhhh, so habe ich es jetzt drin stehen aber es kommt keine Stimme aus dem Lautsprecher.....
@tlrider99
Also ich habe es jetzt bei mir folgendermaßen getestet:
marytts_server=http://192.168.0.10:59125
"speech-voice-engine": "sepia"
"de-voice": "de-DE marytts r"
Das hat funktioniert. Hast du generell Audio Output im Client, z.B. beim Radio? Vielleicht auch mal bei "en-voice" was eintragen nur um sicher zu gehen, z.B. "en-GB marytts f".
Gute Nacht :-) Florian
Hallo Florian, sorry war geschäftlich unterwegs. Hatte am Montag noch geschrieben, dass der MaryTTS-Server down war und deshalb keine Verbindung zustande kam. Aktuell habe ich nur noch das Problem, das die Sprachausgabe ca. 2sek länger brauch und sobald ich die SSH Verbindung schließe, der MaryTTS sofort weg ist, auch wenn ich das ganze als Dienst laufen lasse bash marytts-server > /dev/null 2>&1 &. Ich glaube das macht die Zeile aus deinem Script. Oder? Kann ich eigentlich Parameter der Stimmen auch mit übergeben, so wie im MaryTTS-Client? Der Mood-Level der Stimme ändert sich nicht wenn ich ihn im Control-Hub ändere.
Grüße und danke für deine Arbeit Dirk
Hatte am Montag noch geschrieben, dass der MaryTTS-Server down war und deshalb keine Verbindung zustande kam.
Ach, das bezog sich schon auf den Audio Output? Ich dachte das gehörte noch zur generellen Erreichbarkeit. Also auf der Seite sind dann alle Problemchen gelöst, das ist schon mal gut :-)
Aktuell habe ich nur noch das Problem, das die Sprachausgabe ca. 2sek länger brauch und sobald ich die SSH Verbindung schließe, der MaryTTS sofort weg ist, auch wenn ich das ganze als Dienst laufen lasse bash marytts-server > /dev/null 2>&1 &. Ich glaube das macht die Zeile aus deinem Script. Oder?
Nicht direkt als Dienst sondern eigentlich nur im Hintergrund, sprich es startet nicht automatisch neu bei Problemen o.ä..
Versuch mal nohup bash marytts-server > /dev/null 2>&1 &
(hoffe der Syntax stimmt)
Ich dachte wegen dem "&" wäre es nicht nötig aber so 100% habe ich das auch nie verstanden. Der SEPIA Server läuft auch ohne "nohup" durch aber der Befehl bewirkt, dass sich Prozesse nicht aufhängen beim Beenden der Session (nohup = no hangup).
Grüße, Florian
nohup bash marytts-server > /dev/null 2>&1 & damit läuft es jetzt auch ohne SSH.
Gibt es eine Möglichkeit Parameter für die Stimmen im ~/clexi/www/sepia/settings.js mitzugeben, in der Art wie im MaryTTS-Client?
nohup bash marytts-server > /dev/null 2>&1 & damit läuft es jetzt auch ohne SSH.
:+1:
Gibt es eine Möglichkeit Parameter für die Stimmen im ~/clexi/www/sepia/settings.js mitzugeben, in der Art wie im MaryTTS-Client?
Du meinst sowas wie "Rate", "Volume", "Whisper" etc.? Nein das geht nicht. Die integrierten Stimmen sind soweit optimiert wie ich es hinbekommen habe. Die meisten Parameter von Mary-TTS erzeugen leider auch nur Artefakte, z.B. bei "Volume" gibts regelmäßige Störgeräusche bei höheren Werten. Wenn du eine spezifische Filter/Parameter Konfiguration findest, die gut funktioniert, könnte man diese als neue "voice" Option einbauen im Server. Zur Zeit wäre dazu ein pull request für den Sourcecode nötig. Neu installierte Stimmen vom Mary-TTS Server müssten aber automatisch erkannt und mit Standardeinstellung durchgereicht werden.
Aktuell habe ich nur noch das Problem, das die Sprachausgabe ca. 2sek länger brauch
Dazu wollte ich noch sage, dass es leider bei Mary-TTS manchmal etwas länger dauert. Zusätzlich zur Mary-TTS eigenen Verarbeitungszeit kommt noch die Übertragung übers Netzwerk. Mary-TTS Audio ist tendenziell 50% größer als bei anderen Engines :-/
Hallo Florian, nur eine kurze Frage. Der Client ist jetzt nicht mehr per LAN sondern mit WLAN mit dem Netzwerk verbunden. Leider bekommt er jetzt keine Verbindung zum Sepia Server mehr. Muß ich an der Konfiguration Client/Server etwas ändern? Danke!
Grüße Dirk
Hi Dirk,
es gibt keine Einstellungen die explizit vom Netzwerkadapter abhängen. Kannst du aus dem Client System raus denn den Server anpingen, sprich sehen die beiden Rechner sich überhaupt? Die IP des Client ändert sich vermutlich wenn du den Adapter änderst, aber auf die Verbindung vom Client zum Server hat das eigentlich keine Auswirkungen.
Netzwerk funktioniert, ich kann mich mit SSH auf client verbinden. Die IP hat sich geändert, aber ja das sollte egal sein. Server und Client sind erreichbar. Beide habe ich auch neugestartet.
Unter Client Connections kommt immer der Clexi error CLEXI error CLEXI connecting ... CLEXI reconnecting after unexpected close. Try: 5 CLEXI closed. Reason: 1006
Hmmm, das heißt eigentlich, dass er gar nicht erst auf den CLEXI Server drauf kommt. IP und Port sind korrekt?
Der CLEXI Server wird nach Außen hin freigegeben über den Nginx Proxy. Die Config dafür ist /etc/nginx/sites-enabled/sepia-client-nginx.conf
. Da steht aber auch überall nur localhost
drin.
Mir fällt gerade was komisches auf. Du hattest irgendwie Port 8080 benutzt für den Zugriff aus dem Control Hub (Client Connections) oder? (Oder werfe ich da jetzt was durcheinander? ^^) Der Proxy läuft aber auf http://[SEPIA-Client-IP]:9090/clexi
:thinking:
Über welche URL rufst du den Control HUB auf?
[EDIT] Port 8080 war doch jemand anderes ^^, aber vielleicht ist die Info ja trotzdem relevant.
Ich rufe das Control Hub über die URL auf http://192.168.10.35:20721/app/index.html?lang=de. Das ist die vom Sepia-Server. Sobald ich das LAN-Kabel anstecke, funktionierte es ja auch, jetzt leider auch nicht mehr. Werde den Client morgen nochmal aufsetzen.
Guts Nächtle Dirk
Heyho. Sagt mal... wie sieht das eigentlich aus, wenn ich mehrere Rpi-Clients gleichzeitig laufen lassen will. Hat das schon mal jemand hinbekommen bzw. gibt es irgendwelche Hindernisse dafür?
Hi @rubipopubi Das System ist genau dafür ausgelegt (1 Server, beliebig viele Clients). Hattest du bisher Probleme damit?
Hey, mit zwei Pi3 klappt es problemlos bislang, wollte einfach mal nachfragen, ob irgendwas beachtet werden muss bzgl. Clexi oder ähnlichem.
Hallo in die Runde,
ich habe auch erstmalig meinen DIY Client (Raspberrypi2, Respeaker 2-Mic-HAT) erfolgreich eingerichtet, aber bislang alles nur mit Kabel.
Sobald ich wie tlrider99 das per Wi-Fi versuche, kommt im ControlHUB (in der Hauptinstanz, dedizierte VM mit Debian) immer die Meldung: "CLEXI connection failed! Server not reached."
Ich habe sowohl die neue IP als auch den DNS Namen probiert jeweils auf Port 9090
Client und Server sehen sich, ping sowie SSH in beide Richtungen geht ohne probleme durch.
Ich habe die Vermutung, das sich der nodejs server irgendwelche Dinge im Cache hält, denn auch ein neustart aller beteiligten Geräte bringt keine Besserung.
Auch mit angeschlossenem Kabel mag die DNS Auflösung auf: ws://raspberrypi2.fritz.box:9090/clexi nicht klappen.
Hi @PlanetSmasher , ich fürchte an der Stelle habe ich keine klare Lösung parat, da es irgendwas mit dem Netzwerk zu tun hat. CLEXI merkt sich auf jeden Fall nichts (bewusst) und ich habe schon duzende von RPis mit und ohne Wifi betrieben während das Kabel dran war. Vielleicht bringt es etwas den unbenutzten Adapter zu deaktivieren.
Das Netzwerk kann aber durchaus komische Phänomene erzeugen bei der DNS Auflösung. Ich hatte bei mir mal den Fall, dass ich meine Geräte immer aus dem Wifi über die externe Domain erreichen konnte und dann im Supermarkt plötzlich gemerkt habe dass der Dynamic-DNS Server schon ewig kein IP Update gemacht hatte. Mein Wifi hat das aber überhaupt nicht interessiert weil die direkte Durchleitung scheinbar gecached war vom Router.
Hoffe du hast mittlerweile eine Lösung gefunden!
Hallo Florian,
ich habe es jetzt endlich mal geschafft den Client zu installieren. 2 kleine Problemchen :-).
Grüße Dirk