If you can't find answers to your questions in this document, check out other support options.
General
What is a voice assistant?
Like Cortana, a voice assistant is a solution that listens to a user's spoken utterances, analyzes the contents of those utterances for meaning, performs one or more actions in response to the utterance's intent, and then provides a response to the user that often includes a spoken component. It's a "voice-in, voice-out" experience for interacting with a system. voice assistant authors create an on-device application using the DialogServiceConnector
in the Speech SDK to communicate with an assistant created using Custom Commands or the Direct Line Speech channel of the Bot Framework. These assistants can use custom keywords, custom speech, and custom voice to provide an experience tailored to your brand or product.
Should I use Custom Commands or Direct Line Speech? What's the difference?
Custom Commands is a lower-complexity set of tools to easily create and host an assistant that's well-suited to task completion scenarios. Direct Line Speech provides richer, more sophisticated capabilities that can enable robust conversational scenarios. See the comparison of assistant solutions for more information.
How do I get started?
The best way to begin with creating a Custom Commands (Preview) application or basic Bot Framework bot.
Debugging
Where's my channel secret?
If you've used the preview version of Direct Line Speech or you're reading related documentation, you may expect to find a secret key on the Direct Line Speech channel registration page. The v1.7 DialogServiceConfig
factory method FromBotSecret
in the Speech SDK also expects this value.
The latest version of Direct Line Speech simplifies the process of contacting your bot from a device. On the channel registration page, the drop-down at the top associates your Direct Line Speech channel registration with a speech resource. Once associated, the v1.8 Speech SDK includes a BotFrameworkConfig::FromSubscription
factory method that will configure a DialogServiceConnector
to contact the bot you've associated with your subscription.
If you're still migrating your client application from v1.7 to v1.8, DialogServiceConfig::FromBotSecret
may continue to work with a non-empty, non-null value for its channel secret parameter, e.g. the previous secret you used. It will simply be ignored when using a speech subscription associated with a newer channel registration. Please note that the value must be non-null and non-empty, as these are checked for on the device before the service-side association is relevant.
For a more detailed guide, please see the tutorial section that walks through channel registration.
I get a 401 error when connecting and nothing works. I know my Speech resource key is valid. What's going on?
When managing your Speech resource on the Azure portal, please ensure you're using the Speech resource (Microsoft.CognitiveServicesSpeechServices, "Speech") and not the Cognitive Services resource (Microsoft.CognitiveServicesAllInOne, "All Cognitive Services"). Also, please check Speech service region support for voice assistants.
I get recognition text back from my `DialogServiceConnector`, but I see a '1011' error and nothing from my bot. Why?
This error indicates a communication problem between your assistant and the voice assistant service.
- For Custom Commands, ensure that your Custom Commands Application is published
- For Direct Line Speech, ensure that you've connected your bot to the Direct Line Speech channel, added Streaming protocol support to your bot (with the related Web Socket support), and then check that your bot is responding to incoming requests from the channel.
This code still doesn't work and/or I'm getting a different error when using a `DialogServiceConnector`. What should I do?
File-based logging provides substantially more detail and can help accelerate support requests. To enable this functionality, see how to use file logging.