SlideShare a Scribd company logo
Template designed by
BING e Windows Store Apps
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 il controllo OCR è 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

PPTX
DotNetCampus 2014 - BING e Windows Store App
Massimo Bonanni
 
PPTX
WordCamp Catania 2019 PWA e TWA
FrancescoGiammanco1
 
PPTX
Meetup ASP.NET Core Angular
dotnetcode
 
PPTX
Integrazione con Visual Studio Online
Davide Benvegnù
 
PDF
Niccolò Becchi: Introduzione a GWT
firenze-gtug
 
PPTX
Model-View-ViewModel con Windows Store Apps
codeblock
 
PPTX
Fun with Machine Translation APIs
Massimo Bonanni
 
PDF
Csp@scuola smarttv corso1
CSP Scarl
 
DotNetCampus 2014 - BING e Windows Store App
Massimo Bonanni
 
WordCamp Catania 2019 PWA e TWA
FrancescoGiammanco1
 
Meetup ASP.NET Core Angular
dotnetcode
 
Integrazione con Visual Studio Online
Davide Benvegnù
 
Niccolò Becchi: Introduzione a GWT
firenze-gtug
 
Model-View-ViewModel con Windows Store Apps
codeblock
 
Fun with Machine Translation APIs
Massimo Bonanni
 
Csp@scuola smarttv corso1
CSP Scarl
 

What's hot (10)

PPTX
ASP.NET performance optimization
Andrea Dottor
 
PDF
Hands on MVC - Mastering the Web
Claudio Gandelli
 
PPTX
Novità di Asp.Net 4.0
Gian Maria Ricci
 
PPTX
Modi innovativi per costruire App
Commit University
 
PPT
What's New in ASP.NET 4.5 and Visual Studio 2012
Andrea Dottor
 
PDF
Acadevmy - Angular Overview
Francesco Sciuti
 
PDF
EtnaDev 2015 - Windows Bridge
Gaetano Paternò
 
PDF
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostri
Francesco Sciuti
 
PDF
Training Signal Webtrends
Stefano Iaboni
 
PPTX
Asp.net 4 Community Tour VS2010
Fabrizio Bernabei
 
ASP.NET performance optimization
Andrea Dottor
 
Hands on MVC - Mastering the Web
Claudio Gandelli
 
Novità di Asp.Net 4.0
Gian Maria Ricci
 
Modi innovativi per costruire App
Commit University
 
What's New in ASP.NET 4.5 and Visual Studio 2012
Andrea Dottor
 
Acadevmy - Angular Overview
Francesco Sciuti
 
EtnaDev 2015 - Windows Bridge
Gaetano Paternò
 
Acadevmy - AngularDay 2018 - Change Detection, Zone.js ed altri mostri
Francesco Sciuti
 
Training Signal Webtrends
Stefano Iaboni
 
Asp.net 4 Community Tour VS2010
Fabrizio Bernabei
 
Ad

Viewers also liked (20)

PPTX
Sys05 uso consapevole di git - beyond the basic
DotNetCampus
 
PPSX
Grupo 6
alonsocr23
 
PDF
Curriculum Vitae Brekoulakis Spyros.
SPYROS BREKOULAKIS
 
PPTX
Literatura ecuatoriana
kennyabigail
 
DOC
LA RESISTENCIA DE LOS CAJAMARQUINOS POR UN NUEVO MODELO DE DESARROLLO HUMA…
Daniel Vega UNMSM
 
PDF
Apuntes orientacion deportiva batanero
alonsocr23
 
PPTX
Cert04 70-484 - essentials of developing windows store apps
DotNetCampus
 
PDF
MAS la VICTORIA > PRONUNCIAMIENTO
Daniel Vega UNMSM
 
PPSX
Joa 9 6
joa1096
 
DOCX
20th anniversary article
Beauty Nkonyeni
 
DOCX
Active SWV Article revised
Amber Lipscomb, MA
 
PPSX
Presentación educativa (pedagogía)
alonsocr23
 
PPSX
Grupo 1
alonsocr23
 
PPTX
Fe05 test drivenjavascriptdevelopment
DotNetCampus
 
ODP
Contaminación
nachito98xD
 
PPT
Presentación bullying
alonsocr23
 
PPTX
Prezentacja łeba kluczny
klukart17
 
PPTX
Mob01 mobile services e webapi
DotNetCampus
 
PPTX
Tipografía y sus familias
Luis Rivera
 
PDF
Định Hướng SEO 2014
Nguyễn Văn Mạnh
 
Sys05 uso consapevole di git - beyond the basic
DotNetCampus
 
Grupo 6
alonsocr23
 
Curriculum Vitae Brekoulakis Spyros.
SPYROS BREKOULAKIS
 
Literatura ecuatoriana
kennyabigail
 
LA RESISTENCIA DE LOS CAJAMARQUINOS POR UN NUEVO MODELO DE DESARROLLO HUMA…
Daniel Vega UNMSM
 
Apuntes orientacion deportiva batanero
alonsocr23
 
Cert04 70-484 - essentials of developing windows store apps
DotNetCampus
 
MAS la VICTORIA > PRONUNCIAMIENTO
Daniel Vega UNMSM
 
Joa 9 6
joa1096
 
20th anniversary article
Beauty Nkonyeni
 
Active SWV Article revised
Amber Lipscomb, MA
 
Presentación educativa (pedagogía)
alonsocr23
 
Grupo 1
alonsocr23
 
Fe05 test drivenjavascriptdevelopment
DotNetCampus
 
Contaminación
nachito98xD
 
Presentación bullying
alonsocr23
 
Prezentacja łeba kluczny
klukart17
 
Mob01 mobile services e webapi
DotNetCampus
 
Tipografía y sus familias
Luis Rivera
 
Định Hướng SEO 2014
Nguyễn Văn Mạnh
 
Ad

Similar to Win02 bing e windows store apps (20)

PPTX
Flavio ATZENI - SMAU 2014
Paradisi63
 
PDF
Creare PWA con Angular
Francesco Sciuti
 
PPTX
Cert03 70-486 developing asp.net mvc 4 web applications
DotNetCampus
 
PPTX
Progressive Web App per presentazione Skills&More
FrancescoGiammanco1
 
PPTX
Integrazione continua con TFS Build
Gian Maria Ricci
 
PPTX
Meetup Fluent Design e Progressive Web App
dotnetcode
 
PDF
Meetup Progressive Web App
dotnetcode
 
PDF
Slide Mulesoft Meetup Milano #10.pdf
Florence Consulting
 
PPTX
Swagger per tutti
Nicolò Carandini
 
PDF
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
dotnetcode
 
PPTX
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
DotNetCampus
 
PPTX
Le novita di visual studio 2012
Crismer La Pignola
 
PPTX
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
EduardCapanu
 
PPTX
Dnn Evoq per le aziende
Claudio Venturoli
 
PDF
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Andrea Picchi
 
PDF
Designing with microservices - Daniele Mondello
Daniele Mondello
 
PDF
Generazione automatica diagrammi di rete con template pptx
GiacomoZorzin
 
ODP
Il PaaS di Google
MssiStf
 
PDF
Acadevmy - PWA Overview
Francesco Sciuti
 
PDF
Session isolation e rendering delle pagine web
Giacomo Zecchini
 
Flavio ATZENI - SMAU 2014
Paradisi63
 
Creare PWA con Angular
Francesco Sciuti
 
Cert03 70-486 developing asp.net mvc 4 web applications
DotNetCampus
 
Progressive Web App per presentazione Skills&More
FrancescoGiammanco1
 
Integrazione continua con TFS Build
Gian Maria Ricci
 
Meetup Fluent Design e Progressive Web App
dotnetcode
 
Meetup Progressive Web App
dotnetcode
 
Slide Mulesoft Meetup Milano #10.pdf
Florence Consulting
 
Swagger per tutti
Nicolò Carandini
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
dotnetcode
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
DotNetCampus
 
Le novita di visual studio 2012
Crismer La Pignola
 
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
EduardCapanu
 
Dnn Evoq per le aziende
Claudio Venturoli
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Andrea Picchi
 
Designing with microservices - Daniele Mondello
Daniele Mondello
 
Generazione automatica diagrammi di rete con template pptx
GiacomoZorzin
 
Il PaaS di Google
MssiStf
 
Acadevmy - PWA Overview
Francesco Sciuti
 
Session isolation e rendering delle pagine web
Giacomo Zecchini
 

More from DotNetCampus (20)

PDF
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
DotNetCampus
 
PPTX
MICROSOFT E IL MONDO IOT
DotNetCampus
 
PPTX
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
DotNetCampus
 
PDF
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
DotNetCampus
 
PDF
70-483: PROGRAMMING IN C#
DotNetCampus
 
PPTX
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DotNetCampus
 
PPTX
TUTTO SU VISUAL STUDIO ALM 2015
DotNetCampus
 
PPTX
CONTINUOUS INTEGRATION CON SQL SERVER
DotNetCampus
 
PPTX
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
DotNetCampus
 
PPTX
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DotNetCampus
 
PPTX
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
DotNetCampus
 
PPTX
SHAREPOINT 2016 - WHAT'S NEW
DotNetCampus
 
PPTX
COSTRUISCI IL TUO DEVICE
DotNetCampus
 
PPTX
SVILUPPARE PER MICROSOFT BAND
DotNetCampus
 
PPTX
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
DotNetCampus
 
PPTX
WINDOWS PHONE APPS IN C++
DotNetCampus
 
PPTX
AZURE NOTIFICATION HUB
DotNetCampus
 
PPTX
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
DotNetCampus
 
PPTX
INTRO TO XAMARIN
DotNetCampus
 
PPTX
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
DotNetCampus
 
ARCHITETTURA DI UN'APPLICAZIONE SCALABILE
DotNetCampus
 
MICROSOFT E IL MONDO IOT
DotNetCampus
 
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#
DotNetCampus
 
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONS
DotNetCampus
 
70-483: PROGRAMMING IN C#
DotNetCampus
 
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...
DotNetCampus
 
TUTTO SU VISUAL STUDIO ALM 2015
DotNetCampus
 
CONTINUOUS INTEGRATION CON SQL SERVER
DotNetCampus
 
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATA
DotNetCampus
 
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDI
DotNetCampus
 
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZURE
DotNetCampus
 
SHAREPOINT 2016 - WHAT'S NEW
DotNetCampus
 
COSTRUISCI IL TUO DEVICE
DotNetCampus
 
SVILUPPARE PER MICROSOFT BAND
DotNetCampus
 
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!
DotNetCampus
 
WINDOWS PHONE APPS IN C++
DotNetCampus
 
AZURE NOTIFICATION HUB
DotNetCampus
 
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMS
DotNetCampus
 
INTRO TO XAMARIN
DotNetCampus
 
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
DotNetCampus
 

Win02 bing e windows store apps

  • 1. Template designed by BING e Windows Store Apps Massimo Bonanni [email protected] @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
  • 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 [email protected] Grazie