Especificar el idioma del reconocedor de voz

Obtenga información sobre cómo seleccionar un idioma instalado para el reconocimiento de voz en la aplicación de SDK de Aplicaciones para Windows.

Importante

El reconocimiento de voz requiere la identidad del paquete MSIX. Las API Windows.Media.SpeechRecognition solo están disponibles cuando la aplicación se ejecuta con identidad de paquete (empaquetada o empaquetada con una ubicación externa). Las aplicaciones sin empaquetar no pueden usar estas API.

APIs clave

Visión general

De forma predeterminada, el reconocedor de voz usa el idioma del sistema instalado para el reconocimiento de voz. Pase un Windows.Globalization.Language objeto al SpeechRecognizer constructor para seleccionar otro idioma.

La aplicación debe usar un idioma compatible con el dispositivo del usuario. Use la SpeechRecognizer.SupportedTopicLanguages propiedad o SpeechRecognizer.SupportedGrammarLanguages para determinar qué idiomas están disponibles.

Establecimiento del idioma de reconocimiento

Especifique el idioma pasando un Language objeto al SpeechRecognizer constructor:

var language = new Windows.Globalization.Language("en-US");
var speechRecognizer = new Windows.Media.SpeechRecognition.SpeechRecognizer(language);

Determinar los idiomas admitidos

En el ejemplo siguiente se muestra cómo comprobar qué idiomas de tema se admiten y mostrarlos:

var topicLanguages = Windows.Media.SpeechRecognition.SpeechRecognizer.SupportedTopicLanguages;

foreach (var lang in topicLanguages)
{
    var languageTag = lang.LanguageTag;
    var displayName = lang.DisplayName;
    // Present these to the user for selection.
}

En el ejemplo siguiente se comprueba qué idiomas gramaticales están disponibles:

var grammarLanguages = Windows.Media.SpeechRecognition.SpeechRecognizer.SupportedGrammarLanguages;

foreach (var lang in grammarLanguages)
{
    var languageTag = lang.LanguageTag;
    var displayName = lang.DisplayName;
}

Note

Los idiomas de temas (dictado y búsqueda web) se procesan mediante un servicio en línea y no están limitados por los paquetes de idioma de voz instalados localmente. Los idiomas de gramática (restricciones de lista y SRGS) se procesan en el dispositivo y requieren tener instalado el paquete de idioma de voz correspondiente.