0

我正在做一个项目,需要以包含输入任务名称 type=text 和 id=task_name 的形式输入数据。用户应该能够使用 annyang 语音识别输入数据,annyang 正在启动并且可以在页面上看到红点,但是当传递命令时什么都没有显示,我是不是在某个地方出错了。单击一个按钮将使 annyang 启动,之后用户可以添加使用语音命令来输入数据,但语音命令不起作用。

这是我的代码

<script>
        
    start_vc.addEventListener('click', () => {

    const speech = new SpeechSynthesisUtterance();

    speech.text = 'How can i help you!';
    speech.lang = 'en-UK';
    speech.volume = 1;
    speech.rate = 1;
    speech.pitch = 1;
    
    window.speechSynthesis.speak(speech);

    if (annyang) {
        
        var commands = {

            'input task name': function(variable) {
                let task_name = document.getElementById("task_name");
                task_name.value = variable;
            }
        };
      
        // Add our commands to annyang
        annyang.addCommands(commands);
      
        // Start listening.
        annyang.start();
      }

});
    </script>

我是否在某处犯了错误,如果我犯了错误,有人可以告诉我这是什么我对 javascript 很陌生

4

1 回答 1

0

您的代码将使annyang监听语音命令“输入任务名称”,因为您在此处定义了该命令:

在此处输入图像描述

尝试说“输入任务名称”,看看它是否将该句子放入task_name字段中。

您将希望用可以捕获用户所说的任何句子的命令替换该文本。

例如:

var commands = {
    '*variable': function(variable) {
        let task_name = document.getElementById("task_name");
        task_name.value = variable;
    }
};

annyang.addCommands(commands);

我还建议annyang.debug()在开发时添加到您的代码中。

于 2021-04-07T18:59:45.640 回答