Wasserkocher und Sprachassistenten. Der Beginn einer großen Freundschaft



Was haben wir zu einem bestimmten Zeitpunkt in der GA- Welt? Bekannte Tatsache: Jedes der großen IT-Unternehmen verfügt über ein eigenes Tool für die Arbeit mit Smart Homes. Und jeder Anbieter bietet seine eigene API für diejenigen, die an Integration interessiert sind. In der Anfangsphase werden Entwickler sogar für neue Fähigkeiten (Aktionen, Fähigkeiten usw. - gemäß der Terminologie des Anbieters) bezahlt.

Laut unseren Experten ist Amazon Alexa der bisher bequemste und praktischste Service. Sie hat mehr Möglichkeiten zur detaillierten Qualifizierung als Google Assistant, Yandex "Alice", Mail.Ru "Maroussia", Tinkoff "Oleg" und andere. Für Alexa ist ein Gerät eine parametrische virtuelle Einheit, wodurch die Fähigkeiten für jedes Gerät einzeln angepasst werden können. Zusätzlich zur Wassertemperatur können Sie beispielsweise Verbrauchsmaterialien angeben, die der Assistent bei Amazon zum Kauf anbietet. Leider unterstützt Alexa die russische Sprache derzeit nicht und arbeitet nicht auf dem Territorium der Russischen Föderation, so dass diese GA für einen russischen Benutzer nutzlos ist. Bei Google und Yandex ist der Assistent „natürlicher“ - er empfängt und antwortet auf Befehle in der „menschlichen“ Sprache und kann einen Dialog mit dem Benutzer führen, wodurch die Verwendung dieser GA angenehmer wird. Der einzige schwerwiegende Nachteil von Google war, dass seine Aktionen die russische Sprache nicht unterstützten. Ab dem 24. Juli 2019 arbeiten Google Actions jedoch in „Telefonen“ auf Russisch, sodass Kollegen diesen Nachteil beseitigt haben.

Das ist alles in Ordnung. Und wenn wir ein Gerät mit mehreren GA integrieren wollen?

Es ist möglich. Verwenden des Geräts.

Ein Gerät ist eine Entität mit ihrem Verhalten im System. Dies ist ein gemeinsames Prinzip für alle Anbieter. Und hier lohnt es sich anzuhalten, hier beginnt der ganze Spaß. Die Unterschiede liegen in den Ansätzen. Zum Beispiel versuchen Google und Yandex, das Technologie-Management zu standardisieren. Das heißt, jetzt muss nicht für jedes einzelne Gerät Code geschrieben werden, sondern ein Programm für die gesamte Serie reicht aus. Und selbst wenn sich die Firmware ändert, müssen Sie den Code einmal ändern, was sehr praktisch ist. Unser Unternehmen ist bereits in Google, Yandex und Amazon integriert. Die Technik hört Alice , Alex und Googles Assistent zu. Früher haben wir das in Sprachassistenten gezeigt .

Woher kamen die Sprachassistenten?


Eines der fortschrittlichsten Spracherkennungssysteme der Welt gehört Google. Seine Geschichte begann im Jahr 2002. Das Unternehmen veröffentlichte die Sprachsuche, auf deren Grundlage der Google-Assistent entwickelt wurde. 2016 wurde er bei der Präsentation von Google I / O vorgestellt. Google Home ist eine der "Oberflächen" für Google Assistant. Jetzt wird die Genauigkeit der Spracherkennung ihrer GA auf 95% geschätzt und ist den Menschen fast unterlegen.

Der Sprachassistent von Alexa wurde 2014 von Amazon eingeführt. Dort wurde auch die Amazon Echo-Smart-Spalte vorgestellt, mit der eine große Anzahl von Geräten in einem Smart Home gesteuert werden kann.

Yandex SpeechKit - Yandex Spracherkennungssystem. Es wird in mehr als 400 Anwendungen verwendet. Das Unternehmen bettet seine GA - Alice - auch in Browser und elektronische Geräte ein. Das russische Unternehmen führte seine GA im Jahr 2017 ein und bereits im Herbst 2018 brachte Yandex seine intelligente Säule Yandex.Station auf den Markt.

Unsere Experten sagen, dass bis zum hundertsechsundfünfzigsten Jahr ...


Wir scherzen bisher nur bis 2020. Ein bisschen über Statistik:

  1. Im Jahr 2017 wurden weltweit rund 33 Millionen sprachgesteuerte Geräte registriert.
  2. Westliche Experten bezeichneten die Sprachsuche als einen der drei wichtigsten SEO-Trends im Jahr 2017 ;
  3. Für das Jahr 2018 arbeitet Google Assistant auf 400 Millionen Geräten weltweit. Und diese Zahl wächst nur;
  4. Laut dem Global Web Index verwenden 25% der 16- bis 24-Jährigen die Sprachsuche von Mobilgeräten aus.
  5. Nach den Prognosen von Comscore werden bis 2020 50% der Anfragen per Spracheingabe gestellt.
  6. Laut einer Studie von WalkerSands aus dem Jahr 2018 kaufte jeder fünfte Benutzer eines intelligenten Lautsprechers von Amazon damit, und ein dritter plante, dies nächstes Jahr zu tun.
  7. Laut einer PWC-Studie würden 71% der Benutzer, die im Internet suchen, lieber Stimmen als manuell eingeben.

Wie Sie verstehen können, nimmt die Tendenz zur Verwendung von GA zu, was darauf hindeutet, dass es Zeit ist, einen Anbieter zu nehmen und Ihren eigenen Assistenten zu starten. Für uns ist der Schlüssel dazu die Fähigkeit, intelligente Geräte zu steuern, wodurch sich SkyFriend von anderen Assistenten unterscheidet.

Und lasst uns integrieren!


ABER unsere Aufgabe ist es auch, mit dem bestehenden Anbieteransatz zu arbeiten und ihn weiter an unser spezifisches Technologiekontrollprotokoll anzupassen. Wir folgen dem Weg der Standardisierung, der praktischen Anwendung und nehmen das Gerät als eine Reihe von Fähigkeiten wahr: Jeder Wasserkocher kann Wasser kochen (Fähigkeit), es kann es auch auf die gewünschte Temperatur erwärmen (Fähigkeit), diese Temperatur für eine bestimmte Zeit aufrechterhalten usw. Zum Beispiel. Der Befehl „Ein / Aus“ ist Standard für jedes Gerät. Die Aufgabe besteht darin, diesen Befehl vom Dienst auf unser Protokoll zu übertragen. Was ist die Besonderheit unseres Protokolls? Es verbindet verschiedene Sprachassistenten (jetzt drei, in Zukunft alle großen) und ermöglicht es allen, mit Geräten zu arbeiten, auch gleichzeitig. Kommunikation ist eins zu viele. Die Frage ist nur, wie genau wir unser Protokoll an alle Ansätze anpassen werden.

Mal sehen. Separate Projekte für jede GA sind:

  • Erhöhtes Personal
  • Viel Code und Vermächtnis in der Zukunft;
  • Unfähigkeit zu skalieren.

Wenn neue Assistenten auf den Markt kommen, müssen Personal und Arbeitsvolumen proportional erhöht werden. Es ist logisch, dass wir diese Option abgelehnt haben. Trotz der unterschiedlichen Ansätze für jeden Sprachassistenten können sie jedoch etwas gemeinsam finden - mit was sie im Grunde arbeiten, sind Geschicklichkeit, Eigenschaft, Geschicklichkeit. Die Namen sind unterschiedlich, aber das Wesentliche ist dasselbe. Die Aufgabe besteht also darin, Ihre „Fähigkeiten“ zu entwickeln, die von den Assistenten wahrgenommen werden. In Zukunft müssen Sie nur noch neue Anbieter hinzufügen, wodurch das Problem der Skalierung gelöst wird. Wir werden auch bedenken, dass ein erheblicher Teil unserer Ausrüstung BLE-Fahrzeuge verwendet, was architektonische Merkmale vorschreibt.

Wir haben zwei Mikrodienste entwickelt, die paarweise arbeiten.



Die erste ist die Befehlsebene. Seine Aufgabe: Konvertierung (Mapping) zwischen der Hersteller-API und unserem Protokoll durchzuführen. Das funktioniert so: Eine spezielle Anfrage für einen Assistenten ist das Mapping für unser Skill-Mapping für ein Geräteprotokoll. Mit diesem Ansatz ist es einfach, neue Fähigkeiten hinzuzufügen: Die Zuordnung wird für das endgültige R4S-Protokoll durchgeführt - der Code wird an den zweiten Dienst übertragen. Das letzte Element kann ausgeschlossen werden, wenn ein Befehl über WLAN übertragen wird.

Die zweite Dienst- oder Transportschicht wird verwendet für:

  1. Richten Sie eine Sitzung mit einem Client-Gateway ein.
  2. Herstellen und Aufrechterhalten einer Bluetooth-Verbindung;
  3. Empfang / Übertragung von Befehlen vom ersten Dienst.

Dieser Dienst ist Teil einer übergeordneten Einheit: BT-Gerät plus Gateway-Vermittler, die nach dem Prinzip arbeitet: Befehle über das Internet empfangen - über BT senden. Drahtlose Verbindungen können unzuverlässig sein. Warum? Der Funkkanal kann durch Umgebungsparameter begrenzt werden - dicke Betonwände usw. ... Infolgedessen können die Geräte auf elementare Weise „abfallen“, sodass die Aufrechterhaltung einer stabilen Verbindung zu einer wichtigen Aufgabe für die Transportschicht wird.



Die Verbindungsrichtlinie kann unterschiedlich sein:

1. Kontinuierliche Kommunikationsunterstützung.

Vorteile : minimale Verzögerung bei der Ausführung von GA-Befehlen.
Nachteile : teuer für Verkehr und Stromverbrauch; Die Anzahl der gleichzeitig verbundenen Geräte ist begrenzt (in dieser Generation Bluetooth 4.0 / 4.2 - sechs, in Bluetooth 5.0 bis zu zwanzig). Außerdem sind zusätzliche Serverressourcen erforderlich.

2. Verbindung auf Anfrage.

Vorteile : Das Verbinden erfordert fast keinen Verkehr und keine Gebühr.
Nachteile : Eine hohe Verzögerung bei der Ausführung von Befehlen und die Ausführung selbst sind nicht garantiert (die Verbindung kann "abbrechen" oder nicht erfolgreich sein). Mit diesem Ansatz passen wir nicht zusammen, während wir auf die Antwort des GA warten. Die Sitzung endete und das Ende.

Die Frage bleibt auch - der Befehl wurde empfangen und ausgearbeitet, ABER was mit der Verbindung weiter zu tun ist: trennen oder weitermachen. Beachten Sie, dass Apple HomeKit genauso funktioniert, wenn Sie mit BLE-Endgeräten arbeiten (über Apple TV oder iPad als Gateway). Es sieht so aus: Wenn Sie zum ersten Mal versuchen, einen Befehl zu senden, dauert der Vorgang ziemlich lange (oder besser, für den Benutzer erkennbar), aber nachfolgende Befehle werden fast sofort ausgeführt. Nachdem die Arbeit des Benutzers mit dem Gerät abgeschlossen ist, „richtet“ das Betriebssystem die Sitzung nach einer angemessenen Zeit ein und der Vorgang wird wie neu wiederholt.

Das ist jedoch noch nicht alles.


Schwierigkeit 1 . Gateway-Routing.



Wenn sich mehrere Gateways im Raum befinden, stellt sich die Frage, mit welchem ​​Gateway verbunden werden soll und welches Gateway mit welchem ​​Gerät verbunden ist. Jetzt funktioniert alles nach dem Prinzip - wer Erfolg hat, ist verbunden. Die Implementierung ist nicht immer erfolgreich, da das nächste (und daher zuverlässigere) Gateway in dem verwendeten Zeitfenster belegt sein kann. Dann wird derjenige verbunden, der frei und fähig ist. Dies geschieht ohne Rücksicht auf die Qualität der Kommunikation. Daher ist es wichtig, eine Hierarchie und ein Arbeitsschema zu erstellen, damit sich der Benutzer so wohl wie möglich fühlt.

Schwierigkeit 2 . Viele Benutzer.

Dies ist eine Situation, in der mehrere Benutzer gleichzeitig ein Gateway oder Gerät verwenden können. Natürlich mit einem hohen Maß an Sicherheit. Zum Beispiel von verschiedenen GAs oder von GAs und Benutzertelefonen. Ein Schwarm von Fragen: Welches Gerät muss zuerst eingeschaltet werden, wenn sich die GA-Befehle widersprechen, welcher Befehl Priorität hat und früher ausgeführt werden muss usw. Teilweise wird unser Problem durch den Redis-Dienst gelöst - eine Datenbank, in der Benutzersitzungen, Gerätestatus und Transceiver gespeichert sind Befehle und Serving-Datenbus zwischen dem ersten und dem zweiten Dienst. Aber hier hört die Lösung des Problems auf.

Was haben wir getan Wir haben SkyFriend gemacht. Dies ist unsere eigene Entwicklung, ein Sprachassistent für Technologiemanagement, der auch die russische Sprache unterstützen wird. Ein wesentliches Merkmal unserer GA ist, dass sie für die direkte Interaktion mit der Smart Ready for Sky-Technologie ohne zusätzliche Instrumente geschärft ist. Das Gerät ist zwei in einem - der Assistent wird mit dem Gateway kombiniert, das Informationen entweder über die Befehle, die der Benutzer von seinem Smartphone sendet, oder direkt per Sprache empfängt. Außerdem verfügt SkyFriend über zusätzliche Funktionen, mit denen es mit den bereits vorhandenen konkurrieren kann. Auf Anfrage kann er Erinnerungen aktivieren, die Geolokalisierung des Benutzers bestimmen, nach Informationen auf Wikipedia suchen, Filme empfehlen, Toast machen, Nachrichten lesen, Fragen beantworten, Zeit und Wetter in jeder Stadt der Welt melden, mit dem Benutzer Mysteries and Cities spielen Witze machen. Der Kauf von Tickets und die Bestellung eines Taxis befindet sich noch im Alpha-Test. Und das ist nur ein Teil der Funktionalität.

In jüngerer Zeit kündigte Google die Arbeit seiner Kolumne an einer ähnlichen Architektur an - das Ausführungsskript wird direkt in die Google Home-Spalte geladen. Auf der Seite des Benutzers zu gewinnen bedeutet, die Zeit zu verkürzen, die zum Ausführen von Befehlen benötigt wird. Sie müssen es nicht an den Server des Geräteherstellers senden, es fliegt über denselben Kommunikationskanal direkt zur Spalte vom Google-Server und wird dort ausgeführt.

Google unterstützt jedoch noch keine anderen Transporte - Bluetooth, ZigBe, Z-Wave, RF usw. direkt auf der Säule, und SkyFriend unterstützt Bluetooth 5.0.

Was haben wir noch übrig? Arbeiten Sie mit Systemressourcen - fügen Sie Speicher, Prozessorleistung usw. hinzu. Und wir sind bereit, Benutzern eine neue GA-Qualität anzubieten.

Was können wir abschließend sagen?


GA ist ein Trend, es ist praktisch, es ist praktisch. Das Thema ist neu, umfassend, es gibt viele Fragen, die immer noch schwer zu lösen sind. Besonders alleine. Deshalb laden wir Sie zu einer Diskussion ein.

Was wird als nächstes passieren? Und dann gibt es unseren neuen Artikel über SkyFriend-Architektur. Wir werden alles erzählen und zeigen. Aber dann.

PS Vorschläge und Bewertungen können in den Kommentaren hinterlassen werden.

Source: https://habr.com/ru/post/de461363/


All Articles