【发布时间】:2022-01-10 14:18:30
【问题描述】:
我正在使用网络语音 api
https://www.google.com/intl/en/chrome/demos/speech.html
但麦克风会在几秒钟后自动关闭,但我只有在用户点击关闭按钮时才需要关闭混音。
解决此问题的任何解决方案。 谢谢
【问题讨论】:
标签: javascript speech-recognition speech-to-text webspeech-api
我正在使用网络语音 api
https://www.google.com/intl/en/chrome/demos/speech.html
但麦克风会在几秒钟后自动关闭,但我只有在用户点击关闭按钮时才需要关闭混音。
解决此问题的任何解决方案。 谢谢
【问题讨论】:
标签: javascript speech-recognition speech-to-text webspeech-api
您应该将识别服务标记为连续,如果在没有活动的情况下超时后停止,则可以重新启动记录器。
<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>
【讨论】: