We've blogged about building Alexa Skills a few times as we waited for a means to create Cortana Skills. Finally at Build the Cortana Skills Kit was released!
Today, we are pleased to announce the public preview of the Cortana Skills Kit which allows developers to easily create intelligent, personalized experiences for Cortana.
Our vision for Cortana has always been to create a digital personal assistant that’s available to users across all their devices, whenever and wherever they may need an extra hand to be more productive and get things done. With the new Cortana Skills Kit, developers can join in delivering that vision and reach millions of Cortana users across platforms including Windows 10, Android, iOS and soon on even more devices and form factors — like Xbox, the Harman Kardon Invoke smart speaker and inside cars and mixed reality devices.
To build a Cortana skill, developers can create their bot’s conversational logic using the Microsoft Bot Framework, and publish it to the new Cortana Channel within the Bot Framework, bringing speech capabilities to skills. Developers can understand users’ natural input and build custom machine-learned language models through LUIS.ai, and add intelligence with the power of Cognitive Services.
... [Read the entire post]
Use the skills kit to provide Cortana with new capabilities
Skills help users complete tasks and get things done.
From conversational tooling through the Bot Framework to intelligent APIs with the Cognitive Services, the skills kit provides all the tools and docs you need to promote your services and engage users through the Cortana experience.
Once created, your skill works wherever your code runs, including on Windows 10, Android, iOS, and headless devices like the new Harman Kardon Invoke. Use our skill management tools to make the development process simple.
The skills kit is currently in public preview.
The Cortana Skills Kit [Doc's]
The Cortana Skills Kit is a suite of tools that help you build extensions (or skills) for Cortana that connect users to your custom services and solutions.+
Cortana skills enable you to add value by governing how it responds to user requests. Cortana can delegate to bots built on Microsoft's Bot Framework. +
The skills kit supports basic deep links to full integration of your services and solutions into the Cortana experience.
Cortana voice command sample
Shows how to integrate with Cortana by providing Voice Command Definitions (VCDs) that allow an app to be invoked in a variety of ways.
Specifically, this sample covers:
- Installing a VCD file. (AdventureWorksCommands.xml, App.xaml.cs:OnLaunched() )
- Updating a phrase list within a VCD file at runtime. (TripViewModel.cs:UpdateDestinationPhraseList())
- Handling App.OnActivation() being called with details of a voice command. (App.xaml.cs:OnActivation())
- Handling registration of a background task and hooking it up to a voice command. (Package.appxmanifest, AdventureWorksCommands.xml)
- Implementing the headless invocation APIs for Cortana to acknowledge the invocation, handle cancellation, and completion of the headless invocation to maintain the contract with Cortana, and avoid being terminated. (AdventureWorksVoiceCommandService.cs:Run())
- Providing various responses to Cortana, which Cortana will display within its own UI, including text, images, app activation URIs, etc. (AdventureWorksVoiceCommandService.cs:SendCompletionMessageForDestination())
- Implements disambiguation, providing a user with multiple choices, which can either be chosen via voice, or other input mechanisms. (AdventureWorksVoicecommandService.cs:DisambiguateTrips())
- Implements a confirmation dialog in Cortana, ensuring a user can review a destructive action that will be taken (AdventureWorksVoiceCommandService.cs:SendCompletionMessageForCancellation())
- Implements progress screens, ensuring that Cortana does not time out during lengthy I/O operations (AdventureWorksVoiceCommandService.cs:ShowProgressScreen())
- Infix/Suffix Voice Command support, allowing for more natural phrases to be used.
When Cortana is listening, any of the following voice commands are supported. By default, "London", "Melbourne", and "Yosemite National Park" are provided as sample destinations. New destinations can be added in the app.
- "Adventure Works, show trip to London"
- "Adventure Works, when is my trip to London"
- "Adventure Works, cancel trip to London"
Infix and suffix forms are also supported.
- "Show trip to London in Adventure Works"
- "Show my Adventure Works trip to London"
Duplicates can also be handled. For an example of handling disambiguation, add a second trip to London in the app and try the following:
- "Adventure Works, cancel trip to London"
If you build a cool Cortana Skill, let us know!