Voice assistants frequently asked questions

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 used the preview version of Direct Line Speech or you're reading related documentation, you might 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 configures a DialogServiceConnector to contact the bot you associated with your subscription.

If you're still migrating your client application from v1.7 to v1.8, DialogServiceConfig::FromBotSecret might continue to work with a non-empty, non-null value for its channel secret parameter, for example, the previous secret you used. It will be ignored when using a speech subscription associated with a newer channel registration. 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 Azure AI services resource (Microsoft.CognitiveServicesAllInOne, "All Azure AI services"). Also, please check Speech service region support for voice assistants.

correct subscription for direct line speech

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.

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.