Skillübersicht

Last updated: March 14, 2021

Eine Auflistung aller veröffentlichter Skills gibt es auf der Seite von Alice.

Skills, die bei der Installation von Alice installiert werden

AliceCore

Dieser Skill regelt alle Basiselemente für einen Standart Dialog.

Funktionen

Der Benutzer kann mit AliceCore über Spracheingabe:

  • in einem Dialog mit Ja oder Nein antworten (Es wird auch natürlich, nope oder jep erkannt)
  • in einem Dialog antworten welche Location gemeint ist
  • die Sprache ändern
  • Alice updaten
  • Alice für eine Zeit lang deaktivieren
  • ein Satellit oder andere Alice Hardware hinzufügen und auf die Art der Hardware antworten
  • in einem Dialog mit einer Zahl antworten
  • in einem Dialog mit einem Namen antworten
  • ein Wort buchstabieren
  • ein Neues Wakeword trimmen
  • einen neuen Benutzer hinzufügen
  • einem Benutzer eine Rolle zuweisen
  • ein Wakeword benutzen
Beispiele

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.

RedQueen

Dieser Skill gibt dem Sprachassistenten eine Persönlichkeit und beinhaltet unter anderem zufällige Launen (z.B. fröhlich, traurig, kein Bock).

Funktionen
  • Fragen wer der Sprachassistent ist.
  • Einen guten Morgen oder gute Nacht wünschen.
  • Den Benutzerstatus ändern.
  • Zufällige Sätze sagen je nach Laune des Sprachassistenten.

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.

Beispiele

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!

DateDayTimeYear

Ein klassischer Skill, um das Datum oder die Uhrzeit zu erfragen.

Funktionen
  • Fragen nach dem Tag.
  • Fragen nach dem Datum.
  • Fragen nach der Uhrzeit.
  • Fragen nach dem Jahr.
Beispiele

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.

Telemetry

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.

Funktionen
  • Abfrage der Temperatur (oder eines anderen Sensors).
  • Sensoren können verschiedenen Orten zugewiesen werden.
  • Einstellen verschiedener Grenzwerte.
  • Alarmierung falls ein Grenzwert überschritten wird.
Beispiele

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.

Contextsensitive

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.

Funktionen
  • In einem Dialog auf Nachfrage des Benutzers das zuletzt gesagte wiederholen.
  • Etwas über Sprache ändern oder löschen (in den Einstellungen o. ä.).
Beispiele
(...)
Benutzer: Was hast du gesagt?
Contextsensitive: Tut mir Leid, aber ich habe nichts gesagt.
(...)

Zigbee2Mqtt

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.

Frühere Versionen

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.

Neuere Versionen und Erwartungen

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.

Unsere Arbeit

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.

Weitere nützliche Skills zum Download

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.

Reminder

Der Reminder ist ein Skill, mit dem man Wecker und Timer setzen kann.

Funktionen

Die Funktionen gehen aus den Dateien im Git von ProjectAlice hervor.

  • Einen Timer mit Angabe von Minuten oder Stunden stellen.
  • Einen Wecker mit Angaben einer Uhrzeit und einem Datum stellen.
  • Mehrere Wecker und Timer, die gleichzeitig laufen, einstellen.
  • Mit einer Melodie oder einem Signalton den Ablauf eines Timers oder Wecker bekannt geben.
  • Die Wecker und Timer haben einen Namen.
  • Einen Wecker oder Timer löschen.
  • Der Benutzer kann eine Abfrage machen, wie viel Zeit noch bleibt bis Wecker/Timer xy klingelt.
Erfahrungen

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.

Calculator

Der Calculator ist ein Skill mit dem der Sprachassistent zu einem kleinen Taschenrechner wird.

Funktionen

Die Funktionen gehen aus den Dateien im Git von ProjectAlice hervor.

  • Grundrechenarten
  • Potenz, Wurzel
  • Sinus, Cosinus, Tangenz
  • Modulo
Analyse Talk und Dialogue Files

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.

RandomUselessFacts

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.

Funktionen

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).

Wünsche

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.

FreeCurrencyConverterDotCom

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.

SpeedTest

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.

Skills, die für Entwickler nützlich sind

TextInputWidget

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.

SpeechVisualizer

Ä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.