SlideShare a Scribd company logo
WINDOWS 10
DEVELOPMENT
Hey Cortana!
WHO ARE WE?
Edward Moemeka – Chief Architect, e-Builder
 Follow me on Twitter @moemeka
 Email me at edward.moemeka@thethinkmine.com
 Connect with me on LinkedIn https://www.linkedin.com/in/edwardmoemeka
Obinna Igbokwe – Solution Architect, e-builder
 Email obinna.igbokwe@platformbasedsolutions.com
GET THE BOOK TO LEARN MORE
#1 Windows 10 development title on
Amazon
Get it to learn more
http://www.amazon.com/Real-
World-Windows-10-
Development/dp/1484214501/ref=
sr_1_1?ie=UTF8&qid=1455962970&
sr=8-
1&keywords=windows+10+develop
ment
WHY CORTANA?
The obvious reasons
 World’s most personal digital assistant helps you get things done throughout the day
 Be the one helping!
 A whole new natural, way of interacting with your PC
 Create the experience
 Available to millions of users across Windows 10 PCs, tablets, and phones
 More money, more problems
 Integrated search across device, the Web and personal and professional clouds
 Omni-channel integration can lead directional growth
Typical usage scenarios
 “App first” experiences
 I’ve got a pre-existing app and I want to integrate voice
 I’ve got an app on the system and I want to surface it's content
 “Voice first” experiences
 I want to create an audio interaction experience
MAKING YOUR PROGRAM SPEAK
THE EASY WAY
Text to speech, commonly referred to as TTS, uses a speech synthesis engine (voice) to convert
a text string into spoken words. The simplest form of this takes as input the text you actually
want the engine to utter.
DEMO Text-to-speech (basics)
MAKING YOUR PROGRAM SPEAK
THE HARD WAY
For added flexibility, Speech
Synthesis Markup Language
(SSML) can be used to describe
the manner in which you want a
speech synthesis engine to read
text that is inputted into it.
DEMO Text-to-speech (cortana)
RECOGNIZING SPEECH
Converts words spoken by the
user into text – which
ultimately can be used for
form input, text dictation, to
specify an action or
command, and/or to
accomplish tasks.
 Supports
 pre-defined grammars
 for free-text dictation and web search
 Custom grammars authored using Speech
Recognition Grammar Specification (SRGS)
DEMO Voice Recognition
RECOMMENDATIONS ON SPEECH
RECOGNITION
Always provide a visual cue to indicate that speech recognition is supported
and available to the user and whether the user needs to turn it on.
Provide ongoing recognition feedback to minimize any apparent lack of
response while recognition is being performed.
Let users revise recognition text using keyboard input, disambiguation
prompts, suggestions, or additional speech recognition.
Stop recognition if input is detected from a device other than speech
recognition, such as touch or keyboard. This probably indicates that the user
has moved onto another task, such as correcting the recognition text or
interacting with other form fields.
Specify the length of time for which no speech input indicates that
recognition is over. Do not automatically restart recognition after this period
of time as it typically indicates the user has stopped engaging with your app.
Disable all continuous recognition UI and terminate the recognition session
if a network connection is not available. Continuous recognition requires a
network connection.
HELLO CORTANA
Utilizes VCD files
Requires an alias that uniquely identifies your app
 If an alias name collision happens, a prompt (within the Cortana interface) will be presented to the
user which gives them the option to select which app the would like to use to service the request
Does not require apps to be running for it to function
 Allows for you to use Cortana to launch your UWP apps as though it is a command intrinsically built
into the system
 Can launch your app
 Can use your app to service the customer’s requests
Two categories
 Foreground apps
 Apps launched in this manner are launched into the foreground, meaning that the app takes focus and Cortana is
dismissed.
 Your voice input is passed into the app as a string parameter of the OnActivated method.
 Saved best for commands that require additional context or user input.
 Background apps
 The user is given no visual indication that your app is servicing the request (the primary request from the user is handled
by the Cortana interface)
 Allows for providing lists, secondary actions (links), images, to the customer. Your app can be launched from one of those
STEPS TO CREATING
FOREGROUND INTEGRATION
Create a VCD file. This is an XML document that defines all the
spoken commands that the user can say to initiate actions or invoke
commands when activating your app.
Register the command sets in the VCD file when the app is launched.
Handle the foreground activation of the of the app through the
OnActivated handler. As part of the launch parameters you will have
access to command that was triggered by Cortana and the text of the
words that were uttered.
VCD FILES
LOADING PHRASELISTS
DYNAMICALLY
HANDLING ACTIVATION FROM
CORTANA
If the window content is not set to a UIElement by the time the
OnActivated method completes it will not be initialized
DEMO Cortana foreground apps
STEPS TO CREATE BACKGROUND
INTEGRATION
Create a VCD file. This is an XML document that defines all the
spoken commands that the user can say to initiate actions or invoke
commands when activating your app.
Create an app service (Windows.ApplicationModel.AppService) that
Cortana invokes in the background.
Register the command sets in the VCD file when the app is launched.
Handle the background activation of the of the app service and the
execution of the voice command.
Display and/or speak the appropriate feedback to the voice command
within Cortana.
RETRIEVING WHAT WAS SAID
RETRIEVING WHICH PHRASE WAS
UTTERED
DEMO Cortana prompting
confirmation
DEEP LINKING
A "Go to <app>" link on various Cortana screens.
A link embedded in a content tile on various Cortana screens.
The app service programmatically launches the foreground app.
Requires element added to the Extensions node of the Application
element:
 <uap:Extension Category="windows.personalAssistantLaunch"/>
 As with any protocol contract, your app must override its OnActivated event and
check for an ActivationKind of Protocol.
 When your app is launched in this manner the resulting URL sent to it is
"windows.personalassistantlaunch:?LaunchContext=<AppLaunchArgument>"
PROMPTING THE USER
In certain scenarios it may be
necessary to ask the user for
a confirmation before
proceeding with an action
through the background app
service. For this kind of
situation, the method
CreateResponseForPrompt
on the class
VoiceCommandResponse can
be used
DEMO Cortana background apps
WHO ARE WE?
Edward Moemeka – Chief Architect, e-Builder
 Follow me on Twitter @moemeka
 Email me at edward.moemeka@thethinkmine.com
 Connect with me on LinkedIn https://www.linkedin.com/in/edwardmoemeka
Obinna Igbokwe – Solution Architect, e-builder
 Email obinna.igbokwe@platformbasedsolutions.com
GET THE BOOK TO LEARN MORE
#1 Windows 10 development title on
Amazon
Get it to learn more
http://www.amazon.com/Real-
World-Windows-10-
Development/dp/1484214501/ref=
sr_1_1?ie=UTF8&qid=1455962970&
sr=8-
1&keywords=windows+10+develop
ment

More Related Content

PDF
PHP in a mobile ecosystem
PPTX
Mobile Development with Adobe AIR
PDF
iTunes App Store Submission Process
PPT
Desarrollo AIR Mobile
PDF
iPhone Development Overview
PPTX
Building apps for multiple devices
PPTX
StackLabs-DataDriven Labs - iPhone App Development Training in Mohali
PPTX
An end-to-end experience of Windows Phone 7 development (Part 2)
PHP in a mobile ecosystem
Mobile Development with Adobe AIR
iTunes App Store Submission Process
Desarrollo AIR Mobile
iPhone Development Overview
Building apps for multiple devices
StackLabs-DataDriven Labs - iPhone App Development Training in Mohali
An end-to-end experience of Windows Phone 7 development (Part 2)

What's hot (20)

DOC
iPhone Developer_ankush
PDF
iPhone University Developer Program
PPT
Twitter and Web Accessibility (EASI Webinar)
PPT
iPhone Development: Zero to Sixty
PPTX
Chatbot interfaces
DOCX
Bugzilla
PPT
Mobile Apps presentation
PDF
Building Windows 10 Universal Apps with Speech and Cortana
PPT
Getting Started with Titanium
PDF
Cross-platform mobile that Works - Coobers
PPTX
FIREFOX OS
PPTX
Best Practices for Cross-Platform Native Applications
PDF
iPhone first App Store submission
PDF
How to Drive 500 000 App Installs? FareFirst case
PPT
Mobile app development sylhet it academy
PPTX
Starting mobile development
PPTX
How to make an iPhone app
PPTX
Salesforce.com Lightning
PPTX
iPhone application development in India
PPT
OSCON Titanium Tutorial
iPhone Developer_ankush
iPhone University Developer Program
Twitter and Web Accessibility (EASI Webinar)
iPhone Development: Zero to Sixty
Chatbot interfaces
Bugzilla
Mobile Apps presentation
Building Windows 10 Universal Apps with Speech and Cortana
Getting Started with Titanium
Cross-platform mobile that Works - Coobers
FIREFOX OS
Best Practices for Cross-Platform Native Applications
iPhone first App Store submission
How to Drive 500 000 App Installs? FareFirst case
Mobile app development sylhet it academy
Starting mobile development
How to make an iPhone app
Salesforce.com Lightning
iPhone application development in India
OSCON Titanium Tutorial
Ad

Viewers also liked (10)

PPTX
SCUG.dk Windows 10 Management - September 2015
PPTX
Windows 10 presentation
PDF
Windows 10: all you need to know!
PPTX
PPTX
Windows memory management
ODP
What is Ubuntu - presentation
PDF
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...
PPS
Operating Systems and Memory Management
PPTX
Windows 10
PDF
Windows 10 in 10 Minutes
SCUG.dk Windows 10 Management - September 2015
Windows 10 presentation
Windows 10: all you need to know!
Windows memory management
What is Ubuntu - presentation
MT147_Thinking Windows 10? Think simple, scalable, and secure deployments wit...
Operating Systems and Memory Management
Windows 10
Windows 10 in 10 Minutes
Ad

Similar to Code Camp - Presentation - Windows 10 - (Cortana) (20)

PPTX
MS Champs meetup may 2014 on Cortana.
PPTX
Cortana intergration in Windows 10 apps
PDF
Building a New Generation of Mobile Games with Speech
PPTX
Integrating Cortana in UWP apps
PDF
Speech for Windows Phone 8
PDF
Speech for Windows Phone 8
PPTX
UWP apps development - Part 3
PPTX
Hands free with cortana
PPTX
MICROSOFT CORTANA
PPTX
Speech Devices SDK
PPTX
Microsoft cortana
PPTX
Microsoft Cortana
PPTX
What's new with the Cortana Skills Kit?
PPTX
Windows 10 with cortana
PPTX
Cortana : A Microsoft Virtual Personal Assistant
PPT
Tulsa Techfest 2008 - Creating A Voice User Interface With Speech Server
PPTX
Windows Phone 8 - 14 Using Speech
PDF
Developing with Speech and Voice Recognition in Mobile Apps
PDF
Fonctions vocales sous Windows Phone : intégrez votre application à Cortana !
PDF
Introduction to Speech Interfaces for Web Applications
MS Champs meetup may 2014 on Cortana.
Cortana intergration in Windows 10 apps
Building a New Generation of Mobile Games with Speech
Integrating Cortana in UWP apps
Speech for Windows Phone 8
Speech for Windows Phone 8
UWP apps development - Part 3
Hands free with cortana
MICROSOFT CORTANA
Speech Devices SDK
Microsoft cortana
Microsoft Cortana
What's new with the Cortana Skills Kit?
Windows 10 with cortana
Cortana : A Microsoft Virtual Personal Assistant
Tulsa Techfest 2008 - Creating A Voice User Interface With Speech Server
Windows Phone 8 - 14 Using Speech
Developing with Speech and Voice Recognition in Mobile Apps
Fonctions vocales sous Windows Phone : intégrez votre application à Cortana !
Introduction to Speech Interfaces for Web Applications

Code Camp - Presentation - Windows 10 - (Cortana)

  • 2. WHO ARE WE? Edward Moemeka – Chief Architect, e-Builder  Follow me on Twitter @moemeka  Email me at edward.moemeka@thethinkmine.com  Connect with me on LinkedIn https://www.linkedin.com/in/edwardmoemeka Obinna Igbokwe – Solution Architect, e-builder  Email obinna.igbokwe@platformbasedsolutions.com
  • 3. GET THE BOOK TO LEARN MORE #1 Windows 10 development title on Amazon Get it to learn more http://www.amazon.com/Real- World-Windows-10- Development/dp/1484214501/ref= sr_1_1?ie=UTF8&qid=1455962970& sr=8- 1&keywords=windows+10+develop ment
  • 4. WHY CORTANA? The obvious reasons  World’s most personal digital assistant helps you get things done throughout the day  Be the one helping!  A whole new natural, way of interacting with your PC  Create the experience  Available to millions of users across Windows 10 PCs, tablets, and phones  More money, more problems  Integrated search across device, the Web and personal and professional clouds  Omni-channel integration can lead directional growth Typical usage scenarios  “App first” experiences  I’ve got a pre-existing app and I want to integrate voice  I’ve got an app on the system and I want to surface it's content  “Voice first” experiences  I want to create an audio interaction experience
  • 5. MAKING YOUR PROGRAM SPEAK THE EASY WAY Text to speech, commonly referred to as TTS, uses a speech synthesis engine (voice) to convert a text string into spoken words. The simplest form of this takes as input the text you actually want the engine to utter.
  • 7. MAKING YOUR PROGRAM SPEAK THE HARD WAY For added flexibility, Speech Synthesis Markup Language (SSML) can be used to describe the manner in which you want a speech synthesis engine to read text that is inputted into it.
  • 9. RECOGNIZING SPEECH Converts words spoken by the user into text – which ultimately can be used for form input, text dictation, to specify an action or command, and/or to accomplish tasks.  Supports  pre-defined grammars  for free-text dictation and web search  Custom grammars authored using Speech Recognition Grammar Specification (SRGS)
  • 11. RECOMMENDATIONS ON SPEECH RECOGNITION Always provide a visual cue to indicate that speech recognition is supported and available to the user and whether the user needs to turn it on. Provide ongoing recognition feedback to minimize any apparent lack of response while recognition is being performed. Let users revise recognition text using keyboard input, disambiguation prompts, suggestions, or additional speech recognition. Stop recognition if input is detected from a device other than speech recognition, such as touch or keyboard. This probably indicates that the user has moved onto another task, such as correcting the recognition text or interacting with other form fields. Specify the length of time for which no speech input indicates that recognition is over. Do not automatically restart recognition after this period of time as it typically indicates the user has stopped engaging with your app. Disable all continuous recognition UI and terminate the recognition session if a network connection is not available. Continuous recognition requires a network connection.
  • 12. HELLO CORTANA Utilizes VCD files Requires an alias that uniquely identifies your app  If an alias name collision happens, a prompt (within the Cortana interface) will be presented to the user which gives them the option to select which app the would like to use to service the request Does not require apps to be running for it to function  Allows for you to use Cortana to launch your UWP apps as though it is a command intrinsically built into the system  Can launch your app  Can use your app to service the customer’s requests Two categories  Foreground apps  Apps launched in this manner are launched into the foreground, meaning that the app takes focus and Cortana is dismissed.  Your voice input is passed into the app as a string parameter of the OnActivated method.  Saved best for commands that require additional context or user input.  Background apps  The user is given no visual indication that your app is servicing the request (the primary request from the user is handled by the Cortana interface)  Allows for providing lists, secondary actions (links), images, to the customer. Your app can be launched from one of those
  • 13. STEPS TO CREATING FOREGROUND INTEGRATION Create a VCD file. This is an XML document that defines all the spoken commands that the user can say to initiate actions or invoke commands when activating your app. Register the command sets in the VCD file when the app is launched. Handle the foreground activation of the of the app through the OnActivated handler. As part of the launch parameters you will have access to command that was triggered by Cortana and the text of the words that were uttered.
  • 16. HANDLING ACTIVATION FROM CORTANA If the window content is not set to a UIElement by the time the OnActivated method completes it will not be initialized
  • 18. STEPS TO CREATE BACKGROUND INTEGRATION Create a VCD file. This is an XML document that defines all the spoken commands that the user can say to initiate actions or invoke commands when activating your app. Create an app service (Windows.ApplicationModel.AppService) that Cortana invokes in the background. Register the command sets in the VCD file when the app is launched. Handle the background activation of the of the app service and the execution of the voice command. Display and/or speak the appropriate feedback to the voice command within Cortana.
  • 20. RETRIEVING WHICH PHRASE WAS UTTERED
  • 22. DEEP LINKING A "Go to <app>" link on various Cortana screens. A link embedded in a content tile on various Cortana screens. The app service programmatically launches the foreground app. Requires element added to the Extensions node of the Application element:  <uap:Extension Category="windows.personalAssistantLaunch"/>  As with any protocol contract, your app must override its OnActivated event and check for an ActivationKind of Protocol.  When your app is launched in this manner the resulting URL sent to it is "windows.personalassistantlaunch:?LaunchContext=<AppLaunchArgument>"
  • 23. PROMPTING THE USER In certain scenarios it may be necessary to ask the user for a confirmation before proceeding with an action through the background app service. For this kind of situation, the method CreateResponseForPrompt on the class VoiceCommandResponse can be used
  • 25. WHO ARE WE? Edward Moemeka – Chief Architect, e-Builder  Follow me on Twitter @moemeka  Email me at edward.moemeka@thethinkmine.com  Connect with me on LinkedIn https://www.linkedin.com/in/edwardmoemeka Obinna Igbokwe – Solution Architect, e-builder  Email obinna.igbokwe@platformbasedsolutions.com
  • 26. GET THE BOOK TO LEARN MORE #1 Windows 10 development title on Amazon Get it to learn more http://www.amazon.com/Real- World-Windows-10- Development/dp/1484214501/ref= sr_1_1?ie=UTF8&qid=1455962970& sr=8- 1&keywords=windows+10+develop ment