淘宝网的语音搜索也有了一阵子了,但似乎都没看到相关的博客或帖子在说这个如何实现,今天查了点资料,发现原来实现是如此简单,可能是因为太简单了,也就没有人讨论了吧。
其实实现只需一句代码即可:
x-webkit-speech
一看到这句代码,想到了什么?对,这说明语音搜索只支持webkit内核浏览器,那么这段代码具体要放在哪呢?
<input type="text" class="text" name="value_2" id="value_2" x-webkit-speech>
放在文本输入框内就行了,其他的什么都不用做,看
当然还有一些其他的参数,比如设置语音限制语言种类
<input type="text" class="text" name="value_2" id="value_2" x-webkit-speech lang="zh-CN">
还有设置语音输入语法的参数,这个就比较试用于搜索框。加上这参数后,系统就会自动去掉“的”、“啦”这类无意义的字
<input type="text" class="text" name="value_2" id="value_2" x-webkit-speech x-webkit-grammar="bUIltin:search">
当然在测试时候发现一个小问题,就是当具有语音搜索的页面是iframe页面时,点击麦克风后,“请开始说话”这浮动层就不跟随input输入框了
http://www.cnblogs.com/hooray/archive/2012/02/08/2343287.html
HTML5语音输入(淘宝语音搜索)方法
谷歌的网站是时逛时新啊,今天在他们首页发现了HTML5的新玩法——语音搜索。可惜的是只有webkit核心的浏览器才能使用。用法很简单
只需要在input添加属性x-webkit-speech
即可,例子如下:
<input type="text" x-webkit-speech /
>
这样你的输入框右边里就多了个「小话筒」,点击的时候就会提示
这时说出来识别后就可以了,我测试下来,中文英语的识别率还挺高的。
语音输入其他属性:
-
lang
这玩意可以强制输入框里面的语音的语言种类,例如
<input type="text" x-webkit-speech lang="zh-CN"/
> -
语音事件
目前已知的只有
onwebkitspeechchange
,顾名思义,就是语音发生变化时触发的事件,一般可以作为提交
<input type="text" x-webkit-speech onwebkitspeechchange="$(this).cloest('form').submit()"/
>
这样说完以后就自动搜索了 -
x-webkit-grammar
这个不是语音搜索用的属性,但是可以控制这个输入的语法,例如在做搜索框的话就可以用
<input type="text" x-webkit-speech x-webkit-grammar="bUIltin:search" /
>
使得语音输入的内容尽量靠近搜索内容,去除多余的字符,例如「的」
这个功能相当有趣,实用就不敢恭维了,主要是因为适用范围太小啊,所以只能希望HTML5尽快统一并应用了。