Windows Phone 8 speech: parliamo con la nostra app
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Windows Phone 8 speech: parliamo con la nostra app

on

  • 1,408 views

Microsoft Windows Phone ha un sistema di riconoscimento vocale molto sofisticato. Ci permette di impartire comandi al sistema operativo, leggere e dettare SMS, effettuare chiamate etc. In Windows ...

Microsoft Windows Phone ha un sistema di riconoscimento vocale molto sofisticato. Ci permette di impartire comandi al sistema operativo, leggere e dettare SMS, effettuare chiamate etc. In Windows Phone 8 è stata introdotta, per noi sviluppatori, la possibilità di utilizzare i comandi vocali anche nelle nostre applicazioni. In questa sessione vedremo come implementare il riconoscimento vocale nelle nostre app. / Microsoft Windows Phone has a very sophisticated speech-recognition system. Users can give commands to the operating system, read and dictate text messages, make phone calls, etc. With Windows Phone 8, developers have the ability to use voice commands in applications. In this webinar, you’ll find out how to implement voice recognition in your apps.

Statistics

Views

Total Views
1,408
Views on SlideShare
1,408
Embed Views
0

Actions

Likes
0
Downloads
20
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Windows Phone 8 speech: parliamo con la nostra app Presentation Transcript

  • 1. WINDOWS PHONE 8 SPEECH: PARLIAMO CON LA NOSTRA APP Michele Locuratolo Nokia Developer Champion Microsoft MVP
  • 2. AGENDA Nuove funzionalità riconoscimento vocale _1 Uso dei comandi vocali _2 Riconoscimento vocale e sintesi nelle app _3
  • 3. NUOVE FUNZIONALITÀ RICONOSCIMENTO VOCALE • • • VoiceCommand: viene gestita a livello di sistma operativo e permette di interagire con la nostra app dall’esterno (quando l’app non è in esecuzione Speech Recognition: è il motore vero e proprio di riconoscimento vocale, quello che permette di “tradurre” l’input vocale in testo Text to speech (TTS): è il sintetizzatore vocale. Quello che ci permette di far “parlare” la nostra applicazione
  • 4. SCHEMA INTERAZIONE
  • 5. SCENARI D’USO • • • • Aprire un app ad una pagina specifica (“mostrami il meteo di oggi”) Dettare appunti vocali Interagire con l’applicazione (“leggimi la nota 5”) … etc
  • 6. VOICE COMMAND: STEP BY STEP 1. 2. 3. 4. Specificare i comandi nel VoiceCommandDefinition Registrare il file VCD (al primo avvio) Gestire i comandi all’avvio dell’applicazione Aggiornare, se necessario, i parametri dinamicamente
  • 7. VOICE COMMAND OVERVIEW • • • Da una qualunque schermata sul device, si può pronunciare il nome dell’applicazione ed il comando da eseguire. L’app viene lanciata passando il comando ed i parametri in querystring Built-UI per feedback, discoverability etc
  • 8. VOICE COMMAND OVERVIEW • • • • • I comandi sono contenuti nel file VoiceCommandDefinition (VCD) Supporto per Dynamic Parameter Supporto per più lingue Il VCD viene istanziato una sola volta all’avvio dell’applicazione I parametri possono essere aggiornati dinamicamente
  • 9. ANATOMIA VCD (STEP 1) Lingua Esempio da mostrare nella UI Nome leggibile con cui aprire l’app Comando Pagina di destinazione Parametri
  • 10. VOICE COMMAND UI
  • 11. REGISTRAZIONE VCD (STEP 2) using Windows.Phone.Speech.VoiceCommands; // Carica il fine VCD App.xaml.cs private async void Application_Launching(object sender, LaunchingEventArgs e){ try { // Specificare il path del file Uri uri = new Uri("ms-appx:///VoiceCommandDefinition.xml"); await VoiceCommandService.InstallCommandSetsFromFileAsync(uri); } catch (Exception ex) { // Gestire l’eccezione } }
  • 12. GESTIONE COMANDI (STEP 3) private void MainPage_Loaded(object sender, RoutedEventArgs e){ // Was the page launched by voice commands? if (this.NavigationContext.QueryString.ContainsKey("voiceCommandName")){ string voiceCommandName = this.NavigationContext.QueryString["voiceCommandName"]; switch (voiceCommandName) { case “ShowNotes": string noteID = this.NavigationContext.QueryString["num"]; // Mostra la nota selezionata break; // altro default: // No match break; } } }
  • 13. AGGIORNAMENTO PARAMETRI (STEP 5) // Recupera il commandset VoiceCommandSet memosVcs = VoiceCommandService.InstalledCommandSets[“DemoCommandSet”]; // Aggiorna l’elenco dei parametri(any time) await memosVcs.UpdatePhraseListAsync("num", new string[] {"1", "2", "3", "4", "5"}); Aggiornamento dinamico per nuovi elementi relativi all’applicazione (ad esempio, ID delle note, titoli etc)
  • 14. CAPABILITIES Required capabilities ID_CAP_MICROPHONE ID_CAP_SPEECH_RECOGNITION
  • 15. DEMO Nokia Internal Use Only
  • 16. IN APP DIALOG • • • • Sintesi vocale (Text to Speech) Riconoscimento vocale Buit-In UI per feedback «grammatiche» predefinite e custom
  • 17. DEMO TTS Nokia Internal Use Only
  • 18. TTS private async void playNote_click(object sender, EventArgs e) { SpeechSynthesizer synth = new SpeechSynthesizer(); await synth.SpeakTextAsync(_selectedNote.Text); } 
  • 19. TTS Sintesi vocale di testi normali Sintesi Speech Synthesis Markup Language (SSML) via SpeakSsmlAsync Eventi: • • • • • • • SpeechStarted BookmarkedReached API per selezionare la voce da usare http://msdn.microsoft.com/en-us/library/hh361578
  • 20. DEMO SSML Nokia Internal Use Only
  • 21. RICONOSCIMENTO VOCALE Riconoscimento vocale integrato Possibilità di utilizzo di custom grammar Built-in UI personalizzabile (esempio etc) Result object con • • • • • • • • Alternates Confidence Semantics Etc…
  • 22. SPEECHRECOGNIZERUI ListenText definisce il messaggio da visualizzare nell’interfaccia di riconoscimento vocale (ad esempio: detta la tua nota) ExampleText è il classico testo di esempio da mostrare all’utente ReadoutEnabled se impostato a true, il testo riconosciuto verrà riletto dal sistema. E’ molto utile per dare un feedback all’utente che, molto probabilmente, non stà guardando il display del dispositivo ShowConfirmation mostra l’eventuale conferma di avvenuto riconoscimento. Se impostato a false, il testo riconosciuto non verrà riletto
  • 23. SPEECHRECOGNIZERUI private async void recNote_click(object sender, EventArgs e) { SpeechRecognizerUI sr = new SpeechRecognizerUI(); sr.Settings.ListenText = "Cosa scrivo?"; sr.Settings.ExampleText = "far vedere la demo"; sr.Settings.ReadoutEnabled = true; sr.Settings.ShowConfirmation = true; SpeechRecognitionUIResult result = await sr.RecognizeWithUIAsync(); if (result.ResultStatus == SpeechRecognitionUIStatus.Succeeded) { tbxNote.Text = result.RecognitionResult.Text; } }
  • 24. CONFIDENCE • • • Il livello di confidence, accessibile dalla property result.RecognitionResult.TextConfidence Può avere i valori High, Medium, Low e Rejected In caso di confidence != High, possiamo accedere alle alternative usando il metodo GetAlternates()
  • 25. DEMO SPEECH RECOGNITION Nokia Internal Use Only
  • 26. SPEECH RECOGNITION GRAMMAR • • • • • • Set di parole specifiche interne all’applicazione Limitazione del range di ricerca delle parole Miglioramento accuratezza Latenza ridotta No UI di conferma Molto usato per comandi come Salva, Annulla etc.
  • 27. SPEECH RECOGNITION GRAMMAR 2 set predefiniti su Windows Phone Default: Short message dictation (SMD) WebSearch Esempio myReco.Grammars.AddGrammarFromPredefinedType ("mySearch",SpeechPredefinedGrammar.WebSearc);
  • 28. CUSTOM GRAMMAR COMANDI //Istanziamo il sintetizzatore SpeechSynthesizer synthesizer = new SpeechSynthesizer(); //Definiamo i comandi SpeechRecognizer recognizerCommand = new SpeechRecognizer(); var command = new[] { "salva", "annulla", "ripeti" }; recognizerCommand.Grammars.AddGrammarFromList("commands", command); //Richiediamo il comando da eseguire await synthesizer.SpeakTextAsync("puoi dire salva ripeti o annulla"); SpeechRecognitionResult commandresult = await recognizerCommand.RecognizeAsync(); string commandResultText = commandresult.Text.ToLower(); switch (commandResultText) { case "salva"
  • 29. IN-APP DIALOG • • Possiblità di interagire con l’applicazione usando la voce Merge di comandi e speech recognition
  • 30. DEMO IN-APP DIALOG Nokia Internal Use Only
  • 31. CONCLUSIONI • • • • • Ricco set di API per riconoscimento vocale Possibilità di avviare l’applicazione con la voce Text to Speech Riconoscimento vocale In-App dialog per poter interagire dinamicamente con l’app
  • 32. RISORSE • • • Documentazione ufficiale: http://msdn.microsoft.com/enus/library/windowsphone/develop/jj206958(v=vs.105).aspx SSML: http://www.w3.org/TR/speech-synthesis/ Lista articoli in italiano: http://www.michelelocuratolo.com/speech-api-inwindows-phone-8-2/ © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved. 12/17/2013 Nokia Internal Use Only
  • 33. Thank you! © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved. 12/17/2013 Nokia Internal Use Only