HTML5语音输入x-webkit-speech方法支持webkit内核
用法很简单
只需要在input添加属性<a target="_blank" href="http://www.wufangbo.com/tag/x-webkit-speech/" title="查看 x-webkit-speech 中的全部文章" style="border: 0px; margin: 0px; padding: 0px; color: #31b2ff;">x-webkit-speech</a>
即可,例子如下:
<input type="text" <a target="_blank" href="http://www.wufangbo.com/tag/x-webkit-speech/" title="查看 x-webkit-speech 中的全部文章" style="border: 0px; margin: 0px; padding: 0px; color: #31b2ff;">x-webkit-speech</a> /
>
这样你的输入框右边里就多了个「小话筒」,点击的时候就会提示
这时说出来识别后就可以了,我测试下来,中文英语的识别率还挺高的。
语音输入其他属性:
lang
这玩意可以强制输入框里面的语音的语言种类,例如
<input type="text" <a target="_blank" href="http://www.wufangbo.com/tag/x-webkit-speech/" title="查看 x-webkit-speech 中的全部文章" style="border: 0px; margin: 0px; padding: 0px; color: #31b2ff;">x-webkit-speech</a> lang="zh-CN"/
>语音事件
目前已知的只有
on<a target="_blank" href="http://www.wufangbo.com/tag/webkit/" title="查看 webkit 中的全部文章" style="border: 0px; margin: 0px; padding: 0px; color: #31b2ff;">webkit</a>speechchange
,顾名思义,就是语音发生变化时触发的事件,一般可以作为提交
<input type="text" x-<a target="_blank" href="http://www.wufangbo.com/tag/webkit/" title="查看 webkit 中的全部文章" style="border: 0px; margin: 0px; padding: 0px; color: #31b2ff;">webkit</a>-speech onwebkitspeechchange="$(this).cloest('form').submit()"/
>
这样说完以后就自动搜索了x-webkit-grammar
这个不是语音搜索用的属性,但是可以控制这个输入的语法,例如在做搜索框的话就可以用
<input type="text" x-webkit-speech x-webkit-grammar="b<a target="_blank" href="http://liumiao.me/html/list_567.html" style="border: 0px; margin: 0px; padding: 0px; color: #31b2ff;">UI</a>ltin:search" /
>
使得语音输入的内容尽量靠近搜索内容,去除多余的字符,例如「的」
这个功能相当有趣,实用就不敢恭维了,主要是因为适用范围太小啊,所以只能希望HTML5尽快统一并应用了。
TextArea
对于TextArea是不能用上述功能的,不过可以从上述方法中变通使用。
<textareaid="txt"></textarea><inputx-webkit-speechid="mike"/>
设置css:
#mike{font-size:25px; width:25px; height:25px; cursor:pointer; border:none; position:absolute; margin-left:5px; outline:none; background:transparent; }#txt{height:150px; width:150px; }
再添加javascript处理:
varmike = document.getElementById('mike'); mike.onfocus = mike.blur; mike.onwebkitspeechchange = function(e){//console.log(e); // SpeechInputEventdocument.getElementById('txt').value = mike.value; };
效果如下:
演示地址:http://www.phpied.com/files/speech-input/speech.html
好了,这个功能只在chrome11及以后版本才支持的。其他浏览器暂时不支持的,不过貌似火狐可以通过插件支持,可以搜索一下。
参考资料:http://www.wufangbo.com/x-webkit-speech/
http://www.w3.org/2005/Incubator/htmlspeech/2010/10/google-api-draft.html