你是否曾经在人生的某个阶段向计算机下达命令并期望得到答案? Tony Stark与Jarvis交谈的方式确实很流畅, 可惜我们在本文中所能实现的目的, 并且该库是有限的, 并且在与计算机交谈时, 你几乎必须手动设置几乎所有内容, 以产生流畅的感觉。 Javascript和webkitSpeechRecognition。
现在你已经是一名开发人员, 伟大的一天已经变成了, 使用语音命令创建一个网站, 该网站可以根据你的需要进行灵活调整。 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协议才能在连续模式下工作(永久语音助手)
评论前必须登录!
注册