个性化阅读
专注于IT技术分析

如何使用javascript向你的网页添加语音命令

你是否曾经在人生的某个阶段向计算机下达命令并期望得到答案? Tony Stark与Jarvis交谈的方式确实很流畅, 可惜我们在本文中所能实现的目的, 并且该库是有限的, 并且在与计算机交谈时, 你几乎必须手动设置几乎所有内容, 以产生流畅的感觉。 Javascript和webkitSpeechRecognition。

如何使用javascript向你的网页添加语音命令

现在你已经是一名开发人员, 伟大的一天已经变成了, 使用语音命令创建一个网站, 该网站可以根据你的需要进行灵活调整。 HTML5语音识别API使JavaScript可以访问浏览器的音频流并将其转换为文本。多亏了Artyom.js一个语音命令库处理程序, 该任务才是小菜一碟。

注意:WebkitSpeechRecognition仅在Google Chrome中可用, 希望将来该功能成为所有浏览器的标准, 但是目前我们只能在此浏览器中尝试artyom。

每个命令都是具有两个键-值关系的文字对象:

  • index:触发该命令的所有可用单词
  • description:在命令中添加一些描述
  • action:如果语音触发此命令将执行的功能

在此处阅读有关命令的更多信息。

在head标签中将库添加到文档中(你可以在github的官方存储库中获取库的副本):

<!DOCTYPE>
<html>
  <head>
    <title>Cooking with artyom.js</title>
    <!-- Important to load artyom in the head tag, this give time to load all the voices in the browser -->
    <script type="text/javascript" src="path/to/artyom.min.js"></script>
    <script>
         // Create a global accesible instance of artyom
         window.artyom = new Artyom();
    </script>
  </head>
  <body>

    <script>
      // Artyom is available!
    </script>
  </body>
</html>

添加命令。阅读文档并了解此处命令的工作方式非常重要, artyom允许你添加智能命令和普通命令。

当用户讲话并且识别的文本与命令的某些索引(包含在数组中)匹配时, 将触发普通命令, 例如:

// A normal command

artyom.addCommands({
  indexes:["Hello", "Hey", "Hurra"],   action: function(i){
    // i = index of the recognized option
    console.log("Something matches");
  }
});

智能命令允许检索命令的某些口头文本, 对于获取变量操作的名称非常有用, 例如:

artyom.addCommands({
  smart:true, // We need to say that this command is smart !
  indexes:["How many people live in *"], // * = the spoken text after How many people live in is recognized
  action:function(i, wildcard){
    switch(wildcard){
      case "berlin":
        alert("Why should i know something like this ?");
      break;
      case "paris":
        alert("I don't know");
      break;
      default:
        alert("I don't know what city is " + * + ". try to increase the switch cases !");
      break;
    }
  }
});

验证你的命令是否使用artyom.simulateInstruction起作用, 此功能可让你模拟语音命令并显示用户说话时的工作方式, 例如(使用先前的命令):

artyom.simulateInstruction("How many people live in Paris");
// alert("I don't know ._.");

启动artyom, initialize函数将为你解决问题。你只需要正确设置它, 一切就可以正常工作, 你需要提供的基本选项是:

  • lang:受支持的artyom语言的代码(请参见此处的列表)
  • 连续:布尔值, 如果你使用的是https连接, 则可以设置为true, 否则始终设置为false(因为这将激活1命令模式)
  • listen:Boolean, 如果设置为true, 则artyom将开始监听, 否则仅保存以前的设置。
  • debug:布尔值, 如果设置为true, 则所有可识别的文本和许多信息将显示在控制台中

而且使用起来非常简单:

artyom.initialize({
   lang:"en-GB", // More languages are documented in the library
   continuous:false, //if you have https connection, you can activate continuous mode
   debug:true, //Show everything in the console
   listen:true // Start listening when this function is triggered
});

// Artyom has been started ;)

如果要停止关节抽搐, 请使用致命功能。 artyom实例将立即停止。

artyom.fatality();

Artyom是Google Chrome的SpeechRecognition和speechSynthesis api的强大包装, 这意味着artyom具有许多很棒的功能, 这些功能可能对个人语音命令项目有用。

  • 阅读Artyom.js的官方文档
  • Artyom.js可以使你的浏览器与artyom.say指令轻松对话
  • 需要在本地或远程服务器(http或https)中使用Artyom, 否则出于安全原因, 你不能使用webkitSpeechRecognition API
  • Artyom需要https协议才能在连续模式下工作(永久语音助手)
赞(0)
未经允许不得转载:srcmini » 如何使用javascript向你的网页添加语音命令

评论 抢沙发

评论前必须登录!