簡體   English   中英

使用Java腳本和語音識別在網站上單擊按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM