Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Meer informatie over het afhandelen van problemen met de kwaliteit van audio-invoer tijdens spraakherkenning in uw Windows App SDK-app.
Important
Voor spraakherkenning is een MSIX-pakketidentiteit vereist. De Windows.Media.SpeechRecognition API’s zijn alleen beschikbaar als uw app wordt uitgevoerd met een pakketidentiteit (verpakt of verpakt met een externe locatie). Uitgepakte apps kunnen deze API's niet gebruiken.
Sleutel-API's
Overview
De geluidsinvoerkwaliteit kan van invloed zijn op de nauwkeurigheid van spraakherkenning. Achtergrondruis, gedempte microfoons en lage volumes zijn veelvoorkomende oorzaken van herkenningsfouten.
RecognitionQualityDegrading De gebeurtenis afhandelen om de gebruiker te laten weten wanneer audiokwaliteit mogelijk nauwkeurige herkenning verhindert.
Kwaliteitsdegradatie afhandelen
De RecognitionQualityDegrading gebeurtenis wordt geactiveerd wanneer audioproblemen spraakherkenning kunnen verstoren. Gebruik de SpeechRecognitionQualityDegradingEventArgs.Problem eigenschap om het specifieke probleem te bepalen.
Omdat deze gebeurtenis wordt geactiveerd op een achtergrondthread, gebruikt u DispatcherQueue.TryEnqueue om de gebruikersinterface bij te werken:
private void SpeechRecognizer_RecognitionQualityDegrading(
SpeechRecognizer sender,
SpeechRecognitionQualityDegradingEventArgs args)
{
dispatcherQueue.TryEnqueue(() =>
{
// Show a message or indicator to the user.
// args.Problem identifies the specific audio quality issue.
switch (args.Problem)
{
case SpeechRecognitionAudioProblem.TooFast:
statusTextBlock.Text = "Try speaking more slowly.";
break;
case SpeechRecognitionAudioProblem.TooSlow:
statusTextBlock.Text = "Try speaking a bit faster.";
break;
case SpeechRecognitionAudioProblem.TooQuiet:
statusTextBlock.Text = "Try speaking louder or move closer to the microphone.";
break;
case SpeechRecognitionAudioProblem.TooLoud:
statusTextBlock.Text = "Try speaking more quietly or move farther from the microphone.";
break;
case SpeechRecognitionAudioProblem.TooNoisy:
statusTextBlock.Text = "Background noise is interfering with recognition. Try a quieter environment.";
break;
case SpeechRecognitionAudioProblem.None:
default:
statusTextBlock.Text = "";
break;
}
});
}
Als u deze handler wilt gebruiken, abonneert u zich op de gebeurtenis nadat u uw recognizer hebt gemaakt:
speechRecognizer.RecognitionQualityDegrading += SpeechRecognizer_RecognitionQualityDegrading;
Overwegingen voor de UI-thread
Gebruik in WinUI 3 DispatcherQueue in plaats van CoreDispatcher om aanroepen naar de UI-thread te marshalen. Haal in de constructor van de pagina of initialisatiecode een verwijzing op naar de DispatcherQueue voor de huidige thread:
private Microsoft.UI.Dispatching.DispatcherQueue dispatcherQueue =
Microsoft.UI.Dispatching.DispatcherQueue.GetForCurrentThread();
Gebruik dispatcherQueue.TryEnqueue(...) vervolgens in uw gebeurtenis-handlers om ui-elementen veilig bij te werken.
Verwante artikelen
Windows developer