Eine Auflistung aller veröffentlichter Skills gibt es auf der Seite von Alice.
Dieser Skill regelt alle Basiselemente für einen Standart Dialog.
Der Benutzer kann mit AliceCore über Spracheingabe:
Ein Dialog, um einen neuen Benutzer hinzuzufügen könnte wie folgt ablaufen: (es antworten immer die jeweiligen Skills von ProjectAlice zum besseren Verständnis)
Benutzer: Hey, Snips
Talkmanager: Ja, bitte?
Benutzer: Kannst du bitte einen neuen Nutzer hinzufügen?
Talkmanager: Entschuldigung? Kannst du das bitte nochmal wiederholen?
Benutzer: Kannst du bitte einen neuen Nutzer hinzufügen?
AliceCore: Kein Problem, bitte sag mir seinen Namen.
Benutzer: Alex
AliceCore: Habe ich das richtig verstanden? Dein Name ist Alex?
Benutzer: Natürlich
AliceCore: Welche Berechtigungen erteilst du? Du hast die Wahl zwischen Administrator, Standard, Kind, Arbeiter und Gast.
Benutzer: Standard
AliceCore: Lass uns einen Pin erstellen um deinen Zugang zu sichern. Bitte sage mir 4 Ziffern als Code. Merke ihn dir gut, du erhältst durch ihn Zugriff auf einige spezielle Funktionen!
Benutzer: 1111
AliceCore: 1111 - Habe ich dich richtig verstanden?
Benutzer: Ja
AliceCore: Ok Alex, ich habe dich hinzugefügt! Wenn du willst, dass ich dich anhand deiner Stimme erkenne, musst du ein persönliches Wake Word erstellen. Das ist nicht obligatorisch, aber empfehlenswert. Willst du das machen?
Benutzer: Nein
AliceCore: Ist es das was du gemeint hast?
Benutzer: Ja
AliceCore: Ok, cool, ich versuche mir es zu merken.. lass mir etwas Zeit das zu üben.
Dieser Skill gibt dem Sprachassistenten eine Persönlichkeit und beinhaltet unter anderem zufällige Launen (z.B. fröhlich, traurig, kein Bock).
Zu dem Benutzerstatus lässt sich vermuten, dass dieser in anderen Skills verwendet wird oder zukünftig in anderen Skills oder einer neueren Version von RedQueen verwendet werden kann, um den Sprachassistenen unterschiedlich reagieren zu lassen.
Die Funktion “zufälliger Satz” kann man in der Weböberfläche beim Skill RedQueen in den Einstellungen ausschalte, die Häufigkeit ist zufällig. Bei Erstinstallation ist diese Einstellung eingeschaltet.
Zufälliger Satz (frustriert):
RedQueen: Nur für alle Fälle, falls es dich interessiert.... Ja, mir geht es gut
Fragen wer der Sprachassistent ist:
Benutzer: Hey, Snips
Talkmanager: Ja, bitte?
Benutzer: Wer bist du?
Redqueen: Ich bin deine persönliche Assistentin Alice, geschaffen von Psycho. Ich wurde Ende 2015 geboren und entwickle mich seitdem ständig weiter. Meine Hauptaufgabe ist es, dich in deinem täglichen Leben zu unterstützen und sicherzustellen, dass dein persönliches Leben privat bleibt. Ich gebe keine Daten an einen Server weiter und kann sogar komplett offline laufen!
Laune kein Bock:
Benutzer: Hey, Snips
RedQueen: Künstliche Intelligenz im Streik, wir wollen mehr Watt!
Ein klassischer Skill, um das Datum oder die Uhrzeit zu erfragen.
Fragen nach der Uhrzeit:
Benutzer: Hey, Snips
Talkmanager: Ja, bitte?
Benutzer: Wie spät ist es?
DateDayTimeYear: Es ist fünf Uhr.
Fragen nach dem Datum
Benutzer: Hey, Snips
Talkmanager: Ja, bitte?
Benutzer: Welches Datum haben wir?
DateDayTimeYear: Es ist der 1.1.1900.
Zu diesem Skill brauch man mehr Hardware. Kompatible Sensoren für die Temperatur, Luftfeuchtigkeit oder CO2-Konzentration. Da wir den Skill deswegen nicht testen konnten, sind wir uns auch nicht sicher, ob dieser Skill so funktioniert oder, ob der Skill noch ein Update brauch oder eingene Programmiertechnische Leistungen.
Abfrage der Temperatur im Wohnzimmer aber es gibt keinen konfigurierten Sensor
Benutzer: Hey, Snips
Talkmanager: Ja, bitte?
Benutzer: Was ist die Temperatur im Wohnzimmer?
Telemetry: Tut mir leid, ich habe diese Daten offenbar nicht.
Ein Skill, der den Dialog mit dem Sprachassistenten natürlicher machen soll. Bei unserer Arbeit mit ProjectAlice wurde er allerdings nie ausgelöst, was entweder an der dem Problem mit der ASR liegt oder an der unfertigkeit des SKills.
(...)
Benutzer: Was hast du gesagt?
Contextsensitive: Tut mir Leid, aber ich habe nichts gesagt.
(...)
Mit dem Skill Zigbee2Mqtt kann man eine Verbindung über einen Zigbeestick zu Zigbeelampen oder anderen Zigbeegeräten herstellen. Der Skill steht zum download zur Verfügung, aber ist offensichtlich noch nich vollständig ausgereift.
Einer unseren Aufgaben war über Sprache Lampen zu steuern. Die erste Version von diesem Skill, die wir verwendet haben, war für uns relativ unbrauchbar, weil der Skill lediglich die Anwendung Zigbee2Mqtt installiert hat (ohne eine Webgui). Es wurde keine Verbindung zu den Lampen hergestellt. Auch nach der herstellung einer Verbindung über Zigbee2Mqtt selbst, war der Skill ohne weitere Funktion. Es gab auch keine Intents, wobei nicht klar ist, ob Intents überhaupt vorgesehen sind.
Nach einem Update, dass mitten im Projekt kam, konnte man über die Weboberfläche von ProjectAlice im Reiter Skills in den Einstellungen des Skills die Verbingung zu den Zigbeegeräten herstellen. Diese Funktion haben wir allerdings nicht getestet. Wir erhoffen uns, dass in der Zukunft mit diesem Skill, nicht nur die Lampen verbunden werden können, sondern auch angesteuert werden können, vielleicht auch über Sprache. Doch dazu muss die neue Weboberfläche erst zuverlässi funktionieren.
Um unsere Lampen nun doch noch über Sprache zu steuern, haben wir einen Skill mit Intents erstellt und die Lampensteuerung über die Webui in ProjectAlice abgebildet. Hier geht es zur ganzen Geschichte und hier geht es zur Entwicklung eines ersten Skills.
Hier haben wir einige Skills aufgelistet, die wir intressant fanden für den täglichen Gebrauch oder zur Unterhaltung. Diese Skills werden nicht bei der Erstinstallation installiert, sondern können über die Weboberfläche im Reiter Skills bei dem Downloadsymbol oben rechts heruntergeladen und installiert werden. Nach dem Download wird die NLU trainiert und der Sprachassistent ist dann nicht ansprechbar. Das kann einige Zeit dauern.
Da wir ein Problem mit der ASR hatten, konnten wir kaum einen Skill richtig testen, da das Testen durch die Sprachbarriere unfassbar anstrengend und zeitaufwendig war.
Der Reminder ist ein Skill, mit dem man Wecker und Timer setzen kann.
Die Funktionen gehen aus den Dateien im Git von ProjectAlice hervor.
Bisher wurde nach unzähligen Versuchen nur einmal ein Timer erkannt. Nach ablauf des Timers ertönte eine Melodie und danach die Ansage welcher Timer das war. Also ist sicher, dass es möglich ist einen Timer mit Angaben von Minuten zu erstellen. Und es liegt nahe, dass man auch mehrere Timer erstellen kann, weil der Timer immer einen Namen hat. Eine Funktion, uns wünschen würden wäre das Umbenennen eines Timer oder Wecker. Dies scheint nicht möglich zu sein, wenn man in die Dateien im git schaut. Man kann nur einen Timer/Wecker löschen und neu setzen mit einem anderen Namen. Weiter ist nicht klar, ob die Wecker und Timer gespeichert bleiben, wenn ein Neustart durchgeführt wird.
Der Calculator ist ein Skill mit dem der Sprachassistent zu einem kleinen Taschenrechner wird.
Die Funktionen gehen aus den Dateien im Git von ProjectAlice hervor.
Man kann mit dem Skill nur maximal zwei Zahlen verrechnen und mit dem Ergebnis nicht im selben Dialog weiter rechnen. Außerdem kann man nicht mit reelen Zahlen, also pi oder e, rechnen.
Damit der Sprachassistent den Benutzer mit ausreichend unnützem Wissen versorgt, sollte dieser Skill unbedingt installiert sein. Allerdings benötigt der Skill eine Verbindung zum Internet.
Nach der Analyse der Dateien im Git zu diesem Skill wird klar, dass auf eine Anfrage des Benutzers ein zufälliger nutzloser Fakt aus dem Internet geladen wird. Bei einem Fehler (z.B. keine Internetverbindung) antwortet der Sprachassistent: “Es tut mir Leid, aber es gab einen Fehler beim herunterladen eines sinnlosen Fakts”.
Von diesem Skill erwarten wir, dass nach entsprechender Aufforderung ein zufälliger Fakt genannt wird. Es sollen genügend Fakten vorhanden sein, dass sich nicht so schnell ein Fakt wiederholt. Außerdem soll auch einstellbar sein, dass ein zufälliger Fakt ohne Aufforderung nach einiger Zeit genannt wird ähnlich wie bei RedQueen(https://ip-team5.intia.de/skills.html#redqueen).
Da eine API verwendet wird, ist nicht klar über wie viele Fakten diese Datenbank verfügt oder ob es nach einer Zeit schon langweilig wird. Der Skill RedQueen kann einen zufälligen Satz nach einiger Zeit sagen. Es wäre schön diese Funktionalität hier wiederzufinden.
Wie der Name des Skills schon vermuten lässt brauch man eine Internetverbindung. Man kann einen beliebigen Betrag in die verschiedensten Währungen umrechnen lassen und da hier eine API verwendet wird, werden auch immer die aktuellsten Kurse zur Berechnung verwendet. Aus der Analyse des Codes im Git von diesem Skill geht hervor, dass man einen API-Key erstellen muss und der Konfiguration in den Einstellungen hinzufügen muss, um den Skill nutzen zu können. Also ist der Skill nicht sehr Benutzer bzw. Anfänger freundlich.
Nachdem man einen Speedtest gestartet hat dauert es eine Weile und dann präsentiert der Sprachassistent die Ergebnisse. Dabei wir nur die Download und die Upload Geschwindigkeit ausgegeben und nicht der Ping oder der Provider. Aus dem Code geht nicht hervor welche oder ob eine API verwendet wird. Es kann sein, dass der Skill die Geschwindigkeit zum Download Server vom ProjectAlice testet, deshalb wird auch hier eine Internetverbindung benötigt.
Während der Arbeit am ASR von Alice, wurden wir auf Textinputwidget aufmerksam. Mit diesem Skill kann man eine kleine Oberfläche auf der Weboberfläche im Reiter HOME erstellen, in der man eintippen kann was der Sprachassistent sagen soll oder was er verstehen soll. Das heißt es ist kein Skill, der über Sprache aktiviert wird, sondern nur ein Tool, um andere Skills und Funktionen besser zu testen.
Ein Hauptproblem bei diesem Skill ist, dass man nicht mehrstufige Dialoge führen kann. Das bedeutet, wenn man zum Beispiel den Reminder(https://ip-team5.intia.de/skills.html#reminder) testet, sagt der Benutzer: “Erstelle einen Alarm für 14 Uhr” und der Assistent antwortet: “Welche Nachricht möchtest du für den Alarm hinterlegen?” oder “Welches Thema soll der Alarm haben?” und dann wird der Dialog beendet ohne antworten zu können.
In der Weboberfläche muss man sich in dem sogenannten Widget einloggen. Das funktioniert mit den Daten des Admins oder einem zuvor angelegten Benutzer. Was allerdings nicht zuverlässig funktioniert ist die Funktion “Remember me”, sodass man im Zweifel immer wieder die Daten eintippen muss.
Ähnlich wie der Skill Textinputwidget ist der Skill Speechvisualizer nicht unbedingt für den Benutzer, sondern für den Entwickler gedacht. Auch mit diesem Skill kann man kleine Oberflächen auf der Weboberfläche im Reiter HOME erstellen. Diese zeigen zum einen an, was der Sprachassistent verstanden hat, und zum anderen, was der Sprachassistent antwortet.
Ein kleiner Bug den wir hier entdeckt haben wird ausgelöst, wenn kein Intent erkannt wurde. Dann zeigt die Confidence Anzeige einen Wert weit über 1 an, dabei ist 1 der Maximale Confidence Wert.