I servizi offerti dalla piattaforma BING consentono di realizzare facilmente applicazioni per Windows 8.1 moderne ed evolute. Le funzionalità di Speech Recognition, ad esempio, consentono di fornire all'utente un diverso modo per interagire con la nostra applicazione mentre le funzionalità infrastrutturali di App Linking ci permettono di integrare la nostra applicazione all'interno dei risultati della Smart Search di Windows 8.1, consentendoci di essere più visibili e, quindi, di avere un maggior successo.
Slide della sessione "BING e Windows Store App" tenuta al DotNetCampus 2014 a Roma il 10/05/2014
Project Gesture & Real Sense: il potere nelle mani!!
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
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
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