Я использую следующую демоверсию для распознавания речи. Он работает, но иногда занимает больше времени, чтобы загрузить или распознать речевой текст. Не знаю, почему это так! Но есть ли способ установить тайм-аут по умолчанию для функции распознавания, чтобы, если превышен максимальный максимальный тайм-аут по умолчанию, вызовите другую функцию обратного вызова?Веб-речь api с тайм-аутом по умолчанию в Javascript
<script>
// Test browser support
window.SpeechRecognition = window.SpeechRecognition ||
window.webkitSpeechRecognition ||
null;
if (window.SpeechRecognition === null) {
document.getElementById('ws-unsupported').classList.remove('hidden');
document.getElementById('button-play-ws').setAttribute('disabled', 'disabled');
document.getElementById('button-stop-ws').setAttribute('disabled', 'disabled');
} else {
var recognizer = new window.SpeechRecognition();
var transcription = document.getElementById('transcription');
var log = document.getElementById('log');
// Recogniser doesn't stop listening even if the user pauses
recognizer.continuous = true;
// Start recognising
recognizer.onresult = function(event) {
transcription.textContent = '';
for (var i = event.resultIndex; i < event.results.length; i++) {
if (event.results[i].isFinal) {
transcription.textContent = event.results[i][0].transcript + ' (Confidence: ' + event.results[i][0].confidence + ')';
} else {
transcription.textContent += event.results[i][0].transcript;
}
}
};
// Listen for errors
recognizer.onerror = function(event) {
log.innerHTML = 'Recognition error: ' + event.message + '<br />' + log.innerHTML;
};
document.getElementById('button-play-ws').addEventListener('click', function() {
// Set if we need interim results
recognizer.interimResults = document.querySelector('input[name="recognition-type"][value="interim"]').checked;
try {
recognizer.start();
log.innerHTML = 'Recognition started' + '<br />' + log.innerHTML;
} catch(ex) {
log.innerHTML = 'Recognition error: ' + ex.message + '<br />' + log.innerHTML;
}
});
document.getElementById('button-stop-ws').addEventListener('click', function() {
recognizer.stop();
log.innerHTML = 'Recognition stopped' + '<br />' + log.innerHTML;
});
document.getElementById('clear-all').addEventListener('click', function() {
transcription.textContent = '';
log.textContent = '';
});
}
</script>
Заранее благодарен!
Тайм-аут не является надежным, то API должно быть предусмотрено 'полные/success' методы обратного вызова. – Tushar
Да, но это займет больше времени, чем ожидалось, чтобы попасть в эти функции. –
У меня есть аналогичная проблема [здесь] (http://stackoverflow.com/questions/39255731/speech-recognition-listen-to-long), разрешили ли вы это? – foczki