WINDOWS PHONE 8
SPEECH: PARLIAMO CON
LA NOSTRA APP
Michele Locuratolo
Nokia Developer Champion
Microsoft MVP
AGENDA
Nuove funzionalità riconoscimento vocale

_1

Uso dei comandi vocali

_2

Riconoscimento vocale e sintesi nelle app...
NUOVE FUNZIONALITÀ
RICONOSCIMENTO VOCALE
•

•
•

VoiceCommand: viene gestita a livello di sistma operativo e
permette di i...
SCHEMA INTERAZIONE
SCENARI D’USO
•
•
•
•

Aprire un app ad una pagina specifica (“mostrami il meteo di oggi”)
Dettare appunti vocali
Interagi...
VOICE COMMAND: STEP BY STEP
1.
2.
3.
4.

Specificare i comandi nel VoiceCommandDefinition
Registrare il file VCD (al primo...
VOICE COMMAND OVERVIEW
•
•
•

Da una qualunque schermata sul device, si può pronunciare il nome
dell’applicazione ed il co...
VOICE COMMAND OVERVIEW
•
•
•
•
•

I comandi sono contenuti nel file VoiceCommandDefinition (VCD)
Supporto per Dynamic Para...
ANATOMIA VCD (STEP 1)
Lingua
Esempio da
mostrare nella
UI

Nome leggibile
con cui aprire
l’app
Comando
Pagina di
destinazi...
VOICE COMMAND UI
REGISTRAZIONE VCD (STEP 2)
using Windows.Phone.Speech.VoiceCommands;
// Carica il fine VCD App.xaml.cs
private async void ...
GESTIONE COMANDI (STEP 3)
private void MainPage_Loaded(object sender, RoutedEventArgs e){
// Was the page launched by voic...
AGGIORNAMENTO PARAMETRI (STEP 5)
// Recupera il commandset
VoiceCommandSet memosVcs =
VoiceCommandService.InstalledCommand...
CAPABILITIES
Required capabilities
ID_CAP_MICROPHONE
ID_CAP_SPEECH_RECOGNITION
DEMO

Nokia Internal Use Only
IN APP DIALOG
•
•
•
•

Sintesi vocale (Text to Speech)
Riconoscimento vocale
Buit-In UI per feedback
«grammatiche» predefi...
DEMO TTS

Nokia Internal Use Only
TTS
private async void playNote_click(object sender, EventArgs e) {
SpeechSynthesizer synth = new SpeechSynthesizer();
awa...
TTS
Sintesi vocale di testi normali
Sintesi Speech Synthesis Markup Language (SSML) via
SpeakSsmlAsync
Eventi:

•
•

•
•
•...
DEMO SSML

Nokia Internal Use Only
RICONOSCIMENTO VOCALE
Riconoscimento vocale integrato
Possibilità di utilizzo di custom grammar
Built-in UI personalizzabi...
SPEECHRECOGNIZERUI
ListenText

definisce il messaggio da visualizzare nell’interfaccia di riconoscimento vocale (ad
esempi...
SPEECHRECOGNIZERUI
private async void recNote_click(object sender, EventArgs e) {
SpeechRecognizerUI sr = new SpeechRecogn...
CONFIDENCE
•

•
•

Il livello di confidence, accessibile dalla property
result.RecognitionResult.TextConfidence
Può avere ...
DEMO SPEECH
RECOGNITION

Nokia Internal Use Only
SPEECH RECOGNITION GRAMMAR
•
•

•
•
•

•

Set di parole specifiche interne all’applicazione
Limitazione del range di ricer...
SPEECH RECOGNITION GRAMMAR
2 set predefiniti su Windows Phone
Default: Short message dictation (SMD)
WebSearch

Esempio
my...
CUSTOM GRAMMAR COMANDI
//Istanziamo il sintetizzatore
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
//Definiamo...
IN-APP DIALOG
•
•

Possiblità di interagire con l’applicazione usando la voce
Merge di comandi e speech recognition
DEMO IN-APP
DIALOG

Nokia Internal Use Only
CONCLUSIONI
•
•
•
•

•

Ricco set di API per riconoscimento vocale
Possibilità di avviare l’applicazione con la
voce
Text ...
RISORSE
•
•

•

Documentazione ufficiale: http://msdn.microsoft.com/enus/library/windowsphone/develop/jj206958(v=vs.105).a...
Thank you!

© 2012 Nokia. All rights reserved.
© 2012 Microsoft. All rights reserved.

12/17/2013

Nokia Internal Use Only
Upcoming SlideShare
Loading in …5
×

Windows Phone 8 speech: parliamo con la nostra app

1,209 views
1,087 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,209
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Windows Phone 8 speech: parliamo con la nostra app

  1. 1. WINDOWS PHONE 8 SPEECH: PARLIAMO CON LA NOSTRA APP Michele Locuratolo Nokia Developer Champion Microsoft MVP
  2. 2. AGENDA Nuove funzionalità riconoscimento vocale _1 Uso dei comandi vocali _2 Riconoscimento vocale e sintesi nelle app _3
  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. 4. SCHEMA INTERAZIONE
  5. 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. 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. 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. 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. 9. ANATOMIA VCD (STEP 1) Lingua Esempio da mostrare nella UI Nome leggibile con cui aprire l’app Comando Pagina di destinazione Parametri
  10. 10. VOICE COMMAND UI
  11. 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. 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. 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. 14. CAPABILITIES Required capabilities ID_CAP_MICROPHONE ID_CAP_SPEECH_RECOGNITION
  15. 15. DEMO Nokia Internal Use Only
  16. 16. IN APP DIALOG • • • • Sintesi vocale (Text to Speech) Riconoscimento vocale Buit-In UI per feedback «grammatiche» predefinite e custom
  17. 17. DEMO TTS Nokia Internal Use Only
  18. 18. TTS private async void playNote_click(object sender, EventArgs e) { SpeechSynthesizer synth = new SpeechSynthesizer(); await synth.SpeakTextAsync(_selectedNote.Text); } 
  19. 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. 20. DEMO SSML Nokia Internal Use Only
  21. 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. 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. 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. 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. 25. DEMO SPEECH RECOGNITION Nokia Internal Use Only
  26. 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. 27. SPEECH RECOGNITION GRAMMAR 2 set predefiniti su Windows Phone Default: Short message dictation (SMD) WebSearch Esempio myReco.Grammars.AddGrammarFromPredefinedType ("mySearch",SpeechPredefinedGrammar.WebSearc);
  28. 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. 29. IN-APP DIALOG • • Possiblità di interagire con l’applicazione usando la voce Merge di comandi e speech recognition
  30. 30. DEMO IN-APP DIALOG Nokia Internal Use Only
  31. 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. 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. 33. Thank you! © 2012 Nokia. All rights reserved. © 2012 Microsoft. All rights reserved. 12/17/2013 Nokia Internal Use Only

×