Rhasspy – Sichere Sprachsteuerung in Home Assistant (auf Spanisch)

Für alle unter uns, die einen Home Assistant haben und daran interessiert sind, ihn per Sprache steuern zu können, sagen, eine Alternative zu Alexa oder Google Home, Nun, wir haben Rhasspy. Und warum Rhasspy? Warum unsere Mikrofone keine Verbindung zum Internet herstellen können, Niemand wird uns zuhören und es wird absolut sicher und anpassbar sein, Gestartet!

Eine Besessenheit, die ich habe, ist es, überall Mikrofone zu sehen, die moderne Häuser steuern, Diese Heimautomatisierung oder intelligente. Mikrofone, die bei uns zu Hause mithören und von denen wir nicht wissen, wer dahinter steckt oder zu welchem Zweck sie uns einen kostenlosen Dienst leisten ;-). Zu Hause habe ich einmal eines dieser Mikrofone von Google oder Amazon ausprobiert und war erstaunt über die Anzahl der Verbindungen und den Traffic, den sie 24 Stunden am Tag generieren, Ich denke, es ist nicht normal, dass wir mit diesem IoT Daten jeglicher Art mit Dritten teilen müssen, Wenn wir die Waschmaschine einschalten, oder wie viele m2 der Staubsauger reinigt, oder uns geolokalisieren… Vermeiden wir es, das Produkt zu sein.

Also nach langer Zeit das Suchen und Ausprobieren von Alternativen, das mit Abstand beste ist Rhasspy, Es ist einfach, Es ist sehr vollständig, Wir können viele kleine Dinge tun, Senden von Freigaben, Fragen, Gespräche… und dann handeln und es in Home Assistant integrieren, um Automatisierungen auszuführen. Und natürlich werden wir in der Lage sein, es auf Spanisch zu sprechen (Spanisch) oder eine andere unterstützte Sprache (Englisch, Deutsch, Spanisch, Französisch, Italienisch, Deutsch, Russisch, Griechisch, Hindi, Mandarine, Vietnamesisch, Portugiesisch, Schwedisch oder Katalanisch unter anderem.)

Rhasspy kann im, sagen wir, lokalen Modus installiert werden, alles in einem Himbeere, Das ist, in dem das Mikrofon steckt, das darauf wartet, dass ein Schlüsselwort "aufwacht", die aufzeichnet, was wir gefragt/bestellt haben, und es dann verwaltet, um die entsprechende Hassio-Automatisierung zu verstehen und aufzurufen. Aber das Ideal, ist, dass wir kein Mikrofon alleine zu Hause haben, wenn nicht sogar mehrere, die in den Räumen verstreut sind, so kann Rhasspy beispielsweise im Client-Modus mit dem Nötigsten installiert werden, los, die auf das Schlüsselwort wartet und unsere Frage/Bestellung aufzeichnet und sie dann an eine zentrale Rhasspy sendet, die sie bearbeitet und an Home Assistant sendet. Die Idee dieses Client/Servers besteht darin, mehrere Satelliten mit Mikrofonen und einer einzigen zentralen Konfiguration zu haben (und nicht jeder Raspberry Pi mit einer anderen Konfiguration). Und in meinem speziellen Fall die zentrale Rhasspy, wichtig sein (Es hat die Konfiguration und führt die Berechnung durch) Ausführen auf einem virtuellen Computer, da kein Mikrofon erforderlich ist… Und schließlich, Falls es jemanden interessiert, kann direkt auf Home Assistant installiert werden

Brunnen, Ich denke, dass wir uns damit positionieren und die Idee, da Rhasspy in einem Container läuft, Also wird es uns brauchen 2 Minuten, um es überall dort einzusetzen, wo wir es brauchen. Ich werde den Beitrag in verschiedene Situationen unterteilen, damit jeder sein ideales Szenario auswählen kann.

Einsamer Rhasspy

Dieses Szenario besteht darin, 1 Raspberry Pi allein, Lassen Sie sie sich um den gesamten Prozess kümmern; Ideal vielleicht, wenn wir einen Roboter oder ähnliches bauen wollen, die das Triggerwort "Bender’ Zum Beispiel. Gestartet, Wir müssen Docker installiert haben, Wenn wir es nicht haben, Ist:

curl -sSL https://get.docker.com | Pst

Wir müssen eine Konfigurationsdatei für die Raspberry Pi-Soundkarte erstellen, damit sie in Docker funktioniert, Wir können es '/home/pi/asound.conf.txt nennen’ Und wir haben diesen Inhalt darauf gesetzt:

pcm.!Vorgabe {
        Typ Hw-Karte 1
}

CTL.!Vorgabe {
        Typ Hw-Karte 1
}

Und nichts, Wir heben den Container mit Rhasspy-Bild an, Geben Sie im Profil die Sprache an, mit der wir arbeiten werden:

sudo docker run -d -p 12101:12101 \
      --Neustart ohne Stopp \
      -v "$STARTSEITE/.config/rhasspy/profile:/Profile" \
      -v "/Startseite/Pi/asound.conf.txt:/usw./asound.conf" \
      --Gerät /dev/snd:/Entwicklung/SND \
      synesthesiam/rhasspy-server:neueste \
      --Benutzer-Profile /Profile \
      --Profil DE

Sobald der Rhasspy-Container gestartet ist, Wir werden in der Lage sein zu testen, ob der Container effektiv auf das Mikrofon korrekt zugreift, das funktional ist und. Wir eröffneten eine Party und probierten:

Sudo Docker exec -it ID_CONTENEDOR_RHASSPY bash arecord -r 16000 -c 1 -f S16_LE test.wav

Wir werden jetzt in der Lage sein, das Rhasspy-Management zu öffnen, über einen Webbrowser, mit dem wir eine Verbindung herstellen: HTTP (Englisch)://DIRECCION_IP_RHASSPYl:12101

Im oberen Menü, Wir werden in der Lage sein, die Dienste zu sehen, die auf diesem Rhasspy laufen, und nachdem wir gesagt haben, dass es sich um ein einzelnes Rhasspy handelt, sollten sie alle ausführen. Für den Fall, dass wir später sehen werden, einer vernetzten Anlage mit mehreren Mikrofonen, Die Rollen werden unterschiedlich sein.

Auch von dieser ersten Schnittstelle aus werden wir in der Lage sein, Spracherkennungstests durchzuführen, Mal sehen, ob er uns gut versteht…

Die erste Option für die Tonaufnahme oder Audioaufnahme ist im Grunde die Soundkarte, die wir für die Aufnahme verwenden werden.

In Wake Word wählen wir die Option aus, die uns für die Keyword-Erkennung interessiert, oder Aktivierung; Ich empfehle Ihnen, sie alle auszuprobieren, um zu sehen, welche Sie am besten erkennt, oder abhängig von den Keywords, die es bereits gibt oder die uns gefallen, sowie wir können unsere eigenen erstellen. Am Beispiel des unkomplizierten Bildes, das Schlüsselwort wäre "Alexa".

In Speech to Text geben wir das Erkennungsmodell an, Standardmäßig funktioniert Kaldi ohne größere Komplikationen.

Die Absichtserkennung, die wir verwenden, um mit der Datei mit benutzerdefinierten Anweisungen zu arbeiten, die wir dann erstellen.

Dann ist Text to Speech der Ort, an dem Sie den Text in Audio konvertieren, NanoTTS funktioniert auch wie ein Zauber, und in Sprache werden wir überprüfen, ob wir das haben, woran wir interessiert sind.

In der Audiowiedergabe geben wir an, welches unser Audiogerät ist, das über die Lautsprecher abgespielt werden soll, falls Sie Töne werfen müssen, dass Sie uns verstehen oder nicht, sowie einige Sätze…

Im Dialogmanagement verlassen wir Rhasspy.

Und schließlich, in Intent Handling wird der Ort sein, an dem wir in der Lage sein werden, Rhasspy-Ausgaben zu verarbeiten, in diesem Fall, dass es sich mit einem Home Assistant verbindet und ihm Ereignisse sendet. Dann werden wir Automatisierungen in Home Assistant haben, die auf Ereignisse warten und darauf warten, die Aufgabe zu aktivieren und auszuführen, die uns interessiert.

Rhasspy-Netzwerk (Kunde)

Dieses andere Szenario wäre, wenn wir mehrere Mikrofone im Haus verteilen möchten, Nicht nur einer. Die Idee ist, dass wir in jedem Raspberry Pi mit Mikrofon die gleiche Installation und minimale Konfiguration durchführen.

Brunnen, da die Installation genau die gleiche wäre wie bei der Lonely Rhasspy; nur, dass es weniger Dienstleistungen braucht, die vor Ort erhoben werden. Wir müssen darauf hinweisen, dass die folgenden Dienste auf dem Rhasspy-Server/der Rhasspy-Zentrale ausgeführt werden:

  • Erkennung von Absichten, mit Angabe von Remote HTTP und als URL: 'http://DIRECCION_IP_RHASSPY_SERVIDOR:12101/API/Text-to-Intent’
  • Text-to-Speech, mit Angabe von Remote HTTP und als URL: 'http://192.168.1.216:12101/API/Text-to-Speech’

Rhasspy-Netzwerk (Server)

In diesem Fall, Dieses Gerät müsste keine Soundkarte haben, da es weder aufnimmt noch abspielt,, So können Sie es installieren, wo immer Sie wollen, ein weiterer Raspberry Pi, oder, wenn möglich, in einer virtuellen Maschine, oder wo immer Sie wollen, gesamt, ist ein Docker-Container… Die Installation wäre einfacher, da:

docker run -d -p 12101:12101 \
      --Neustart ohne Stopp \
      -v "$STARTSEITE/.config/rhasspy/profile:/Profile" \
      synesthesiam/rhasspy-server:neueste \
      --Benutzer-Profile /Profile \
      --Profil DE

Und der Serverkonfigurationsteil ist das Gegenteil des Clients, wir werden keine Audioaufzeichnung haben, oder Weckwort, Es wird auch nicht die Umwandlung von Text in Sprache oder Audiowiedergabe durchgeführt.

Sätze

Sobald wir das System in Betrieb genommen haben, Erkennen Sie uns Keyword, Test-Phrasen, nun, es ist an der Zeit, eine Datei mit Sätzen oder Phrasen in Rhasspy zu füttern (Im Falle von Red, Dies würde nur auf der Serverseite erfolgen).

Vom zweiten Symbol aus können wir unsere Dateien mit den Phrasen erstellen, die nach dem Abhören des Schlüsselworts abgefangen werden sollen. Der in Klammern gesetzte Block ist das Ereignis, das generiert wird, und wir werden in der Lage sein, Variablen zu erstellen, die wir innerhalb der Ereignisdaten senden, da es sich um eine Handlung handeln kann (Ein- oder Ausschalten) und nehmen Sie es als Zustand auf (Zum Beispiel), und dann der Name des Objekts oder Ortes und wir nehmen ihn als "Name" auf. Hier sind einige Beispiele, die Sie besser verstehen, Fatale Erklärung:

Staatslicht]
(Lichter | Herunterfahren){Zustand} das (Wohnzimmer-Lampe){Name}
(Lichter | Herunterfahren){Zustand} das (Licht in der Küche){Name}
...
[RiseLowerBlinds]
(Unfall | Oben){Zustand} das (Jalousien für Wohnzimmer){Name}
(Unfall | Oben){Zustand} das (Rollladen für Büro){Name}
...
[TempState (Temporärer Zustand)]
Wie hoch ist die Temperatur in (Haus){Name}
Wie hoch ist die Temperatur in der (Straße){Name}
Wie hoch ist die Temperatur in der (Küche){Name}
...
[Sonstige Fragen]
Es gibt (Buchstaben){Name} Prüfen Sie, ob im Postfach (Buchstaben){Name}
Wo ist er (Einschüchtern){Name}
...

Erstellen eines Tokens in Home Assistant

Wie Sie es sicher bemerkt haben, auf Rhasspy, Um die Ausgaben an Home Assistant zu senden, tun wir dies über Intent Handling, abgesehen von der Angabe der URL von Home Assistant, Wir müssen auch ein Access Token angeben. So generieren Sie dieses Token, Sie können die folgenden Schritte ausführen.

Inside Home Assistant, Über die Optionen für privilegierte Benutzer des Administrators, Wir werden in der Lage sein, langfristige Zugriffstoken zu erstellen, Anklicken “Token erstellen”,

Wir geben ihm einen beschreibenden Namen, damit wir uns in Zukunft daran erinnern, was und warum wir das haben,

Und wir kopieren dieses Token und bewahren es an einem sicheren Ort auf, welches derjenige sein wird, den wir Rhasspy erzählen.

Rhasspy Home Assistant Integration

Und nichts, wenn wir möchten, dass Home Assistant Rhasspy-Nachrichten aufnimmt und verarbeitet, Wir machen es einfach, durch Automatisierungen.

Wir werden für jede Aktion, die wir ausführen möchten, eine Hörautomatisierung erstellen, Das einzige, was Sie beachten sollten, ist, dass der Automatisierungsauslöser ein "Ereignis" ist, und unter "Ereignistyp"’ Wir sammeln das Ereignis, das dank der Satzdatei generiert wurde (mit dem Präfix rhasspy_ ). Und als Event-Daten filtern wir das, was wir besonders hören. Wenn wir also möchten, dass sich die Heizung einschaltet, Ich erwarte dieses Ereignis mit den Attributen, die "Heizung’ und als Aktion "schaltet es sich ein", und dann die Aktionen zum Abschmecken, Ihr habt alle viel Fantasie und Dinge, an denen ihr mit Rhasspy herumbasteln könnt.

Gesamt, Was für ein langer Beitrag, aber ich hoffe, dass viele von euch euch führen können, wann immer ihr wollt, mit dem Haus zu sprechen und es zu sichern. Mikrofone oder nichts verbindet sich mit dem Internet, dass uns niemand umsonst ausspioniert… Und wir können das Weckwort an etwas anpassen, das näher kommt, und vor allem, dass es so viele Möglichkeiten hat, wie wir Ideen haben.

Ich sende euch allen eine Umarmung, Sei glücklich, Vielen Dank an alle, die diese Art von Inhalten in sozialen Netzwerken verbreiten.

Empfohlene Beiträge

Verfasser

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Zögern Sie nicht, mich zu kontaktieren, Ich werde versuchen, dir zu helfen, wann immer ich kann, Teilen ist Leben ;) . Genießen Sie Dokumente!!!