Letztes Update 2021/04/11 14:46
Audio- und Sprachfunktionen sind ein wichtiger Aspekt jeder Smart-Home-Lösung, da dies eine sehr natürliche Art der Interaktion mit dem Benutzer ist.
openHAB verfügt über eine sehr modulare Architektur, die viele verschiedene Anwendungsfälle ermöglicht. Im Kern gibt es die Vorstellung eines Audiostreams. Audio-Streams werden von audio sources
(Audioquellen) bereitgestellt und von audio sinks
verbraucht.
Audio-Streams sind im Wesentlichen Byte-Streams mit einem bestimmten Audioformat. Sie müssen nicht in ihrer Größe begrenzt sein, d.H. es ist zulässig, kontinuierliche Ströme zu haben, z.B. die Eingabe von einem Mikrofon oder von einem Internetradiosender.
Audioformate definieren den Container (z.B. WAV), die Codierung, die Bitrate, die Abtastfrequenz und -tiefe sowie die Bitreihenfolge (Little oder Big Endian).
Audioquellen sind Dienste, die Audiostreams erzeugen können. Sie können verschiedene Formate unterstützen und auf Anfrage einen Stream in einem angeforderten Format bereitstellen. Typische Audioquellendienste sind Mikrofone. Typischerweise wird von ihnen ein kontinuierlicher Strom erwartet.
Audio Sinks (Senken) sind Dienste, die Audio-Streams bestimmter Formate akzeptieren. Typischerweise wird erwartet, dass diese den Audiostream abspielen, d.H. Sie sind eine Art Lautsprecher oder Mediengerät.
Text-to-Speech Dienste (TTS) ähneln Audioquellen hinsichtlich der Fähigkeit, Audiostreams zu erstellen. Der Unterschied besteht darin, dass sie eine Zeichenfolge als Eingabe verwenden und diese Zeichenfolge mit einer bestimmten Stimme zu einem gesprochenen Text zusammensetzen. TTS-Dienste können Informationen zu den von ihnen unterstützten Stimmen und dem Gebietsschema bereitstellen, mit dem diese Stimmen verknüpft sind. Jede Stimme unterstützt genau ein Gebietsschema.
Speech-to-Text Dienste (STT) ähneln Audio-Senken, geben den Stream jedoch nicht einfach wieder, sondern konvertieren ihn in eine einfache Zeichenfolge. Sie bieten Informationen zu unterstützten Formaten und Gebietsschemas.
Da Klartext von einem STT-Dienst oft nicht sehr nützlich ist, gibt es zusätzlich das Konzept eines menschlichen Sprachdolmetschers:
HLI
Ein Human Language Interpreter verwendet eine Zeichenfolge als Eingabe. Daraus werden dann Aktionen abgeleitet (z.B. das Senden von Befehlen an Geräte) und / oder Antworten mit einer Zeichenfolge, welche die Möglichkeit eröffnet, Konversationen zu realisieren. Da ein solcher Interpreter nicht direkt mit Audiostreams verbunden ist, sondern nur mit Zeichenfolgen arbeitet, kann dies die Grundlage für jede Art von Assistent sein, z.B. für Chat-Bots, welche die Konsole, XMPP, Twitter oder andere Messaging-Dienste verwenden.
Anwendungen können dynamisch auswählen, welche Dienste verwendet werden sollen, sodass unterschiedliche Senken für unterschiedliche Anwendungsfälle verwendet werden können. Die Standardeinstellungen können als Konfiguration für alle diese Dienste festgelegt werden, falls eine Anwendung keinen bestimmten Dienst anfordert.
Die Übersetzung steht unter der EPLv2 Lizenz.