NEWS
Rhasspy Offline Sprachsteuerung
-
@MathiasJ
Guten Morgen,
das ist ja schon mal erfreulich. Zu deinen weiteren Fragen: Hier findest du ein Tutorial, wie ein Master-Satellite System zu installieren und zu konfigurieren ist:https://rhasspy.github.io/rhasspy-voltron/tutorials.html#getting-started-guide
Und ja, auch hier Docker. Alternativ geht auch eine Python VENV. Aber warum bei Master und Satellite unterschiedliche Wege einschlagen. Ich empfehle dir Docker. Gleich der Zweite Punkt ganz oben führt dich zur Installationsanweisung. Wichtig: achte auf die unterschiedlichen Ports!!!
Kauderwelsch beim Training: Gibt es nur beim Master. Die Vorschläge kommen automatisch vom System. Du kannst sie dir anhören. Wenn dir die Aussprache nicht gefällt, kannst du sie anpassen. Gelegentlich ist es besser, einen lang gesprochenen Vokal zu verkürzen, damit die Aussprache keinen amerikanischen Akzent hat. Und Achtung: Die Kiste spricht so, wie du es eingibst. Also: 5 als fuenf geschrieben spricht sich "fu-enf", und fünf ist fünf. Auch so kannst du also bestimmte Worte an deine Aussprache anpassen.
Good Luck. Und bei Fragen einfach fragen.
-
@tobetobe
Danke, schaue ich mir gleich an.
Bin gerade am Server und versuche mich mit den Custom Words.
Gibt es ach andere Stimmen? Die ist richtig grässlich.....
Oder ist die nur zum kontrollieren und die, die ich im laufendem betrieb höre ist eine andere?ich habe da noch etwas anderes gefunden: https://community.home-assistant.io/t/rhasspy-offline-voice-control-step-by-step-server-client-docker/154015
-
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Gibt es ach andere Stimmen?
Also die Umwandlung von Text in Sprache (TTS - TextToSpeech) wird im Master eingestellt. Es stehen verschiedene Module zur Verfügung, die im Konfigurationsmenü angeboten werden. Standard ist Espeak, was in der tat recht grausig klingt. Weitaus besser ist PicoTTS, was ich aus eigener Erfahrung heraus als recht angenehm empfinde. Wie schon zuvor mitgeteilt, kann es in Ausnahmefällen mal erforderlich sein, die Aussprache etwas anzupassen. Du kannst das ja mal testen, wie sich die verschiedenen Schreibweisen anhören:
G AH RR AAH ZH AX N L IH CC T G AAH RR AAH ZH AX N L IH CC T G AAH RR AH ZH AX N L IH CC T G AH RR AAH ZH AX N L IIH CC T
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Oder ist die nur zum kontrollieren und die, die ich im laufendem betrieb höre ist eine andere?
Ich bin mir da nicht ganz sicher (weil ich es für dich nicht nochmals überprüfen konnte), aber ich glaube, dass die Aussprache in beiden Fällen vom ausgewählten TTS-System abhängt.
Mary TTS soll übrigens auch sehr gut sein, das habe ich allerdings noch nicht getestet. Warte ein wenig, dann komme ich darauf wieder zurück - oder teste MaryTTS selbst und teile deine Erfahrungen.
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
ich habe da noch etwas anderes gefunden:
Das ist eine alte Quelle aus dem Dezember 2019. Sie bezog sich noch auf Version 2.4.x und ist nicht mehr relevant. Zu 2.5 gab es gravierende Veränderungen. Bitte arbeite mit dem Verweis, den ich dir bereitgestellt habe.
-
@capitaenz said in Rhasspy Offline Sprachsteuerung:
Wenn man nicht mit Skripten arbeiten möchte, dann benötigt man eine "saubere" Lösung für Blockly.
Bitte Leif, bleib bei der Sache. Du erweckst hier im Forum für andere Interessierte mit falschen Aussagen einen irritierenden Eindruck, den ich so nicht stehen lassen kann.
@joergeli hat dir einen sauberen UND stabil funktionierenden UND absolut gleichwertigen Weg im Anschluss an die erfolgreiche Rhasspy-Installation beschrieben:
- Installation eines Mosquitto-Brokers
- Installation eines mqtt-Clients unter ioBroker
Das Ganze geht mit minimalem Aufwand und frisst fast keine Ressourcen. Damit stehen dir alle relevanten Datenpunkte, die von Rhasspy generiert werden, zur weiteren Verarbeitung durch irgend eine Skriptsprache, die dir genehm ist zur Verfügung. Unter ioBroker sind dies Javascript, Blockly und Node-Red.
Also: Du willst mit Blockly arbeiten, und kannst es auch. Von daher ist es für andere Interessierte nicht hilfreich, wenn du es so darstellst, wie wenn das Arbeiten mit Blockly bei Rhasspy Version 2.5 nicht möglich wäre.
Und auch wenn du mit Blockly arbeitest, erzeugst du Skripte, die bestimmten Abläufen folgen. Dass Blockly nichts mit Skripten zu tun hat, ist von dir ebenfalls schlichtweg falsch dargestellt.
-
@tobetobe
Ist erst einmal egal.
Ich muß Rhasspy neu installieren.
Ich bin auf der 2.4.x
Gruß,
Mathias -
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Ich muß Rhasspy neu installieren.
Ich bin auf der 2.4.xdann würde ich dir empfehlen, die 2.5 zu installieren. Die ist mittlerweile wirklich gut und stabil, zudem schneller und überhaupt die Basis für alles weitere. 2.4.x ist out
-
@tobetobe
Ja, richtig, man kann mit der Installation arbeiten, keine Frage.
Wörter werden erkannt und die Übertragung per MQTT funktioniert und ich bin soweit begeistert und euch dankbar für die Hilfe.
Aber es erschließt sich mir nicht, wie ich per MQTT (nicht per Script) eine Sprachausgabe auf dem Rhasspy erzeugen kann, gleichwertig und einfach, wie es bei Snips möglich ist.
Soweit ich @joergeli richtig verstanden habe, hat er deswegen das Script "entwickelt" und mir/uns zur Verfügung gestellt.VG
Leif -
@tobetobe
genau, deshalb will ich ja neu installieren, weil ich auf der 2.5.0 sein will.
Was nimmst Du eigentlich als MQTT? Internen oder für alle den IObroker? -
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
genau, deshalb will ich ja neu installieren, weil ich auf der 2.5.0 sein will.
Verstehe, das ist gut so.
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Was nimmst Du eigentlich als MQTT? Internen oder für alle den IObroker?
Weder noch. Du brauchst einen externen MQTT-Broker (Broker = Master/Host). Aber NICHT den ioBroker Adapter im Broker-Modus. Der ist im Zusammenspiel mit Rhasspy nicht geeignet.
Entweder folgst du der Anweisung von @joergeli zur einfachen Installation eines MQTT-Brokers unter Linux oder meiner, zur Installation eines MQTT-Brokers in einem Docker. Beides siehe wenige Posts weiter oben.
Wenn du dann diesen externen Broker hast, kannst du den MQTT-Adapter von ioBroker als CLIENT installieren und so konfigurieren, dass er auf diesen externen MQTT-Broker zugreift. Rhasspy Master und Satellite müssen natürlich auch auf die IP-Adresse dieses externen Broker verweisen. Ist alles einfacher, als es sich jetzt vielleicht liest.
Wie der MQTT-Client in ioBroker zu konfigurieren ist, hat @joergeli ebenfalls gut beschrieben.
-
und alle Sateliten greifen dann auf diesem MQTT-Broker zu, richtig?
Gruß,
Mathias -
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
und alle Sateliten greifen dann auf diesem MQTT-Broker zu, richtig?
Richtig, stell dir den MQTT-Broker als Zentrum eines Kreises vor. Von außen greifen alle Satelliten, der Rhasspy-Master und der ioBroker MQTT-Client darauf zu. Bitte vorstellen, bin zu faul zum Malen...
-
nein, passt schon. ich suche gerade, wo ich den Beitrag finde, wo erklärt wird, wie
man den MQTT-Server auf dem Rasspy aufsetztEdit:
Rhasspy versucht schon seit 30 Minuten 41 MB herunter zu laden.
Ich sehe da nur training profile. Wenn ich das Fenster schließe, sehe ich , dass es ca 41MB sind.
Aber es passiert nichts weiter.
genau wie beim letzten Versuch.
das braucht er wohl noch:{ "de_pocketsphinx-cmu/acoustic_model/feat.params": { "bytes_expected": 112, "file_key": "de_pocketsphinx-cmu/acoustic_model/feat.params", "file_path": "/profiles/de/acoustic_model/feat.params", "human_size": "112.0 B", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 0 }, "de_pocketsphinx-cmu/acoustic_model/feature_transform": { "bytes_expected": 4568, "file_key": "de_pocketsphinx-cmu/acoustic_model/feature_transform", "file_path": "/profiles/de/acoustic_model/feature_transform", "human_size": "4.5 KiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 1 }, "de_pocketsphinx-cmu/acoustic_model/mdef": { "bytes_expected": 5125554, "file_key": "de_pocketsphinx-cmu/acoustic_model/mdef", "file_path": "/profiles/de/acoustic_model/mdef", "human_size": "4.9 MiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 2 }, "de_pocketsphinx-cmu/acoustic_model/means": { "bytes_expected": 11509124, "file_key": "de_pocketsphinx-cmu/acoustic_model/means", "file_path": "/profiles/de/acoustic_model/means", "human_size": "11.0 MiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 3 }, "de_pocketsphinx-cmu/acoustic_model/mixture_weights": { "bytes_expected": 396928, "file_key": "de_pocketsphinx-cmu/acoustic_model/mixture_weights", "file_path": "/profiles/de/acoustic_model/mixture_weights", "human_size": "387.6 KiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 4 }, "de_pocketsphinx-cmu/acoustic_model/noisedict": { "bytes_expected": 27, "file_key": "de_pocketsphinx-cmu/acoustic_model/noisedict", "file_path": "/profiles/de/acoustic_model/noisedict", "human_size": "27.0 B", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 5 }, "de_pocketsphinx-cmu/acoustic_model/transition_matrices": { "bytes_expected": 3280, "file_key": "de_pocketsphinx-cmu/acoustic_model/transition_matrices", "file_path": "/profiles/de/acoustic_model/transition_matrices", "human_size": "3.2 KiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 6 }, "de_pocketsphinx-cmu/acoustic_model/variances": { "bytes_expected": 11509124, "file_key": "de_pocketsphinx-cmu/acoustic_model/variances", "file_path": "/profiles/de/acoustic_model/variances", "human_size": "11.0 MiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 7 }, "de_pocketsphinx-cmu/base_dictionary.txt": { "bytes_expected": 1045421, "file_key": "de_pocketsphinx-cmu/base_dictionary.txt", "file_path": "/profiles/de/base_dictionary.txt", "human_size": "1020.9 KiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 8 }, "de_pocketsphinx-cmu/g2p.fst": { "bytes_expected": 14285970, "file_key": "de_pocketsphinx-cmu/g2p.fst", "file_path": "/profiles/de/g2p.fst", "human_size": "13.6 MiB", "setting_name": "speech_to_text.system", "setting_value": "pocketsphinx", "index": 9 } }
ich mache für heute mal Schluß.
Edit:
Heute früh gerade grmerkt:
Bei einem Neustart startet Rhasspy nicht mehr mit.
Gruß,
Mathias -
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Rhasspy versucht schon seit 30 Minuten 41 MB herunter zu laden.
Also das ist ungewöhnlich. Ich nehme an, das ist dein Master, oder arbeitest du momentan zum Kennenlernen erst einmal nur mit einem System, also quasi Master und Satellit auf einem Pi?
Der Download betrifft ja offensichtlich Pocketsphinx. Wir empfehlen Kaldi, weil es die bessere Erkennung bietet. Damit wäre auch dieser Download für Pocketsphinx hinfällig.
Dann kann es mal Download-Probleme geben, wenn man das deutsche Profil nachträglich installieren möchte. Der einfache und saubere Weg ist, bei der Installation im Kommando "en" gegen "de" auszutauschen. Damit habe ich noch nie ein Problem gehabt. Also zunächster "docker pull ..." und danach für den Master:
docker run -it \ -v "$HOME/.config/rhasspy/master:/profiles" \ --network host \ rhasspy/rhasspy:2.5.0-pre \ --profile de \ --user-profiles /profiles
Das Programm läuft dann im DEBUG-Mode, sodass du im Terminal auch sehen kannst, was passiert, bzw. wo ggf Fehler auftreten. Abbrechen mit Ctrl C führt allerdings auch zum Stoppen des Prozesses.
Das ist auch der Grund, warum du neu starten musstest.
Alternative: Zweites Terminal öffnen, mit "docker ps" die laufenden Docker-Prozesse anzeigen lassen und die Rhasspy Prozessnummer kopieren/notieren.
docker rm <nummer> löscht den Container, Konfig bleibt erhalten docker start/stop <nummer> startet oder stoppt den Container
So kannst du das DEBUG-Fenster bei passender Gelegenheit schließen und den Prozess wieder starten. Bitte beachten: Wenn du den o.g. Installationsbefehl neu ausführst, wird auch eine neue Dockernummer angelegt.
Wie hast du denn@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Bei einem Neustart startet Rhasspy nicht mehr mit.
Stimmt. Ich hatte ja schon eine teilweise Erklärung hierzu gegeben. Mit der Frage, wie man das dauerhaft ändert habe ich mich bislang noch nicht beschäftigt, weil es mir nicht so wichtig war. Vielleicht wäre diese Klärung ja was für dich?
Gutes Gelingen weiterhin.
-
@capitaenz said in Rhasspy Offline Sprachsteuerung:
Aber es erschließt sich mir nicht, wie ich per MQTT (nicht per Script) eine Sprachausgabe auf dem Rhasspy erzeugen kann, gleichwertig und einfach, wie es bei Snips möglich ist.
Ach so! Jetzt verstehe ich endlich das Problem.
Snips kenne ich leider nicht gut genug um beurteilen zu können, wie dort die Sprachausgabe organisiert war. Soweit ich jedoch Rhasspy bislang verstanden habe, gibt es keine Möglichkeit, eine Sprachausgabe einfach zu konfigurieren. Ich habe allerdings im Rhasspy-Forum auch nicht recherchiert, ob es in dieser Richtung schon etwas gibt. Falls du dort auf etwas stoßen solltest, wäre das für alle anderen hier natürlich auch interessant.
Für mich ist das mit den Skripten in Ordnung. Und ich bin auch nur einfacher Anwender mit geringen Programmierkenntnissen. Die meisten Tätigkeiten sind ja eh nur einfache Konfigurationsänderungen.
Mit dem ganzen Set an Skripten kommst du jedenfalls schnell ans Ziel. Wenn du dir jedoch etwas anderes vorstellst, müsstest du dich an das Rhasspy-Forum wenden. Ich und vermutlich auch alle anderen, die sich hier im ioBroker Forum zu Rhasspy äußern, sind dann wohl mit ihrem Latein am Ende.
Aber wie gesagt, wenn du auf eine hilfreiche Quelle stößt, poste sie bitte hier.
-
@tobetobe
Vielen Dank für die Info.
Nur wie stelle ich das auf Kaldi um?
Der fragt mich gleich nach dem ersten Aufruf der Seite nach den Downloads.
Ja Du hast recht. Es handelt sich um pocketsphinx.
Nein, ich will auf dem Raspberry erst einmal nur einen Master als "Trockenübung" installieren. Wenn der und ein weiterer Satelit dann endlich läuft zieht der Master auf mein Proxmox um. Als Testsystem habe ich einen Respeaker, allerdings nur mit 2 Mikrofone, quasi zum üben. Den habe ich mir damals für Snips gekauft. Aber ich kam nie dazu, das zu testen.
Gruß,
Mathias -
@MathiasJ
Danke für die Infos. Ich nehme an, die Kiste hängt immer noch beim Download? Falls das der Fall sein sollte, nochmals meine Frage: Wie hast du installiert? Das englische Profil? Dann lösche bitte alles, und zwar den mit docker ps ermittelten Container UND im Dateiverzeichnis das komplette englische Profil, VOR ALLEM die Datei profile.json.Dann erstellst du dir zunächst einmal den MQTT-Broker, den du in jedem Fall brauchst mit:
sudo apt update sudo apt install -y mosquitto mosquitto-clients sudo systemctl enable mosquitto.service sudo systemctl start mosquitto
Dann die aktuelle Rhasspy-Version ziehen:
sudo docker pull rhasspy/rhasspy:2.5.0-pre
Und danach den Rhasspy-Master neu installieren, mit diesem Befehl zur Installation eines Master, den du komplett kopieren und eingeben musst:
docker run -it \ -v "$HOME/.config/rhasspy/master:/profiles" \ --network host \ rhasspy/rhasspy:2.5.0-pre \ --profile de \ --user-profiles /profiles
Sollte wieder ein Download beginnen, kannst du den auch zunächst einmal abbrechen. Und dann stellst du deinen Rhasspy Master so ein, wobei du am besten mit dem Deaktivieren nicht benötigter Teile beginnst und dann auf Kaldi umstellst. Danach speichern und Download und dann die restlichen fehlenden Einstellungen nachziehen. Speichern UND Trainieren nicht vergessen. Am besten postest du danach mal deine Profile.Json aus dem Menü "Advanced"
-
@tobetobe
nein, habe um 05:00 damit angefangen, nach 2 Stunden dann den Download abgebrochen.
ich denke, wenn er 42MB in 2 Stunden nicht schafft, dann wird das nichts mehr.
Nein, ich habe gleich das deutsche Profil genommen.
bei --profile en / das en durch de ersetzt.
Ja, das kann ich noch versuchen. Vllt klappt das ja.
Ich flashe dann die Speicherkarte neu und beginne von vorne. Dann habe ich wenigstens eine frische Installation.
ich gebe dann bescheid......Edit:
Hier die profile.json{ "dialogue": { "system": "rhasspy" }, "handle": { "system": "hass" }, "intent": { "system": "hermes" }, "microphone": { "system": "hermes" }, "mqtt": { "enabled": "true", "host": "" }, "sounds": { "system": "hermes" }, "speech_to_text": { "system": "kaldi" }, "text_to_speech": { "system": "marytts" }, "wake": { "system": "snowboy" } }
trainieren kann ich wieder mal nicht, weil dann das Bild kommt:
und nicht mehr verschwindet.
es werden auch keine Dateien nachgeladen.......
und das, was ich befürchtet habe, ist auch wieder eingetroffen:
nach Reboot öffnet sich die Seite nicht mehr........
es tut mir leid, wenn ich es sagen muß, aber ich denke, ich lasse es.
Habe da schon lange genug rum gedocktert und hat nix gebracht.
trotzdem danke für die Hilfe.
Gruß,
Mathias -
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Habe da schon lange genug rum gedocktert und hat nix gebracht.
In deiner Profile.JSON stimmt aber auch gar nichts. Wenn du willst, können wir uns morgen verabreden und ich schaue per TeamViewer mal bei dir drauf. Es ist für mich nicht nachvollziehbar, was da bei dir passiert. Weder habe ich derartige Schwierigkeiten selbst erlebt, noch solche von anderen gehört.
-
@tobetobe
Und wie soll das gehen?
Die Seite öffnet sich auch nicht mehr.
Ich weiß nicht, wie ich von der Arbeit nach Hause komme. Sonst gerne.
Oder Du lässt mit die Datei zukommen.
Gruß,
Mathias -
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Und wie soll das gehen?
Du installierst TeamViewer auf deinem PC und ich greife remote auf deinen Rechner zu. Dann stelle ich dir alles ein, wie es sein soll.
Wir sollten dazu nebenher telefonieren können. Kannst du mir per Chat eine Telefonnummer schicken? Dann schicke ich dir im Gegenzug meine und du rufst mich an, sobald du Zeit hast. Ich bin prinzipiell immer erreichbar.
@MathiasJ said in Rhasspy Offline Sprachsteuerung:
Oder Du lässt mit die Datei zukommen.
Das würde dir wenig helfen. Ich habe zu viele spezielle Einstellungen, die wieder andere Downloads und Installationen voraussetzen