Web 语音 api 几秒钟后关闭
Web speech api closes after some seconds
我正在使用网络语音api
https://www.google.com/intl/en/chrome/demos/speech.html
但麦克风会在几秒钟后自动关闭,但我必须仅在用户单击关闭按钮时关闭混音。
解决此问题的任何解决方案。
谢谢
您应该将识别服务标记为连续的,如果没有activity。
超时后停止,您可能会重新启动记录器
<button onclick='toggleRecording()'>Toggle recorder</button>
<div id='results'></div>
<script>
window.SpeechRecognition = window.SpeechRecognition ||
window.webkitSpeechRecognition;
let recognition = new window.SpeechRecognition()
let recording = false;
let results = null;
recognition.continuous = true;
function toggleRecording() {
if(recording) {
recognition.onend = null;
recognition.stop();
recording = false;
// Printing all results we got so far.
if(results) {
let resultsDiv = document.getElementById('results')
for(let i=0; i<results.length; ++i)
resultsDiv.innerHTML = resultsDiv.innerHTML + results.item(i)[0].transcript
}
} else {
recognition.onend = onEnd;
recognition.start();
recording = true;
}
}
function onEnd() {
console.log('Speech recognition has stopped. Starting again ...');
recognition.start();
}
function onSpeak(e) {
results = e.results;
console.log(e.results[e.results.length-1][0].transcript);
}
recognition.addEventListener('result', onSpeak);
</script>
我正在使用网络语音api
https://www.google.com/intl/en/chrome/demos/speech.html
但麦克风会在几秒钟后自动关闭,但我必须仅在用户单击关闭按钮时关闭混音。
解决此问题的任何解决方案。 谢谢
您应该将识别服务标记为连续的,如果没有activity。
超时后停止,您可能会重新启动记录器 <button onclick='toggleRecording()'>Toggle recorder</button>
<div id='results'></div>
<script>
window.SpeechRecognition = window.SpeechRecognition ||
window.webkitSpeechRecognition;
let recognition = new window.SpeechRecognition()
let recording = false;
let results = null;
recognition.continuous = true;
function toggleRecording() {
if(recording) {
recognition.onend = null;
recognition.stop();
recording = false;
// Printing all results we got so far.
if(results) {
let resultsDiv = document.getElementById('results')
for(let i=0; i<results.length; ++i)
resultsDiv.innerHTML = resultsDiv.innerHTML + results.item(i)[0].transcript
}
} else {
recognition.onend = onEnd;
recognition.start();
recording = true;
}
}
function onEnd() {
console.log('Speech recognition has stopped. Starting again ...');
recognition.start();
}
function onSpeak(e) {
results = e.results;
console.log(e.results[e.results.length-1][0].transcript);
}
recognition.addEventListener('result', onSpeak);
</script>