Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba como lidar com problemas de qualidade de entrada de áudio durante o reconhecimento de fala em seu aplicativo SDK do Aplicativo Windows.
Importante
O reconhecimento de fala requer a identidade do pacote MSIX. As APIs Windows.Media.SpeechRecognition estão disponíveis apenas quando seu aplicativo é executado com identidade de pacote (empacotado ou empacotado com localização externa). Aplicativos não empacotados não podem usar essas APIs.
APIs de chave
Visão geral
A qualidade da entrada de áudio pode afetar a precisão do reconhecimento de fala. Ruído de plano de fundo, microfones abafados e baixo volume são causas comuns de falha de reconhecimento. Manipule o RecognitionQualityDegrading evento para informar ao usuário quando a qualidade do áudio pode impedir o reconhecimento preciso.
Lidar com a degradação da qualidade
O RecognitionQualityDegrading evento é acionado quando problemas de áudio podem interferir no reconhecimento de fala. Use a SpeechRecognitionQualityDegradingEventArgs.Problem propriedade para determinar o problema específico.
Como esse evento é acionado em um thread em segundo plano, use DispatcherQueue.TryEnqueue para atualizar a interface do usuário:
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;
}
});
}
Para usar esse manipulador, assine o evento depois de criar o reconhecedor:
speechRecognizer.RecognitionQualityDegrading += SpeechRecognizer_RecognitionQualityDegrading;
Considerações sobre a thread da interface do usuário
No WinUI 3, use DispatcherQueue em vez de CoreDispatcher para encaminhar chamadas para o thread da interface do usuário. Obtenha uma referência ao DispatcherQueue do thread atual no construtor da página ou na lógica de inicialização:
private Microsoft.UI.Dispatching.DispatcherQueue dispatcherQueue =
Microsoft.UI.Dispatching.DispatcherQueue.GetForCurrentThread();
Em seguida, use dispatcherQueue.TryEnqueue(...) em seus manipuladores de eventos para atualizar com segurança os elementos da interface do usuário.
Artigos relacionados
Windows developer