Como gerenciar problemas com entrada de áudio (HTML)
[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]
Saiba como gerenciar problemas com precisão do reconhecimento de fala causados pela qualidade e condição de entrada de áudio.
O que você precisa saber
Tecnologias
Pré-requisitos
Este tópico faz parte do Guia de início rápido: reconhecimento de fala.
Para concluir este tutorial, dê uma olhada nestes tópicos para se familiarizar com as tecnologias discutidas aqui:
- Instale o Microsoft Visual Studio.
- Obter uma licença de desenvolvedor. Para obter instruções, veja Desenvolver usando o Visual Studio 2013.
- Crie seu primeiro aplicativo em JavaScript.
- Mapa para os aplicativos da Windows Store usando JavaScript
- Saiba mais sobre eventos com Guia de início rápido: adicionando controles HTML e manipulando eventos
- Veja em Diretrizes de design de fala dicas úteis sobre o design de um aplicativo habilitado para fala interessante e útil.
Instruções
Etapa 1: Avaliar a qualidade de entrada de áudio
Quando o reconhecimento de fala estiver ativo, use o evento RecognitionQualityDegrading de seu reconhecedor de fala para determinar se um ou mais problemas de áudio podem estar interferindo na entrada de fala. O argumento do evento (SpeechRecognitionQualityDegradingEventArgs) fornece a propriedade problem, que descreve os problemas detectados com a entrada de áudio.
O reconhecimento pode ser afetado por excesso de ruído de fundo, um microfone mudo e o volume ou a velocidade do alto-falante.
Aqui, configuramos um reconhecedor de fala e começamos a escutar o evento recognitionqualitydegrading.
function buttonSpeechRecognizerQualityDegradingClick() {
// Create an instance of a speech recognizer.
var speechRecognizer =
new Windows.Media.SpeechRecognition.SpeechRecognizer();
// Listen for audio input issues.
speechRecognizer.addEventListener(
"recognitionqualitydegrading",
onRecognitionQualityDegrading,
false);
// Compile the default dictation grammar.
speechRecognizer.compileConstraintsAsync().then(
// Success function.
function (result) {
// Start recognition.
speechRecognizer.recognizeWithUIAsync().done();
},
// Error function.
function (err) {
WinJS.log && WinJS.log("Constraint compilation failed.");
});
speechRecognizer.close();
}
Etapa 2: Gerenciar a experiência de reconhecimento de fala
Use a descrição fornecida pela propriedade problem para ajudar o usuário a melhorar condições para o reconhecimento.
Aqui, criamos um manipulador para o evento recognitionqualitydegrading que verifica se há um nível de volume baixo. Em seguida, usamos um objeto SpeechSynthesizer para sugerir que o usuário tente falar mais alto.
function onRecognitionQualityDegrading(args) {
// Create an instance of a speech synthesis engine (voice).
var speechSynthesizer =
new Windows.Media.SpeechSynthesis.SpeechSynthesizer();
// Create an object for controlling and playing an audio stream.
var audio = new Audio();
// If input speech is too quiet, prompt the user to speak louder.
if (args.problem === Windows.Media.SpeechRecognition.SpeechRecognitionAudioProblem.tooQuiet) {
// Generate the audio stream from plain text.
speechSynthesizer.synthesizeTextToStreamAsync("Try speaking louder").done(
// Success function.
function (markersStream) {
// Convert the stream to a URL Blob.
var blob = MSApp.createBlobFromRandomAccessStream(markersStream.ContentType, markersStream);
// Send the Blob to the audio object.
audio.src = URL.createObjectURL(blob, { oneTimeOnly: true });
// Start at beginning.
markersStream.seek(0);
audio.play();
},
// Error function.
function (err) {
WinJS.log && WinJS.log("Speech synthesis failed.");
});
}
speechSynthesizer.close();
}
Tópicos relacionados
Respondendo a interações de fala
Designers