Aufgabenstellung
Im Rahmen eines Forschungsprojekts soll eine Erweiterung (auch Skill genannt) für den Sprachassistenten Mycroft programmiert werden. Dieser Skill soll es ermöglichen, über Sprachkommandos mit dem NextCloud Kalender zu interagieren. Der genaue Funktionsumfang wurde in einem Pflichtenheft festgehalten.
Während der Konzeption und Entwicklung des Mycroft Skills sind uns verschiedene Probleme und Schwierigkeiten begegnet. Ein paar davon und was wir daraus gelernt haben, wollten wir im Folgenden kurz anmerken.
Den Artikel bezüglich der Vorbereitung finden Sie hier und den Artikel bezüglich der Umsetzung hier.
Zeiteingabe
Eine Anforderung, die wir umsetzen wollten, war es, Zeitangaben für den Kalender durch die Spracheingabe für den Nutzer möglichst natürlich sein sollen. Darum war es uns wichtig, dass im Dialog auch Angaben wie „tomorrow“, „today“ und „next sunday“ möglich sind.
Dafür hatten wir zunächst selbst eine Funktion programmiert, die die Zeitangaben relativ zum heutigen Tag berechnet. Für die Angaben „tomorrow“ und „today“ war dies gut umzusetzen, doch für „next sunday“ und andere Tage wurde es schwieriger.
Nachdem wir uns ausgiebig mit dem Programmieren der Funktion beschäftigt hatten, sind wir auf eine Funtion gestoßen, die Mycroft bereits mitbringt. Diese funktioniert etwas robuster und bildet auch ein paar Sonderfälle ab, die sonnst aufwändig zu programmieren waren.
Spracherkennungsprobleme
Ein Problem, mit dem wir zu kämpfen hatten und nicht lösen konnten, war die ungenaue Spracherkennung von Mycroft. Woran genau das liegt, können wir nur vermuten. Das Mikrofon oder die von Google abgekoppelte Mycroft Version sind vermutlich das größte Problem.
Besonders bei Monats- und Zeitangaben, gab es hier enorme Schwierigkeiten. Mycroft versteht leider regelmäßig die Wörter nicht, wodurch entweder die Sprachkommandos den Intents nicht zugeordnet, oder benötigte Angaben nicht aus der Nachricht gefiltert werden können.
Darum wäre es bei einer regelmäßigen Nutzung wichtig dieses Problem anzugehen, da es die Benutzerfreundlichkeit und die natürliche Sprachinteraktion stark beeinträchtigt.