Delen via


De taal voor spraakherkenning opgeven

Meer informatie over het selecteren van een geïnstalleerde taal die moet worden gebruikt voor spraakherkenning.

Belangrijke API's: OndersteundeOnderwerptalen, OndersteundeGrammaticaTalen, Taal

Hier inventariseren we de talen die op een systeem zijn geïnstalleerd, identificeren wat de standaardtaal is en selecteren we een andere taal voor herkenning.

Voorwaarden:

Dit onderwerp bouwt voort op spraakherkenning.

U moet basiskennis hebben van spraakherkennings- en herkenningsbeperkingen.

Als u geen ervaring hebt met het ontwikkelen van Windows-apps, bekijkt u deze onderwerpen om vertrouwd te raken met de technologieën die hier worden besproken.

Richtlijnen voor gebruikerservaring:

Zie Richtlijnen voor spraakontwerp voor nuttige tips over het ontwerpen van een nuttige en boeiende spraakgestuurde app.

De standaardtaal identificeren

Een spraakherkenningsfunctie gebruikt de systeemtaal voor spraak als standaardherkenningstaal. Deze taal wordt ingesteld door de gebruiker op het scherm Systeemtaal > spraaktaal > van het apparaat>.

We identificeren de standaardtaal door de statische eigenschap SystemSpeechLanguage te controleren.

var language = SpeechRecognizer.SystemSpeechLanguage; 

Een geïnstalleerde taal bevestigen

Geïnstalleerde talen kunnen per apparaat verschillen. U moet het bestaan van een taal controleren als u hiervan afhankelijk bent voor een bepaalde beperking.

Notitie Opnieuw opstarten is vereist nadat een nieuw taalpakket is geïnstalleerd. Er wordt een uitzondering met foutcode SPERR_NOT_FOUND (0x8004503a) gegenereerd als de opgegeven taal niet wordt ondersteund of niet is geïnstalleerd.

 

Bepaal de ondersteunde talen op een apparaat door een van de twee statische eigenschappen van de Klasse SpeechRecognizer te controleren:

Een taal opgeven

Als u een taal wilt opgeven, geeft u een taalobject door in de SpeechRecognizer-constructor .

Hier geven we 'en-US' op als de herkenningstaal.

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

Opmerkingen

Een onderwerpbeperking kan worden geconfigureerd door een SpeechRecognitionTopicConstraint toe te voegen aan de verzameling Beperkingen van de SpeechRecognizer en vervolgens CompileConstraintsAsync aan te roepen. Een SpeechRecognitionResultStatus van TopicLanguageNotSupported wordt geretourneerd als de recognizer niet is geïnitialiseerd met een ondersteunde onderwerptaal.

Een lijstbeperking wordt geconfigureerd door een SpeechRecognitionListConstraint toe te voegen aan de verzameling beperkingen van de SpeechRecognizer en vervolgens CompileConstraintsAsyncaan te roepen. U kunt de taal van een aangepaste lijst niet rechtstreeks opgeven. In plaats daarvan wordt de lijst verwerkt met behulp van de taal van de recognizer.

Een SRGS-grammatica is een open-standaard XML-indeling die wordt vertegenwoordigd door de klasse SpeechRecognitionGrammarFileConstraint . In tegenstelling tot aangepaste lijsten kunt u de taal van de grammatica opgeven in de SRGS-opmaak. CompileConstraintsAsync- mislukt met een SpeechRecognitionResultStatus van TopicLanguageNotSupported als de herkenner niet is ingesteld om dezelfde taal te gebruiken als de SRGS-markering.

Voorbeelden