Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cortana, verbessere meine App!

Cortana, verbessere meine App!

Vortrag von Alexander Witkowski.
Gehalten auf dem Dev Day 2015 in Dresden.

www.devday.de

Mit Windows Phone 8.1 wurde die persönliche Assistentin Cortana vorgestellt und seit Dezember 2013 ist sie auch in Deutschland als Alpha Version verfügbar. Die Gerüchteküche brodelte und nun wissen wir Cortana kommt mit Windows 10 auf den Desktop und bald auch auf die Xbox? Doch was für den Nutzer ein nettes Gimmick ist, kann für den Appentwickler einen entscheidenden Vorsprung darstellen. Wie Cortana funktioniert und wie sie zum Aufrufen und zur Interaktion mit der eigenen App verwendet werden kann, zeigt der Vortrag mit Hilfe verschiedener Beispiele. Zusammen mit Cortana wird das notwendige Knowhow mit reichlich Humor vermittelt.

More Decks by Software Architektur Entwickler Community Dresden

Other Decks in Technology

Transcript

  1. Cortana  Cortana ist der Codename für den neuen Sprachassistenten

    in Windows  Jeder der die Halo Spiele kennt, kennt auch Cortana als „smart artificial intelligence“  Erkennt natürliche Sprache  Antwortet mit Humor  Beta Software
  2. Cortana in Windows Phone  Vorgestellt auf der Build 2014

     Seit dem 5.12. Alpha auch in Deutschland
  3. Funtktionen von Cortana  Notizbuch  Telefon- und Terminorganisation. 

    Individuelle Nachrichtenquelle.  Tagesplanung in Echtzeit.  Intelligente Erinnerung.  Wahrsagen ;)
  4. Cortana in der eigenen App  (Universal) Apps können sich

    im System registrieren um eigene Sprachbefehle zu behandeln  Die App wird mit den gesprochenen Informationen aktiviert  Verfügbar für Win 10 Universal Apps mit XAML oder Java Script und für Windows Phone 8.1 Apps Quelle: windowsblog.at
  5. Architektur der Sprachaktivierung Unsere Anwendung Voice Command Definition (VCD) Microsoft

    Speech Plattform Service Adventure Works, show my trip to Dresden Windows Speech Platform (Device) X Adventure Works Anrufen Nachrichten Erinnerungen Email Voice Command
  6. Was kann ich Cortana sagen?  Cortana was kann ich

    sagen? Systembefehle & Befehle von Apps  Beispiele für die eigne App definieren  Icon in Auflistung kann in Non-Silverlight Apps nicht verändert werden.
  7. Sprache oder Text?  Cortana unterscheidet zwischen Tippen und Sprechen.

    Auf Sprache antwortet Cortana mit Sprache Wenn geschrieben Wort antwortet Cortana nur mit Text  Die eigene App sollte auch unterscheiden. SpeechRecognitionSemanticInterpretation .Properties[“commandMode”] == “voice”
  8. VoiceCommandDefinition (VCD)  CommandSet (1-15)  CommandPrefix (0-1)  Example

    (1)  Command (1-100) …  PhrasseList (0-10) …  PhraseTopic (0-10) …
  9. Voice Command Definition <?xml version="1.0" encoding="utf-8" ?> <VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.2"> <CommandSet

    xml:lang="en-us" Name="CommandSet_en-us"> <CommandPrefix> Adventure Works, </CommandPrefix> <Example> Show trip London </Example> <Command Name="showTripToDestination"> <Example> Show trip to London </Example> <ListenFor RequireAppName="BeforeOrAfterPhrase"> show [my] trip to {destination} </ListenFor> <Feedback> Showing trip to {destination}</Feedback> <Navigate /> </Command> …
  10. VCD - Command  Beschreibt einen gesprochenen Befehl  Command

    Example (1) ListenFor (1-10) Feedback (1) Navigate (1)
  11. VCD - PhraseList  Liste von Keywords die in Sprachbefehlen

    erkannt werden.  z.B. Kategorien  PhraseList Item (0-2000)
  12. VCD - PhraseTopic  Kontext zum verbessern freier Spracheingaben 

    PhraseTopic  Subject (1) "Date/Time", "Addresses", "City/State", "Person Names", "Movies", "Music", "Phone Number"  Attribut Scenario  "Natural Language", "Search", "Short Message", "Dictation", "Commands", "Form Filling“
  13. VCD – Datei registrieren (C#/XAML)  Die VoiceCommandDefinition Datei muss

    mindestens einmal registriert werden  Keine Information ob VCD bereits registriert ist  VoiceCommandManager.InstallCommand SetsFromStorageFileAsync (storageFile);  Capability: Microphone
  14. default.html <meta name="msapplication-cortanavcd" content="https://contoso.com/vcd.xml"/> <script src="voice.js"></script> VCD – Datei registrieren

    (HTML/JS) if (typeof Windows != 'undefined') { var activation = Windows.ApplicationModel.Activation; Windows.UI.WebUI.WebUIApplication.addEventListener("activated", function (args) { if (args.kind === activation.ActivationKind.voiceCommand) { var speechRecognitionResult = args.result; var properties = speechRecognitionResult.SemanticInterpretation.Properties; //... } });
  15. VCD – Zur Laufzeit erweitern (C#)  PhraseLists können zur

    Laufzeit ersetzt werden Erweitern nicht möglich
  16. Aktivierung der App durch Cortana  Application.OnActivated  IActivatedEventArgs.Kind ==

    VoiceCommand  IActivatedEventArgs => VoiceCommandActivatedEventArgs  SpeechRecognitionResult (Result Property)
  17. Aktivierung der App durch Cortana  Erkennen des Commands SpeechRecognitionResult.RulePath[0]

     Auflösen der Label-Platzhalter SpeechRecognitionResult. SemanticInterpretation. Properties[key][0]
  18. Aufgaben in Cortana erledigen  Neu bei Windows 10 Universal

    Apps  Aufgaben erledigen ohne die App zu starten  Voice Command Background Service  API für den Workflow  UI Templates  Sprach Interaktionsmodell
  19. Aktivierung der App durch Cortana Web Service Microsoft Speech Recognition

    Service VCD Your App Go to Adventure Works Here are your upcoming trips A Yosemite August 15th San Francisco May 29th
  20. Text To Speech  Guidelines: Nur mit Sprache Antworten wenn

    die anfrage auch per Sprache erfolgte  SpeechSynthesizer & MediaElement