Especificar el idioma del reconocedor de vozSpecify the speech recognizer language

Obtén información sobre cómo seleccionar un idioma instalado para usarlo en el reconocimiento de voz.Learn how to select an installed language to use for speech recognition.

API importantes : SupportedTopicLanguages, SupportedGrammarLanguages, LanguageImportant APIs : SupportedTopicLanguages, SupportedGrammarLanguages, Language

Aquí se enumeran los idiomas instalados en un sistema, se identifica cuál es el idioma predeterminado y se selecciona otro idioma de reconocimiento.Here, we enumerate the languages installed on a system, identify which is the default language, and select a different language for recognition.

Requisitos previos:Prerequisites:

Este tema se basa en el reconocimiento de voz.This topic builds on Speech recognition.

Debes tener un conocimiento básico del reconocimiento de voz y de las restricciones del reconocimiento.You should have a basic understanding of speech recognition and recognition constraints.

Si no está familiarizado con el desarrollo de aplicaciones de Windows, consulte estos temas para familiarizarse con las tecnologías que se describen aquí.If you're new to developing Windows apps, have a look through these topics to get familiar with the technologies discussed here.

Instrucciones para la experiencia del usuario:User experience guidelines:

Para obtener sugerencias útiles sobre el diseño de una aplicación habilitada para voz que sea útil y atractiva, consulta Directrices para el diseño de voz.For helpful tips about designing a useful and engaging speech-enabled app, see Speech design guidelines .

Identificar el idioma predeterminadoIdentify the default language

Un reconocedor de voz usa el idioma de voz del sistema como idioma de reconocimiento predeterminado.A speech recognizer uses the system speech language as its default recognition language. El usuario establece este idioma en la pantalla del dispositivo Configuración > Sistema > Voz > Idioma de voz.This language is set by the user on the device Settings > System > Speech > Speech Language screen.

Identificamos el idioma predeterminado comprobando la propiedad estática SystemSpeechLanguage.We identify the default language by checking the SystemSpeechLanguage static property.

var language = SpeechRecognizer.SystemSpeechLanguage; 

Confirmar un idioma instaladoConfirm an installed language

Los idiomas instalados pueden variar entre dispositivos.Installed languages can vary between devices. Debes comprobar la existencia de un idioma si dependes de él para una restricción concreta.You should verify the existence of a language if you depend on it for a particular constraint.

Nota Es necesario reiniciar el equipo después de instalar un nuevo paquete de idioma.Note A reboot is required after a new language pack is installed. Se produce una excepción con el código de error SPERR _ no _ encontrado (0x8004503a) si el idioma especificado no se admite o no ha terminado de instalarse.An exception with error code SPERR_NOT_FOUND (0x8004503a) is raised if the specified language is not supported or has not finished installing.

Determina los idiomas admitidos en un dispositivo al comprobar una de las dos propiedades estáticas de la clase SpeechRecognizer:Determine the supported languages on a device by checking one of two static properties of the SpeechRecognizer class:

Especificar un idiomaSpecify a language

Para especificar un idioma, pasa un objeto Idioma en el constructor SpeechRecognizer.To specify a language, pass a Language object in the SpeechRecognizer constructor.

Aquí se especifica "en-US" como el idioma de reconocimiento.Here, we specify "en-US" as the recognition language.

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

ComentariosRemarks

Una restricción de tema puede configurarse mediante la adición de SpeechRecognitionTopicConstraint a la colección Restricciones de SpeechRecognizer y, luego, llamando a CompileConstraintsAsync.A topic constraint can be configured by adding a SpeechRecognitionTopicConstraint to the Constraints collection of the SpeechRecognizer and then calling CompileConstraintsAsync. Un SpeechRecognitionResultStatus de TopicLanguageNotSupported se devuelve si el reconocedor no se inicializa con un idioma de tema admitido.A SpeechRecognitionResultStatus of TopicLanguageNotSupported is returned if the recognizer is not initialized with a supported topic language.

Una restricción de lista se configura mediante la adición de SpeechRecognitionListConstraint a la colección Restricciones de SpeechRecognizer y, luego, llamando a CompileConstraintsAsync.A list constraint is configured by adding a SpeechRecognitionListConstraint to the Constraints collection of the SpeechRecognizer and then calling CompileConstraintsAsync. No se puede especificar el idioma de una lista personalizada directamente.You cannot specify the language of a custom list directly. En su lugar, la lista se procesará mediante el idioma del reconocedor.Instead, the list will be processed using the language of the recognizer.

Una gramática SRGS es un formato XML estándar abierto representado por la clase SpeechRecognitionGrammarFileConstraint.An SRGS grammar is an open-standard XML format represented by the SpeechRecognitionGrammarFileConstraint class. A diferencia de las listas personalizadas, puedes especificar el idioma de la gramática en el marcado SRGS.Unlike custom lists, you can specify the language of the grammar in the SRGS markup. Se produce un error en CompileConstraintsAsync con un objeto SpeechRecognitionResultStatus de TopicLanguageNotSupported si no se inicializa el reconocedor en el mismo idioma que el marcado SRGS.CompileConstraintsAsync fails with a SpeechRecognitionResultStatus of TopicLanguageNotSupported if the recognizer is not initialized to the same language as the SRGS markup.

MuestrasSamples