31
Template designed by BING e Windows Store App Massimo Bonanni [email protected] @massimobonanni codetailor.blogspot.com Template designed by

DotNetCampus 2014 - BING e Windows Store App

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: DotNetCampus 2014 - BING e Windows Store App

Template designed by

BING e Windows Store App

Massimo [email protected]@massimobonannicodetailor.blogspot.com

Template designed by

Page 2: DotNetCampus 2014 - BING e Windows Store App

Template designed by

brought to you by

Page 3: DotNetCampus 2014 - BING e Windows Store App

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

Page 4: DotNetCampus 2014 - BING e Windows Store App

Template designed by

BING Developer Center e i servizi offerti da BING

Speech Recognition

App Linking

Recap

agenda

Page 5: DotNetCampus 2014 - BING e Windows Store App

Template designed by

http://www.bing.com/dev

BING Developer Center

Page 6: DotNetCampus 2014 - BING e Windows Store App

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

Page 7: DotNetCampus 2014 - BING e Windows Store App

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.000transazioni (cioè operazioni diriconoscimento vocale con il server)per mese.

Non è disponibile per i live id italiani.

Il servizio BING

Page 8: DotNetCampus 2014 - BING e Windows Store App

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

Page 9: DotNetCampus 2014 - BING e Windows Store App

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 2012pur essendo per Windows 8.1

BING Speech Recognition Control

Page 10: DotNetCampus 2014 - BING e Windows Store App

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 perabilitare 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>

Page 11: DotNetCampus 2014 - BING e Windows Store App

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.TextElse Me.ErrorText.Text = "Rejected"End If

Page 12: DotNetCampus 2014 - BING e Windows Store App

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

Page 13: DotNetCampus 2014 - BING e Windows Store App

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

Page 14: DotNetCampus 2014 - BING e Windows Store App

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

Page 15: DotNetCampus 2014 - BING e Windows Store App

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

Page 16: DotNetCampus 2014 - BING e Windows Store App

dem

o Speech Recognition

Page 17: DotNetCampus 2014 - BING e Windows Store App

Template designed by

App Linking è, in una frase,

Link your app to search results

BING App Linking

Page 18: DotNetCampus 2014 - BING e Windows Store App

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

Page 19: DotNetCampus 2014 - BING e Windows Store App

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 particolarecontenuto.

App Linking – Come funziona

Page 20: DotNetCampus 2014 - BING e Windows Store App

Esempio di App

Linking – Wikipedia

Page 21: DotNetCampus 2014 - BING e Windows Store App

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

Page 22: DotNetCampus 2014 - BING e Windows Store App

Template designed by

App Linking – Website to App

Page 23: DotNetCampus 2014 - BING e Windows Store 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

Page 24: DotNetCampus 2014 - BING e Windows Store App

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

Page 25: DotNetCampus 2014 - BING e Windows Store App

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

Page 26: DotNetCampus 2014 - BING e Windows Store App

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

Page 27: DotNetCampus 2014 - BING e Windows Store App

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

Page 28: DotNetCampus 2014 - BING e Windows Store App

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

Page 29: DotNetCampus 2014 - BING e Windows Store App

Template designed by

BING Developer Centerhttp://www.bing.com/dev

Bing Speech Recognition Control for Windows 8.1http://visualstudiogallery.msdn.microsoft.com/521cf616-a9a8-4d99-b5d9-92b539d9df82

Bing Speech Recognition Control for Windows 8http://visualstudiogallery.msdn.microsoft.com/7a054b83-f890-41b5-909b-5d849e1a32b6

MSDN - The Bing Speech Recognition Controlhttp://msdn.microsoft.com/en-us/library/dn434583.aspx

Guest Post: BING Speech Recognition nelle Windows Store apphttp://blogs.msdn.com/b/italy/archive/2013/11/21/guest-post-bing-speech-recognition-nelle-windows-store-

app.aspx

BING App Linkinghttp://www.bing.com/dev/en-us/applink

MSDN – Bing App Linkinghttp://msdn.microsoft.com/en-us/library/dn614167.aspx

Recap

Page 30: DotNetCampus 2014 - BING e Windows Store App

Template designed by

Q&A

Page 31: DotNetCampus 2014 - BING e Windows Store App

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

[email protected]

Grazie