Код распознавания речи реализован на JavaScript для браузеров и отлично работает, если веб-страница открыта на настольный компьютер.
Однако, если веб-страница открыта на мобильном устройстве Android, она не работает.
Хотя экземпляр SpeechRecouncer создан правильно, и мобильное устройство указывает, что микрофон активен, похоже, что микрофон не издает никаких звуков, поэтому распознаватель просто ждет — во время этого ожидания не возникает никаких событий.
Кроме того, во время этого ожидания не отображается никаких ошибок.Вот фрагмент кода моей реализации:
Код: Выделить всё
function startSpeechRecognition(language) {
const speechConfig = SpeechSDK.SpeechConfig.fromSubscription(key_xxx, sReg_yyy);
speechConfig.speechRecognitionLanguage = language;
const audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();
var myRecognizer = new SpeechSDK.SpeechRecognizer(speechConfig, audioConfig);
myRecognizer.recognized = (recognizer, event) => {
switch (event.result.reason) {
case SpeechSDK.ResultReason.NoMatch:
break;
case SpeechSDK.ResultReason.RecognizedSpeech:
onRecognizedText(speechConfig.speechRecognitionLanguage, event.result.text);
break;
case SpeechSDK.ResultReason.Canceled:
const cancellation = SpeechSDK.CancellationDetails.fromResult(event.result);
console.log(`CANCELED: Reason=${cancellation.reason}`);
if (cancellation.reason == SpeechSDK.CancellationReason.Error) {
console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`);
console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`);
}
recognizer.stopContinuousRecognitionAsync();
break;
}
};
myRecognizer.startContinuousRecognitionAsync(() => { }, e => console.error(e));
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... id-devices