UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
Win02 bing e windows store apps
1. Template designed by
BING e Windows Store Apps
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 il controllo OCR è 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