So macht Schnitzeljagd mit künstlicher Intelligenz mehr Spaß

Schnitzeljagden gibt es seit Generationen. Das traditionelle Spiel sieht ungefähr so ​​aus:

  • Ein Anführer schreibt eine Liste mit Gegenständen auf einen Zettel.
  • Die Teams verbringen dann den Nachmittag damit, die Umgebung - entweder im Freien oder in Innenräumen - nach diesen Objekten zu durchsuchen.
  • Sie streichen die gefundenen Elemente von der Liste ab und fahren dann fort, bis die Liste vollständig ist.

Einfache Regeln. Aber viel Spaß.

Das Spiel mit AI modernisieren

Ich habe eine App für die Alexa-Plattform von Amazon geschrieben, die Schnitzeljagden modernisiert. Es nutzt die neueste verfügbare Technologie - einschließlich Tools für künstliche Intelligenz wie Bild- und Spracherkennung.

Die Prämisse des Spiels ändert sich nicht: Finden Sie innerhalb einer Stunde zehn zufällige Gegenstände in Ihrem Zuhause oder in Ihrer Nachbarschaft. Nur dass es Alexa ist, die das Spiel erleichtert.

Meine App kann kostenlos aktiviert werden, wenn Sie eine der Millionen Personen sind, die eine Amazon Alexa besitzen. In der folgenden Beschreibung wird beschrieben, wie die einzelnen AI-Tools eingesetzt werden, einschließlich der neuen AWS-Services - Rekognition und Polly. Die Fertigkeit heißt Schnitzeljagd. Hier ist eine Vorschau, wie es funktioniert:

Künstliche Intelligenz # 1 - Alexa

Das Starten des Spiels beginnt mit dem Aufruf der Alexa-Fertigkeit. Jeder mit einem Gerät gibt die folgende Anforderung an.

Alexa, bitte Scavenger Hunt, ein neues Spiel zu starten.

Jeder der Millionen von Alexa-Besitzern kann diese Anfrage mit seiner Stimme stellen. Die Sprache ist subtil. Die Wortauswahl unterscheidet sich, wenn diese Absicht von verschiedenen Geschlechtern, Altersgruppen, ethnischen und sozialen Demografien getroffen wird. Es ist die Kraft der künstlichen Intelligenz, die diese subtilen Unterschiede der Wortwahl und des Dialekts in der einfachen Aufforderung zum Spielstart entschlüsselt.

Wie funktioniert das Spiel?

Das Spiel beginnt damit, dass Ihre Alexa verschiedene Technologien ausführt. Hier ist die Architektur der verschiedenen verwendeten Dienste und Schnittstellen:

Die Alexa-Plattform übernimmt die Sprachverarbeitung und übersetzt die Sprachabsicht in tex. Der Lambda-Dienst hostet die Verarbeitungslogik und der Code wird in NodeJS geschrieben. Das Verfolgen des Spiels auf der Plattform erfolgt über einen eindeutigen vierstelligen Spielcode, der dem Benutzer zurückgegeben wird. Der Skill identifiziert die zu erkennenden Elemente und speichert sie in einem Datensatz in einer DynamoDB-Tabelle.

Die Logik in Lambda zeichnet auch den Zeitstempel für den Beginn des Spiels auf. Dies fungiert als virtuelle Stoppuhr, die die sechzig Minuten, in denen das Spiel gespielt werden soll, herunterzählt. Der Benutzer kann jederzeit zurückgehen und Alexa um eine Aktualisierung der Punktzahl bitten. Alexa antwortet mit der verbleibenden Zeit und einem aktuellen Verzeichnis der gesuchten Gegenstände.

Künstliche Intelligenz # 2 - Polly

Ich genieße es, meine Alexa-Anwendungen mit einer großartigen Sprachbenutzererfahrung auszustatten. Qualität unterscheidet Spiele auf dieser wachsenden Plattform. Dies ist von entscheidender Bedeutung, da jetzt mehr als 10.000 Alexa-Fähigkeiten zur Auswahl stehen.

Das Entwickeln exzellenter Sprachbenutzeroberflächen ist mit dem Erstellen einer Radiosendung vergleichbar. Ein Großartiger erzeugt mehr Aufregung als die Verwendung einer singulären Stimme. Es enthält Jingles und Sounds, die Aktionen simulieren. Das Schreiben dieser Anwendungen erfordert sowohl das Schreiben von Code als auch eine interessante Handlungserzählung.

Gute Geschichten sind keine Monologe. Dieser Ansatz erfordert eine erweiterte Codierung, um mehr als ein Zeichen einzuschließen. Hier habe ich den Polly-Dienst genutzt, der die normale Alexa-Stimme ergänzt. So sieht das „Skript“ für die Einführungsnachricht aus. Dies wird beim Starten eines neuen Spiels abgespielt und zeigt, wie sich die Komponenten gegenseitig beeinflussen.

Zum Einspielen von Musik müssen kurze MP3-Clips aufgenommen werden, die Sounds und Jingles enthalten. Ich nehme Musik auf meinem Desktop auf und lade sie dann in einen S3-Bucket hoch. Das nächste ist, wie man viele Stimmen innerhalb der Fertigkeit hat, wie Alexa eine hat. Um dieses Audioerlebnis zu schaffen, ist es eine Mischung aus Techniken. Polly kann 47 verschiedene Stimmen in 24 verschiedenen Sprachen erzeugen. Es ist einfach zu bedienen und eine kurze Aufnahme dauert einige Minuten. Beginnen Sie, indem Sie in die Konsole gehen und den Polly-Dienst aufrufen.

Es gibt viele Stimmen in der englischen Sprache zur Auswahl. Ich habe in der Dropdown-Liste Englisch, Großbritannien ausgewählt und das Optionsfeld für eine weibliche Stimme mit dem Namen Amy aktiviert. Als nächstes tippte ich mein Skript in das Textfeld und Polly wandelte es in Sprache um. Die Option unten rechts speichert die Aufnahme in eine MP3-Datei. Ich habe die Datei in einem S3-Bucket abgelegt, auf den der Alexa-Skill zugreifen kann.

Stimmen mit SSML integrieren

Im vorherigen Abschnitt wurde beschrieben, wie Sie die einzelnen Teile für das Skript erstellen. Jetzt ist es Zeit, sie zusammen zu ziehen. Für die Alexa-Plattform muss jeder Skill eine API haben, die einem Standard-Nachrichtenmodell entspricht. In diesem Modell repräsentieren verschiedene Attribute die Merkmale der Benutzerinteraktion. Das audioOutput-Attribut des Antwortobjekts ist das, was Alexa dem Benutzer vorliest.

Um das Attribut mit allen vier Teilen zu erstellen, müssen Sie ein Markup erstellen, das folgendermaßen aussieht:


  

Das Markup verweist auf jede MP3-Datei, die an einem öffentlich zugänglichen Ort im Internet bereitgestellt wird. Auf diese Weise fasst ein Browser Bilder und Text mithilfe von HTML in einer einzigen Glasscheibe zusammen. Alexa erstellt die gleiche Audiomontage mit SSML.

Künstliche Intelligenz # 3 - Wiedererkennung

Das Spiel erfordert einen Scorekeeper, daher spielt ein anderer Dienst diese Rolle. Das Gehirn unseres modernen Beamten ist der AWS-Erkennungsdienst. Dadurch werden Bilder gescannt, alle sichtbaren Elemente identifiziert und für das Spiel nachverfolgt. Hier finden Sie Einzelheiten zur unterstützenden Technologie.

Ereignisgesteuerte Bildverarbeitung

Bilder werden über die Website scavengerskill.com in einen S3-Eimer hochgeladen. Der Bucket ist so eingerichtet, dass für jedes neu hinzugefügte Objekt ein Ereignis ausgelöst wird. Dieses Ereignis führt eine Lambda-Funktion aus und ruft die Rekognitions-API auf, um das Bild zu scannen. Die Antwort vom API-Aufruf enthält die erkannten Elemente. Die Funktion schreibt das Detail in eine DynamoDB-Tabelle und stellt es dem Alexa-Skill zur Verfügung.

Hier ist zum Beispiel ein Foto von einem Spiel und die entsprechende Antwort von der Rekognition-API.

{
 "CaptureDt": "2017–04–16",
 "CaptureTm": "21:45:40",
 "GameId": "9180",
 "ImageId": "9180 / upload_13277b04a3c001948f3e570580f377c4.JPG",
 "Labels": [
   {"Vertrauen": 98.8132629395, "Name": "Couch"},
   {"Vertrauen": 98.8132629395, "Name": "Möbel"},
   {"Vertrauen": 85.2093963623, "Name": "Lampe"},
   {"Vertrauen": 85.2093963623, "Name": "Tischlampe"},
   {"Vertrauen": 83.6216506958, "Name": "Kaffeetisch"},
   {"Vertrauen": 83.6216506958, "Name": "Tabelle"},
   {"Vertrauen": 66.3723068237, "Name": "Esstisch"},
   {"Vertrauen": 54.6450958252, "Name": "Hartholz"},
   {"Vertrauen": 54.6450958252, "Name": "Holz"},
   {"Vertrauen": 52.6244163513, "Name": "Getränk"},
   {"Vertrauen": 52.6244163513, "Name": "Trinken"},
   {"Vertrauen": 52.0414428711, "Name": "Lampenschirm"},
   {"Vertrauen": 50.595413208, "Name": "Esszimmer"},
   {"Vertrauen": 50.595413208, "Name": "Innen"},
   {"Vertrauen": 50.595413208, "Name": "Raum"}
 ]
}

Die Antwort enthält eine Reihe von Beschriftungen für das Foto sowie ein Konfidenzintervall für jedes Foto. In diesem Spiel suchte ich nach einer „Lampe“ und der Dienst identifizierte sie mit 85% iger Sicherheit auf dem Foto. Der Scorekeeper hat es mir gutgeschrieben!

Amazon Commoditizes Image Processing

Der Wert des Erkennungsdienstes liegt in seiner Einfachheit. Amazon hat die Modelle für maschinelles Lernen bereits darauf trainiert, viele Objekte zu erkennen. Alles, was ich tun muss, um den Service zu nutzen, ist die API mit der Adresse des Objekts aufzurufen, das gescannt werden soll. Das macht einen sehr leistungsstarken Service einfach und kostengünstig. Wenn ich 1.000 Bilder scanne, kostet es mich 1 US-Dollar. Auf diese Weise kann ich mich auf die Erstellung der Benutzererfahrung konzentrieren, einschließlich des aufregenden Gameplays.

Fazit

Ich spiele gerne diese moderne Version des Schnitzeljägers mit meiner Familie. Es macht Spaß, im Garten herumzulaufen, Fotos von Dingen im Haus und in der Nachbarschaft zu machen und dann bei Alexa nachzusehen, zu welchen Gegenständen sie passen. Bitte probieren Sie es aus und lassen Sie mich wissen, was Sie denken!

"Oh die Orte wo du hingehen wirst! Es macht Spaß!
Es gibt Punkte zu erzielen. Es gibt Spiele zu gewinnen.
Und die magischen Dinge, die man mit diesem Ball machen kann
machen Sie zum erfolgreichsten Gewinner von allen. “
- Dr. Seuss, oh, die Orte, an die du gehen wirst!