Skip to content
Jakub Lichman edited this page Apr 20, 2017 · 3 revisions

Why I don't have Cortana in my Windows10?

Microsoft wants to tailor Cortana specifically for every language and culture before releasing it. But you can get Cortana now without waiting. Cortana is right now (4/20/2017) available in these countries and languages:

  • Australia: English
  • Canada: English
  • China: Chinese (Simplified)
  • France: French
  • Germany: German
  • India: English
  • Italy: Italian
  • Japan: Japanese
  • Spain: Spanish
  • United Kingdom: English
  • United States: English

So, if you are not from these countries you need to change your Region&Language settings to one of these ones. Do not forget to install language pack.

There can be one more problem with Cortana availability. It is when you are using Windows10 for Education. In this case you need to install another one because Cortana is not part of this Windows type.

Why do I get exception during initialization of the SpeechNavigator?

There are multiple errors that can occur during SpeechNavigator initialization. They are:

  • GrammarCompilationException
  • SerializationException
  • GrammarException

GrammarCompilationException

Raised when installation of a compiled low level SRGS grammar is not successful. This type of exception usually indicates unknown error. There can be some undetected error in VCD file or bug of the compilation. Please contact me in this case.

SerializationException

Raised when passed VCD file can not be deserialized. Please check whether your syntax is in correct format.

GrammarException

Exception raised when invalid grammar is detected. Error message should provide you with more information about error.

Why do I get exception after calling one of the RecognizeAsync methods?

There can be multiple issues with microphone or privacy settings. You should deal with these exceptions like this:

try
{
    await m_navigator.RecognizeAndPerformActionAsync();
}
catch (Exception ex)
{
    if ((uint)ex.HResult == SpeechNavigator.HResultPrivacyStatementDeclined)
    {
        //notice user to accept privacy settings
        LaunchUri(new Uri(@"https://privacy.microsoft.com/en-us/privacystatement"));
        //Todo display user Privacy settings 
    }
    else if (ex.GetType() == typeof(UnauthorizedAccessException))
    {
        LaunchUri(new Uri("ms-settings:privacy-microphone"));
    }
    else
    {
	 //catch another exception
    }
}