SlideShare a Scribd company logo
Template designed by
BING e Windows Store App
Massimo Bonanni
massimo.bonanni@tiscali.it
@massimobonanni
codetailor.blogspot.com
Template designed by
Template designed by
brought to you by
Template designed by
Mi occupo di progettazione e sviluppo applicazioni con
tecnologie Microsoft da sempre.
Fondatore e presidente della community DomusDotNet
(www.domusdotnet.org)
Microsoft Certified Professional
Microsoft MVP dal 2011 nella categoria VB.NET
Ambassador Intel per Perceptual Computing
chi sono
Template designed by
BING Developer Center e i servizi offerti da BING
Speech Recognition
App Linking
Recap
agenda
Template designed by
http://www.bing.com/dev
BING Developer Center
Template designed by
Le funzionalità di Speech Recognition offerte dalla piattaforma BING sono disponibili sia
per Windows 8 che per Windows 8.1.
L’indirizzo di riferimento è :
http://www.bing.com/dev/en-us/speech
Per utilizzare le funzionalità di Speech
Recognitionè necessario:
1. Sottoscrivere un “abbonamento” al servizio
BING
2. Utilizzare le API contenute negli assembly
forniti da BING
BING Speech Recognition
Template designed by
Per poter utilizzare le API client di Speech Recognition è necessario
sottoscrivere un abbonamento all’indirizzo:
https://datamarket.azure.com/dataset/bing/speechcontrol
Attualmente è disponibile un
abbonamento gratuito con 500.000
transazioni (cioè operazioni di
riconoscimento vocale con il server)
per mese.
Non è disponibile per i live id italiani.
Il servizio BING
Template designed by
Per utilizzare i servizi BING sono necessari i parametri ClientID e SecretClient
per l'autenticazione.
Per ottenere questi parametri è sufficiente registrare la nostra App nel portale:
https://datamarket.azure.com/developer/applications
ClientID e SecretClient
Template designed by
Il controllo XAML per Windows 8.x è disponibile nella Visual
Studio Gallery all’indirizzo
http://visualstudiogallery.msdn.microsoft.com/521cf616-
a9a8-4d99-b5d9-92b539d9df82
Non è disponibile all’interno della
funzionalità “Extensions and Updates…”
di Visual Studio 2013 per il solo fatto di
essere marcato per Visual Studio 2012
pur essendo per Windows 8.1 
BING Speech Recognition Control
Template designed by
Per utilizzare le API è necessario:
• Referenziare la dll Bing.Speech (la quale referenzia, a sua volta, l’assembly
“Microsoft Visual C++ 2013 Runtime Package”);
• Modificare il file di manifest per
abilitare le capability “Internet Client”
e “Microphone”;
• Aprire il file di manifest utilizzando un
editor XML (basta utilizzare l’opzione
contestuale “Open with…” di
Visual Studio) e aggiungere 
Abilitare il progetto
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path>
<ActivatableClass ActivatableClassId="Microsoft.Speech.VoiceService.MSSRAudio.Encoder"
ThreadingModel="both" />
</InProcessServer>
</Extension>
<Extension Category="windows.activatableClass.proxyStub">
<ProxyStub ClassId="5807FC3A-A0AB-48B4-BBA1-BA00BE56C3BD">
<Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path>
<Interface Name="IEncodingSettings" InterfaceId="C97C75EE-A76A-480E-9817-D57D3655231E" />
</ProxyStub>
</Extension>
<Extension Category="windows.activatableClass.proxyStub">
<ProxyStub ClassId="F1D258E4-9D97-4BA4-AEEA-50A8B74049DF">
<Path>Microsoft.Speech.VoiceService.Audio.dll</Path>
<Interface Name="ISpeechVolumeEvent" InterfaceId="946379E8-A397-46B6-B9C4-FBB253EFF6AE" />
<Interface Name="ISpeechStatusEvent" InterfaceId="FB0767C6-7FAA-4E5E-AC95-A3C0C4D72720" />
</ProxyStub>
</Extension>
</Extensions>
Template designed by
La classe SpeechRecognizer è lo strumento essenziale per
le funzionalità di Speech Recognition.
Il metodo RecognizeSpeechToTextAsync() prende in carico
lo stream proveniente dal microfono, interagisce con il
servizio BING e restituisce l’eventuale risultato analizzato.
La classe SpeechRecognizer
Dim result = Await speechRecognizer.RecognizeSpeechToTextAsync()
If result.TextConfidence <> SpeechRecognitionConfidence.Rejected Then
Me.ResultText.Text = result.Text
Else
Me.ErrorText.Text = "Rejected"
End If
Template designed by
La classe SpeechRecognitionResult contiene il risultato di un’analisi da
parte del servizio di Speech Recognition di BING.
Abbiamo a disposizione:
• TextConfidence : indica l’accuratezza (stimata) del risultato. Se non è
stato riconosciuto nulla si ha il valore Rejected;
• Text : contiene il testo riconosciuto
Possiamo ottenere anche le interpretazioni alternative grazie al metodo
GetAlternates().
Gestire il risultato
Template designed by
Uno dei dogma delle NUI recita che l’utente deve essere avvertito del
fatto che una funzionalità Natural (come lo Speech Recognition) è
attiva.
L’SDK dello Speech Recognition di BING mette a disposizione la classe
SpeechRecognizerUx (controllo XAML) che fornisce un’interfaccia
standard per avvisare l’utente che il microfono è aperto e l’app è in
ascolto.
Interfaccia standard
Template designed by
Utilizzare il controllo SpeechRecognizerUx (contenuto nell’assembly
Bing.Speech.Xaml.SpeechRecognizerUx) è molto semplice:
• Aggiungere il controllo nello XAML;
• Impostare la proprietà SpeechRecognizer con un’istanza della classe
SpeechRecognizer:
Nel momento in cui viene richiamato il metodo
RecognizeSpeechToTextAsync(), l’interfaccia verrà automaticamente
visualizzata.
Interfaccia standard
SpeechControl.SpeechRecognizer = speechRecognizer
Template designed by
La classe SpeechRecognizer mette a disposizione gli eventi:
• AudioCaptureStateChanged: viene sollevato quando cambia lo stato della sessione di
riconoscimento vocale. L’enumerazione SpeechRecognizerAudioCaptureState
dell’argomento dell’evento fornisce informazioni sullo stato della sessione (ad esempio
Thinking quando la piattaforma sta elaborando un audio);
• AudioLevelChanged: viene sollevato quando l’utente varia il volume dell’audio catturato dal
microfono;
• RecognizerResultRecieved: viene sollevato ogni volta che la piattaforma fornisce un
risultato preliminare di riconoscimento vocale nello stato di Thinking. Tramite la proprietà
IsHypothesis possiamo sapere se si tratta di un risultato preliminare o finale.
Usando opportunamente questi eventi possiamo implementare la nostra interfaccia utente.
Interfaccia Custom
demo
Speech Recognition
Template designed by
App Linking è, in una frase,
Link your app to search results
BING App Linking
Template designed by
• More discoverable: permette ad un maggior numero di
persone di conoscere la nostra app semplicemente inserendo
il link all’interno delle ricerche di Windows 8.1 e Windows
Phone 7.x/8;
• Deeper engagement: l’utente può “navigare” dai risultati di
ricerca direttamente all’interno della nostra app rendendo
l’esperienza utente più ricca e complete;
• Easy and free: seguite la sessione e vedrete 
BING App Linking
Template designed by
Due possibili scenari:
• App Linking: il link all’interno dello
Smart Seach di Windows 8.1 apre
semplicemente la nostra app;
• Deep Linking: il link apre la nostra
app ad una precisa pagina o
mostrando un particolare
contenuto.
App Linking – Come funziona
Esempio di App Linking –
Wikipedia
Template designed by
Per attivare la modalità più “semplice”:
• La nostra app deve essere già pubblicata nello store;
• E’ necessario connettersi al BING Webmaster Portal
(https://ssl.bing.com/webmaster/configure/app/linking) e
aggiungere la nostra app come se fosse una “Connected
Page”
App Linking – Website to App
http://msdn.microsoft.com/en-us/library/dn614167.aspx
Template designed by
App Linking – Website to App
Template designed by
Per abilitare il Deep Linking è necessario:
• Aggiungere del markup nelle pagine web;
• Implementare il deep linking nell’app (e, quindi,
pubblicarla);
• Registrare l’app per il deep linking all’interno del BING
Webmaster Portal
App Linking – Deep Linking
Template designed by
Se vogliamo utilizzare il <body> dell’HTML:
App Linking – Deep Linking
applicationId e
packageFamilyName
dell’app che vogliamo
abilitare per il deep linking
Parametri da passare all’app
nel momento in cui viene
lanciata a seguito del click
all’interno dello Smart
Search
http://msdn.microsoft.com/en-us/library/dn614166.aspx
Template designed by
Se vogliamo, invece, utilizzare l’<head> della pagina:
App Linking – Deep Linking
applicationId e
packageFamilyName
dell’app che vogliamo
abilitare per il deep linking
Parametri da passare all’app
nel momento in cui viene
lanciata a seguito del click
all’interno dello Smart
Search
http://msdn.microsoft.com/en-us/library/dn614166.aspx
Template designed by
La nostra app deve essere in grado di elaborare l’attivazione
con i parametri:
App Linking – Deep Linking
http://msdn.microsoft.com/en-us/library/dn614164.aspx
Template designed by
Per completare la procedura e’ necessario abilitare, a livello
di BING Webmaster Portal, il deep linking
App Linking – Deep Linking
http://msdn.microsoft.com/en-us/library/dn614161.aspx
Template designed by
Per testare la correttezza dei metatag aggiunti al nostro sito,
possiamo utilizzare il BING AppLinking Verification Tool
App Linking – Deep Linking
http://bingdevcenter.blob.core.windows.net/download/AppLinkingTestTool/setup.exe
Template designed by
BING Developer Center
http://www.bing.com/dev
Bing Speech Recognition Control for Windows 8.1
http://visualstudiogallery.msdn.microsoft.com/521cf616-a9a8-4d99-b5d9-92b539d9df82
Bing Speech Recognition Control for Windows 8
http://visualstudiogallery.msdn.microsoft.com/7a054b83-f890-41b5-909b-5d849e1a32b6
MSDN - The Bing Speech Recognition Control
http://msdn.microsoft.com/en-us/library/dn434583.aspx
Guest Post: BING Speech Recognition nelle Windows Store app
http://blogs.msdn.com/b/italy/archive/2013/11/21/guest-post-bing-speech-recognition-nelle-windows-store-app.aspx
BING App Linking
http://www.bing.com/dev/en-us/applink
MSDN – Bing App Linking
http://msdn.microsoft.com/en-us/library/dn614167.aspx
Recap
Template designed by
Q&A
Template designed by
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Per contattarmi
massimo.bonanni@tiscali.it
Grazie

More Related Content

DotNetCampus 2014 - BING e Windows Store App

  • 1. Template designed by BING e Windows Store App Massimo Bonanni massimo.bonanni@tiscali.it @massimobonanni codetailor.blogspot.com Template designed by
  • 3. Template designed by Mi occupo di progettazione e sviluppo applicazioni con tecnologie Microsoft da sempre. Fondatore e presidente della community DomusDotNet (www.domusdotnet.org) Microsoft Certified Professional Microsoft MVP dal 2011 nella categoria VB.NET Ambassador Intel per Perceptual Computing chi sono
  • 4. Template designed by BING Developer Center e i servizi offerti da BING Speech Recognition App Linking Recap agenda
  • 6. Template designed by Le funzionalità di Speech Recognition offerte dalla piattaforma BING sono disponibili sia per Windows 8 che per Windows 8.1. L’indirizzo di riferimento è : http://www.bing.com/dev/en-us/speech Per utilizzare le funzionalità di Speech Recognitionè necessario: 1. Sottoscrivere un “abbonamento” al servizio BING 2. Utilizzare le API contenute negli assembly forniti da BING BING Speech Recognition
  • 7. Template designed by Per poter utilizzare le API client di Speech Recognition è necessario sottoscrivere un abbonamento all’indirizzo: https://datamarket.azure.com/dataset/bing/speechcontrol Attualmente è disponibile un abbonamento gratuito con 500.000 transazioni (cioè operazioni di riconoscimento vocale con il server) per mese. Non è disponibile per i live id italiani. Il servizio BING
  • 8. Template designed by Per utilizzare i servizi BING sono necessari i parametri ClientID e SecretClient per l'autenticazione. Per ottenere questi parametri è sufficiente registrare la nostra App nel portale: https://datamarket.azure.com/developer/applications ClientID e SecretClient
  • 9. Template designed by Il controllo XAML per Windows 8.x è disponibile nella Visual Studio Gallery all’indirizzo http://visualstudiogallery.msdn.microsoft.com/521cf616- a9a8-4d99-b5d9-92b539d9df82 Non è disponibile all’interno della funzionalità “Extensions and Updates…” di Visual Studio 2013 per il solo fatto di essere marcato per Visual Studio 2012 pur essendo per Windows 8.1  BING Speech Recognition Control
  • 10. Template designed by Per utilizzare le API è necessario: • Referenziare la dll Bing.Speech (la quale referenzia, a sua volta, l’assembly “Microsoft Visual C++ 2013 Runtime Package”); • Modificare il file di manifest per abilitare le capability “Internet Client” e “Microphone”; • Aprire il file di manifest utilizzando un editor XML (basta utilizzare l’opzione contestuale “Open with…” di Visual Studio) e aggiungere  Abilitare il progetto <Extensions> <Extension Category="windows.activatableClass.inProcessServer"> <InProcessServer> <Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path> <ActivatableClass ActivatableClassId="Microsoft.Speech.VoiceService.MSSRAudio.Encoder" ThreadingModel="both" /> </InProcessServer> </Extension> <Extension Category="windows.activatableClass.proxyStub"> <ProxyStub ClassId="5807FC3A-A0AB-48B4-BBA1-BA00BE56C3BD"> <Path>Microsoft.Speech.VoiceService.MSSRAudio.dll</Path> <Interface Name="IEncodingSettings" InterfaceId="C97C75EE-A76A-480E-9817-D57D3655231E" /> </ProxyStub> </Extension> <Extension Category="windows.activatableClass.proxyStub"> <ProxyStub ClassId="F1D258E4-9D97-4BA4-AEEA-50A8B74049DF"> <Path>Microsoft.Speech.VoiceService.Audio.dll</Path> <Interface Name="ISpeechVolumeEvent" InterfaceId="946379E8-A397-46B6-B9C4-FBB253EFF6AE" /> <Interface Name="ISpeechStatusEvent" InterfaceId="FB0767C6-7FAA-4E5E-AC95-A3C0C4D72720" /> </ProxyStub> </Extension> </Extensions>
  • 11. Template designed by La classe SpeechRecognizer è lo strumento essenziale per le funzionalità di Speech Recognition. Il metodo RecognizeSpeechToTextAsync() prende in carico lo stream proveniente dal microfono, interagisce con il servizio BING e restituisce l’eventuale risultato analizzato. La classe SpeechRecognizer Dim result = Await speechRecognizer.RecognizeSpeechToTextAsync() If result.TextConfidence <> SpeechRecognitionConfidence.Rejected Then Me.ResultText.Text = result.Text Else Me.ErrorText.Text = "Rejected" End If
  • 12. Template designed by La classe SpeechRecognitionResult contiene il risultato di un’analisi da parte del servizio di Speech Recognition di BING. Abbiamo a disposizione: • TextConfidence : indica l’accuratezza (stimata) del risultato. Se non è stato riconosciuto nulla si ha il valore Rejected; • Text : contiene il testo riconosciuto Possiamo ottenere anche le interpretazioni alternative grazie al metodo GetAlternates(). Gestire il risultato
  • 13. Template designed by Uno dei dogma delle NUI recita che l’utente deve essere avvertito del fatto che una funzionalità Natural (come lo Speech Recognition) è attiva. L’SDK dello Speech Recognition di BING mette a disposizione la classe SpeechRecognizerUx (controllo XAML) che fornisce un’interfaccia standard per avvisare l’utente che il microfono è aperto e l’app è in ascolto. Interfaccia standard
  • 14. Template designed by Utilizzare il controllo SpeechRecognizerUx (contenuto nell’assembly Bing.Speech.Xaml.SpeechRecognizerUx) è molto semplice: • Aggiungere il controllo nello XAML; • Impostare la proprietà SpeechRecognizer con un’istanza della classe SpeechRecognizer: Nel momento in cui viene richiamato il metodo RecognizeSpeechToTextAsync(), l’interfaccia verrà automaticamente visualizzata. Interfaccia standard SpeechControl.SpeechRecognizer = speechRecognizer
  • 15. Template designed by La classe SpeechRecognizer mette a disposizione gli eventi: • AudioCaptureStateChanged: viene sollevato quando cambia lo stato della sessione di riconoscimento vocale. L’enumerazione SpeechRecognizerAudioCaptureState dell’argomento dell’evento fornisce informazioni sullo stato della sessione (ad esempio Thinking quando la piattaforma sta elaborando un audio); • AudioLevelChanged: viene sollevato quando l’utente varia il volume dell’audio catturato dal microfono; • RecognizerResultRecieved: viene sollevato ogni volta che la piattaforma fornisce un risultato preliminare di riconoscimento vocale nello stato di Thinking. Tramite la proprietà IsHypothesis possiamo sapere se si tratta di un risultato preliminare o finale. Usando opportunamente questi eventi possiamo implementare la nostra interfaccia utente. Interfaccia Custom
  • 17. Template designed by App Linking è, in una frase, Link your app to search results BING App Linking
  • 18. Template designed by • More discoverable: permette ad un maggior numero di persone di conoscere la nostra app semplicemente inserendo il link all’interno delle ricerche di Windows 8.1 e Windows Phone 7.x/8; • Deeper engagement: l’utente può “navigare” dai risultati di ricerca direttamente all’interno della nostra app rendendo l’esperienza utente più ricca e complete; • Easy and free: seguite la sessione e vedrete  BING App Linking
  • 19. Template designed by Due possibili scenari: • App Linking: il link all’interno dello Smart Seach di Windows 8.1 apre semplicemente la nostra app; • Deep Linking: il link apre la nostra app ad una precisa pagina o mostrando un particolare contenuto. App Linking – Come funziona
  • 20. Esempio di App Linking – Wikipedia
  • 21. Template designed by Per attivare la modalità più “semplice”: • La nostra app deve essere già pubblicata nello store; • E’ necessario connettersi al BING Webmaster Portal (https://ssl.bing.com/webmaster/configure/app/linking) e aggiungere la nostra app come se fosse una “Connected Page” App Linking – Website to App http://msdn.microsoft.com/en-us/library/dn614167.aspx
  • 22. Template designed by App Linking – Website to App
  • 23. Template designed by Per abilitare il Deep Linking è necessario: • Aggiungere del markup nelle pagine web; • Implementare il deep linking nell’app (e, quindi, pubblicarla); • Registrare l’app per il deep linking all’interno del BING Webmaster Portal App Linking – Deep Linking
  • 24. Template designed by Se vogliamo utilizzare il <body> dell’HTML: App Linking – Deep Linking applicationId e packageFamilyName dell’app che vogliamo abilitare per il deep linking Parametri da passare all’app nel momento in cui viene lanciata a seguito del click all’interno dello Smart Search http://msdn.microsoft.com/en-us/library/dn614166.aspx
  • 25. Template designed by Se vogliamo, invece, utilizzare l’<head> della pagina: App Linking – Deep Linking applicationId e packageFamilyName dell’app che vogliamo abilitare per il deep linking Parametri da passare all’app nel momento in cui viene lanciata a seguito del click all’interno dello Smart Search http://msdn.microsoft.com/en-us/library/dn614166.aspx
  • 26. Template designed by La nostra app deve essere in grado di elaborare l’attivazione con i parametri: App Linking – Deep Linking http://msdn.microsoft.com/en-us/library/dn614164.aspx
  • 27. Template designed by Per completare la procedura e’ necessario abilitare, a livello di BING Webmaster Portal, il deep linking App Linking – Deep Linking http://msdn.microsoft.com/en-us/library/dn614161.aspx
  • 28. Template designed by Per testare la correttezza dei metatag aggiunti al nostro sito, possiamo utilizzare il BING AppLinking Verification Tool App Linking – Deep Linking http://bingdevcenter.blob.core.windows.net/download/AppLinkingTestTool/setup.exe
  • 29. Template designed by BING Developer Center http://www.bing.com/dev Bing Speech Recognition Control for Windows 8.1 http://visualstudiogallery.msdn.microsoft.com/521cf616-a9a8-4d99-b5d9-92b539d9df82 Bing Speech Recognition Control for Windows 8 http://visualstudiogallery.msdn.microsoft.com/7a054b83-f890-41b5-909b-5d849e1a32b6 MSDN - The Bing Speech Recognition Control http://msdn.microsoft.com/en-us/library/dn434583.aspx Guest Post: BING Speech Recognition nelle Windows Store app http://blogs.msdn.com/b/italy/archive/2013/11/21/guest-post-bing-speech-recognition-nelle-windows-store-app.aspx BING App Linking http://www.bing.com/dev/en-us/applink MSDN – Bing App Linking http://msdn.microsoft.com/en-us/library/dn614167.aspx Recap
  • 31. Template designed by Grazie a tutti per la partecipazione Riceverete il link per il download a slide e demo via email nei prossimi giorni Per contattarmi massimo.bonanni@tiscali.it Grazie