[英]Click button on website using java-script and speech recognition
新手在這里。 我在必須單擊按鈕的網站上工作。 我需要能夠使用語音識別基於其DIV ID單擊按鈕。 假設一個可點擊的按鈕div的ID為1,我想口頭說一個,然后單擊該按鈕。
我猜我需要結合語音識別API的Javascript點擊功能。 我可以使用Javascript處理HTML DOM,但是如何與離線語音識別API交互。 我應該使用哪一個?如何使用它?
如果要測試語音識別,可以檢查MDN文檔,該頁面包含帶有演示的github鏈接。
這是我基於顏色示例的代碼( <com.sun.speech.app.numbers.*>
取自有關語法的w3c文檔 )
<!DOCTYPE html>
<html>
<body>
<script>
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition;
var SpeechGrammarList = SpeechGrammarList || webkitSpeechGrammarList;
var SpeechRecognitionEvent = SpeechRecognitionEvent || webkitSpeechRecognitionEvent;
var grammar = '#JSGF V1.0; import <com.sun.speech.app.numbers.*>; grammar numbers; public <number> = <com.sun.speech.app.numbers.*>;'
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;
//recognition.continuous = false;
recognition.lang = 'en-US';
recognition.interimResults = true;
recognition.maxAlternatives = 1;
recognition.onerror = function(event) {
console.log(event.error);
};
document.body.onclick = function() {
recognition.start();
console.log('Ready to receive a number command.');
};
recognition.onresult = function(event) {
var numbers = ['zero', 'one', 'two'];
console.log(event.results);
var last = event.results.length - 1;
var number = event.results[last][0].transcript;
console.log(numbers[number]);
var node = document.querySelector("#" + numbers[number]);
if (node) {
node.style.color = 'red';
}
};
</script>
<div id="one">one</div>
<div id="two">two</div>
</body>
</html>
不幸的是,Stack Snippets禁用了語音識別,但這是指向Codepen的鏈接 ,瀏覽器中的IMO語音識別不是很好,它無法識別您在說的單詞,您需要重復幾次以使其正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.