5

我正在尝试使用 annyang 将语音转换为文本,但我遇到了一些问题。它可以工作,但还有一些事情还没有。首先,我想知道如何将用户所说的内容传递给警报功能。接下来,我想知道用户说完后如何结束annyang功能。最后,我想知道如何让允许和禁止麦克风提示一旦出现一次又一次出现。

<script>
if (annyang) {

  var commands = {
    'Hello': function() {
      alert("Success");
    }
  };

  annyang.addCommands(commands);

}
</script>

<input type = 'submit' value = 'listen' onclick = "annyang.start();">
4

3 回答 3

4

不使用 annyang 转换为文本,您可以使用原始的 google speechrecognition demo 测试自己

原始演示

查看上面的源代码,您将轻松地使用 SpeechRecognition 做您想做的事

我推荐这个,因为 annyang 更像是一个语音控制插件。另一方面,如果您想为此使用库,您可以使用Artyom.js 。

Artyom 提供了一个简单的“听写”对象,可以快速将语音转换为文本:

var settings = {
    continuous:true, // Don't stop never because i have https connection
    onResult:function(text){
        console.log(text);
    },
    onStart:function(){
        console.log("Dictation started by the user");
    },
    onEnd:function(){
        alert("Dictation stopped by the user");
    }
};

var UserDictation = artyom.newDictation(settings);

// Start listening
UserDictation.start();

// To stop
//UserDictation.stop();

语言需要在初始化方法中提供。

于 2015-08-19T10:44:16.287 回答
3
var anything = function(anything) {
    alert(anything);
};
var commands = {
    '*anything': anything
};

这有效,也不会警告定义的命令

于 2016-01-21T00:43:55.353 回答
1

我想知道如何将用户所说的内容传递给警报功能。

你可以做类似的事情

<script>
if (annyang) {

  var commands = {
    'Hello :variable': function(variable) {
      alert(variable);
    }
  };

  annyang.addCommands(commands);

}
</script>

variable是 webspeech-api 已识别的字符串。

接下来,我想知道用户说完后如何结束annyang功能。

设置continuous为假。当用户说完后,安阳会自动停止识别。

annyang.start({ autoRestart: false, continuous: false });

您还可以添加一个回调函数,当语音识别完成时,annyang 将调用该函数:

annyang.addCallback('end', function () { // your code here});

最后,我想知道如何让允许和禁止麦克风提示一旦出现一次又一次出现。

防止这种情况的唯一方法是通过httpsnot传递站点。http没有其他方法可以实现它。它还将提高识别速度。

于 2015-08-19T07:43:41.610 回答