语音控制的tab选项卡

时间:2023-03-09 23:18:45
语音控制的tab选项卡
前端开发whqet,****,王海庆,whqet,前端开发专家

ladies and 乡亲们,程序猿同志们,周末仍然坚守工作岗位,或者学习不辍的童鞋们,福音来了。

语音识别高不高端、难不难?

今天给大家推荐一个简单易用的js实现的语音识别框架annyang,然后一个案例示范使用。

语音控制的tab选项卡

在线案例下载收藏

annyang是一个能够实现语音识别的js类库,小巧易用(只2k),兼容中文。接下来我们看看怎么使用。

首先导入该annyang库,能够使用CDN的方式,也能够下载来使用。

<!--下载到本地使用-->
<script src="js/annyang.min.js" type="text/javascript" charset="utf-8"></script>
<!--cdn方式使用-->
<script src="https://www.talater.com/annyang.min.js" type="text/javascript" charset="utf-8"></script>

然后我们就能够在js里使用该类库了,開始之前我们须要推断annyang对象是否存在。

// 首先推断 annyang对象是否存在
if (annyang) {
// 语音识别命令推断 }
else{
// 错误提示信息 }

annyang通过设置命令、语音识别匹配命令的方式的进行工作,详细的使用代码例如以下。

// 首先推断 annyang对象是否存在
if (annyang) {
// 语音识别命令推断 // 定义命令
var commands = {
'go': function() {
window.location.href="http://blog.****.net/whqet/";
},
}; //设置设别语言
annyang.setLanguage('zh-cn');
//打开调试
//annyang.debug('on');
// 加入命令
annyang.addCommands(commands); // 启动语音识别,也能够绑定在事件上
annyang.start();
}else{
// 错误提示信息
}

annyang的基本使用就这样,我们来看看今天的这个tab,详细的实现步骤例如以下。

html

<ul class="tabs">
<li class="active" rel="tab1">新闻</li>
<li rel="tab2">通知</li>
<li rel="tab3">公告</li>
<li rel="tab4">备注</li>
</ul>
<div class="tab_container">
<div id="tab1" class="tab_content">
<h2>新闻</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac metus augue.</p>
</div>
<!-- #tab1 -->
<div id="tab2" class="tab_content">
<h2>通知</h2>
<p>Nunc dui velit, scelerisque eu placerat volutpat, dapibus eu nisi. Vivamus eleifend vestibulum odio non vulputate.</p>
</div>
<!-- #tab2 -->
<div id="tab3" class="tab_content">
<h2>公告</h2>
<p>Nulla eleifend felis vitae velit tristique imperdiet. Etiam nec imperdiet elit. Pellentesque sem lorem, scelerisque sed facilisis sed, vestibulum sit amet eros.</p>
</div>
<!-- #tab3 -->
<div id="tab4" class="tab_content">
<h2>备注</h2>
<p>Integer ultrices lacus sit amet lorem viverra consequat. Vivamus lacinia interdum sapien non faucibus. Maecenas bibendum, lectus at ultrices viverra, elit magna egestas magna, a adipiscing mauris justo nec eros.</p>
</div>
<!-- #tab4 -->
</div>
<!-- .tab_container -->

css

ul.tabs {
margin: 0;
padding: 0;
float: left;
list-style: none;
height: 32px;
border-bottom: 1px solid #333;
width: 100%;
} ul.tabs li {
float: left;
margin: 0;
cursor: pointer;
padding: 0px 21px;
height: 31px;
line-height: 31px;
border-top: 1px solid #333;
border-left: 1px solid #333;
border-bottom: 1px solid #333;
background-color: #666;
color: #ccc;
overflow: hidden;
position: relative;
} .tab_last {
border-right: 1px solid #333;
} ul.tabs li:hover {
background-color: #ccc;
color: #333;
} ul.tabs li.active {
background-color: #fff;
color: #333;
border-bottom: 1px solid #fff;
display: block;
} .tab_container {
border: 1px solid #333;
border-top: none;
clear: both;
float: left;
width: 100%;
background: #fff;
overflow: auto;
} .tab_content {
padding: 20px;
}

js,这里用到了jquery,annyang

$(document).ready(function(){
//普通tab,单击控制
$(".tab_content").hide();
$(".tab_content:first").show();
$('ul.tabs li').last().addClass("tab_last"); $("ul.tabs li").click(function() { $(".tab_content").hide();
$(".tab_content").eq($(this).index()).show(); $("ul.tabs li").removeClass("active");
$(this).addClass("active"); }); // 语音控制,首先推断 annyang对象是否存在。
if (annyang) {
// 定义语音控制命令里使用的函数,切换tab
var showTab=function(i){
$(".tab_content").hide();
$(".tab_content").eq(i).show(); $("ul.tabs li").removeClass("active");
$("ul.tabs li").eq(i).addClass("active");
}; // 定义命令
var commands = {
'新闻': function(){showTab(0)},
'通知': function(){showTab(1)},
'公告': function(){showTab(2)},
'备注': function(){showTab(3)},
}; // 设置语言,默觉得en
annyang.setLanguage('zh-cn');
// 可选设置,调试功能打开,建议开发阶段打开
annyang.debug();
// 加入命令
annyang.addCommands(commands);
// 開始侦听annyang,也能够绑定在事件上
annyang.start();
}
})
That's it. 敬请留言,说说你的意见和建议。
另外,该案例主要使用“Web Speech API”,眼下比較悲催的是该api唯独webkit内核支持,兼容全部浏览器的方案正在研究中,兼容性表格例如以下。
语音控制的tab选项卡
大家也能够在chrome开发人员工具的Console里查看语音的识别情况,有时候普通话不标准也会出问题,呵呵,我女儿今年四半岁,看见我在语音控制也跃跃欲试,然后“通知”说成“同子”,然后就非常急躁,当然成熟的语音识别方案应该也兼容模糊音,浏览器的语音识别还有非常长的路要走。
语音控制的tab选项卡
感谢大家的留言和宝贵意见,有好的解决方式第一时间告诉大家。

----------------------------------------------------------

前端开发whqet,关注web前端开发,分享相关资源,欢迎点赞,欢迎拍砖。
---------------------------------------------------------------------------------------------------------