Apple SiriKit – Sprachsteuerung für Ihre App

Hey Siri, wer bist du?

Siri heißt Apples intelligente Sprachsteuerung, die 2011 mit dem iPhone 4s eingeführt wurde. Zwar gab es zuvor eine rudimentäre Sprachsteuerung, mit der die Musikwiedergabe gesteuert und Anrufe getätigt werden konnte, jedoch beschränkte sich diese auf Schlüsselwörter, wie „spiele Wiedergabeliste“, „spiele nächstes Lied“, „anhalten“, „ruf …“, „wähle …“ etc.. Mit Siri wurde eine komplexe Spracherkennung eingeführt, die Sätze in ihre Bestandteile zerlegt und daraus eine Intention ableitet. Solche Intentionen werden daraufhin auf Apples eigene Apps abgebildet und bei unbekannten Intentionen an die Google Suche weitergegeben.

Derzeit unterstützt Siri folgende Intentionen:

  • Anrufe tätigen
  • Mails senden und vorlesen
  • Nachrichten senden und vorlesen
  • Orte finden und zu diese navigieren
  • Freunde finden
  • Erkennen von gespielten Songs
  • Rechnen
  • Allgemeine Fragen
  • Uhrzeit / Wecker / Timer
  • Wetterinformationen
  • Termine erstellen und vorlesen
  • Aktienkurse / Währungsumrechnung
  • Einheiten umrechnen
  • Sportergebnisse und -ereignisse
  • Haussteuerung
  • Musiksteuerung
  • Fotosuche
  • Erinnerungen
  • iPhone Einstellungen bearbeiten

Diese Liste ist bei weitem nicht vollständig. Für weitere Informationen reicht es Siri die Frage zu stellen: „Wie kannst du mir helfen?“.

Hey Siri, sende eine Nachricht mit Brieftaube

Seit Beginn an stand Siri in der Kritik nur hauseigene Apple-Apps zu unterstützen, wodurch diese ein Alleinstellungsmerkmal besaßen, an das andere Apps nicht herankamen. So sendet Siri Nachrichten nur als SMS oder iMessage – WhatsApp, Skype, Facebook und ähnliche Apps blieben außen vor. Selbiges betrafen Apps, um VoIP-Anrufe zu tätigen, wie z.B. Skype, Viber, WhatsApp, Hangout,… Siri unterstützte nur GSM- und Facetime-Gespräche.

Mit iOS 10 wurde SiriKit eingeführt – das Framework mit dem Siri in die eigene App eingebunden werden kann. Damit versteht Siri nun Sätze wie „Sende eine Nachricht mit WhatsApp an Max“ oder „Rufe meine Mutter mit Skype an“ oder „Starte mein Workout mit Runtastic“. Das Einbinden von SiriKit in eine bestehenden App ist vergleichsweise simple.

Siri: „An wen soll ich die Nachricht senden?“

Aus einem gegebenen Satz extrahiert Siri eine Intention – z.B. die Intention „sende eine Nachricht“. Überlicherweise werden Nachrichten mit der iOS Nachrichten-App versendet, es sei denn es wurde ein App erwähnt – z.B. „… mit Brieftaube“. Eine Nachricht benötigt mindestens einen Empfänger und die Nachricht selbst. Diese Informationen werden automatisch von Siri identifiziert und an die eigene App weitergegeben. Die App bekommt damit eine Liste aller erkannten Empfänger übergeben und teilt Siri im Hintergrund mit:

  • Kein gültiger Empfänger: der Benutzer soll den Empfänger noch einmal nennen
  • Zu viele Empfänger gefunden: der Benutzer soll aus einer Liste einen auswählen
  • Passt! Weiter geht’s.

Das gleiche Prozedere durchläuft auch die erkannte Nachricht. Sobald diese von der App als gültig erklärt wurde, fragt Siri ob die Nachricht nun gesendet werden soll und damit ist die Intention erfolgreich ausgeführt.

Das zu lösende Problem: Unterschiedliche Intentionen erfordern unterschiedliche Informationen bevor die Intention erfolgreich ausgeführt werden kann. So benötigt das Tätigen eines Anrufs nur einen bekannten Kontakt oder eine gültige Telefonnummer. Und das Erstellen eines Termins benötigt ein Datum, eine Uhrzeit und eine Beschreibung. u.s.w.. Durch diesen Umstand muss Siri für jede erkannte Intention eine Entscheidung treffen können, ob die Intention mit den gegebenen Informationen ausgeführt werden kann – der Entwickler selbst muss nur die Gültigkeit der erkannten Informationen auswerten, was das kleinste Problem ist.

Ein System, das alle möglichen Intentionen erkennt und die erforderten Informationen zuverlässig identifizieren kann, ist für den aktuellen Stand der Technik zu komplex, weswegen Apple entschieden hat zunächst nur sechs Intentionen für Drittanbieter-Apps bereitzustellen:

  • Anrufe tätigen
  • Nachrichten senden und vorlesen
  • Geld überweisen
  • Fahrgelegenheiten buchen
  • Workouts starten
  • Fotos suchen

Hier besteht Nachholbedarf, denn Wetter-, Navigations-, Kalender- und viele weitere Apps möchten später auch per Spracheingabe gesteuert werden können. Apple hat bereits die Unterstützung weiterer Intentionen in Aussicht gestellt.

Hey Siri, wann kommen weitere Intentionen?

Ich nutze Siri gerne, da es in einigen Bereichen schneller bzw. im Auto der einzige Interaktionsweg mit dem iPhone ist. Siri ist auch der Grund, weswegen ich Nachrichten noch immer per SMS sende. Von daher freue ich mich sehr über alternative Apps, die jetzt auch von der Sprachsteuerung Gebrauch machen können.

Als wir uns im Team mit SiriKit beschäftigten, kam die Idee eine App zu entwickeln, um bei Namics Räume buchen zu können. Naja, welche verfügbare Intention könnte hier passen? Über Umwege höchstens die zum Senden einer Nachricht: „Hey Siri, sende eine Nachricht an Namics mit RaumbuchungsApp buche den Raum Lomo“. Dieser Workaround lässt sich nicht einmal aussprechen. Damit sind wir mit unserer ersten Idee sofort an die Grenzen von SiriKit gestoßen. Wir warten mit voller Erwartung auf weitere Intentionen.

Als Entwickler hat mich vor allem die Einfachheit beeindruckt, mit der Siri in die eigene App integriert werden kann. Mit wenigen Mausklicks und ohne eigenen Code zu schreiben hat Siri erkannt, dass mit meiner App Nachrichten versendet werden können. WOW.

Fazit

Apples angestrebte Ziel: Siri soll der persönliche Assistent werden, den man schnell Aufgaben diktieren/deligieren kann. Mit SiriKit überlässt Apple nun auch den Entwickler die Weiterentwicklung des persönlichen Assistenten, was viele tolle Funktionen mit sich bringen wird und für noch mehr Schwung sorgen wird – von daher definitiv der Richtige Weg.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>