html5网页录音和语音识别
背景
在输入方式上,人们总是在追寻一种更高效,门槛更低的方式,来降低用户使用产品的学习成本。语音输入也是一种尝试较多的方式,有些直接使用语音(如微信语音聊天),有些需要将语音转化为文字(语音识别)。接下来的内容是一次在pc浏览器上进行语音识别输入的一种尝试。 ### 实现 调研阶段,chrome是支持语音识别的。它支持了一系列的接口,可以进行语音识别。参考HTML5的Speech API相关标准的现状
但是使用这些接口有一些困难,连不上服务器。此路不通。
那么,可以使用笨点儿的方法,先录音再上传到指定语音识别服务器,进行语音识别。这里使用的是百度语音开放平台(http://yuyin.baidu.com/)的语音识别接口,支持8k,16k的单声道的wav文件,或者pcm。尝试了8k的识别效果,跟16k的差了好远。就使用了16k,单声道wav文件,上传到语音识别服务器。
关于录音,主要步骤就是使用navigator.getUserMedia来获取用户的输入设备,成功之后使用webkitAudioContext来创建音频实例。在录音结束之后,将录音的流导出为文件,上传即可。录音的可以参考这个recorder.js,只要稍微做一下修改就可以应用。其中需要处理音频采样率,默认的采样率为44.1k,这里需要做一个转换,具体方法可以参考HTML5网页录音和压缩,边猜边做
在浏览器扩展中,没有明确的方式去获取用户对录音的授权。可以在扩展的optionpage里面申请授权,之后在扩展的所有页面都有权限了。在较新的chrome浏览器里测过可以用。参考这里:How do I give webkitGetUserMedia permission in a Chrome Extension popup window
demo
这里有一个chrome扩展的demo,实现了通过语音采样,生成wav文件上传到语音识别服务器的功能。其中做了一个比较简单的端点检测,通过音量的大小来确定输入的完成。
http://github.com/veizz/speec...
一些思考 * demo其实是用来参与公司举办的一届hackathon比赛,主要实现了语音在线识别,文字播报等功能。在后期还有想法加入了一些自然语音处理的功能,可以识别一些输入指令。如『打开百度首页』、『上淘宝买衣服』等功能。会打开指定网站,自动填写输入词,执行搜索。还可以做一些小功能,比如说语音输入『查询天气』、『买电影票』等常用功能,在popup的窗口里面打开等。
一切的想法都看起来很美好,但在大家都熟悉了打字输入的今天,还有多少人愿意使用语音识别做为输入方式?而对于不会打字的人,能否使用标准的普通话来进行语音识别的输入? * 采样率的处理是通过js的文件操作来实现的。html5支持的fileapi强大如此,怪不得有人用js做视频解码器,不考虑性能的话,看起来很美好啊
参考
http://www.cnblogs.com/jz1108...
https://dvcs.w3.org/hg/speech...
http://codeartists.com/post/3...
http://stackoverflow.com/ques...
http://www.cnblogs.com/blqw/p...
http://ibillxia.github.io/blo...
http://stackoverflow.com/ques...
http://www.web-tinker.com/art...
html5网页录音和语音识别的更多相关文章
- HTML5网页录音和压缩,边猜边做..(附源码)
宣传一下自己的qq群: (暗号:C#交流) 欢迎喜欢C#,热爱C#,正在学习C#,准备学习C#的朋友来这里互相学习交流,共同进步 群刚建,人不多,但是都是真正热爱C#的 我也是热爱C#的 希望大家可以 ...
- HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信
准备做一个网页版聊天界面,表情啊.图片啊.上传文件啊都应该要有,视频就算了,语音还是要的. 本文记录的是在网页上用GitHub上的Recorder进行在线录音和上传到服务器,前几天升了一下级,以后有时 ...
- html5网页录音
demo https://xiangyuecn.github.io/Recorder/
- 20款响应式的 HTML5 网页模板【免费下载】
下面的列表集合了20款响应式的 HTML5 网页模板,这些专业的模板能够让你的网站吸引很多的访客.除了好看的外观,HTML5 模板吸引大家的另一个原因是由于其响应性和流动性.赶紧来看看. 您可能感兴趣 ...
- 免费的HTML5连载来了《HTML5网页开发实例详解》连载(二)
最近新浪.百度.腾讯.京东.大众点评.淘宝等流行的网站都加大了招聘HTML5的力度,HTML5开发人员成了抢手货,本次连载的是由大众点评前端工程师和一淘网前端工程师基情奉献的<HTML5网页开发 ...
- 浅谈html5网页内嵌视频
更好的阅读体验:浅谈html5网页内嵌视频 如今在这个特殊的时代下:flash将死未死,微软和IE的历史问题,html5标准未定,苹果和谷歌的闭源和开源之争,移动互联网的大势所趋,浏览器各自为战... ...
- html5网页动画总结--jQuery旋转插件jqueryrotate
CSS3 提供了多种变形效果,比如矩阵变形.位移.缩放.旋转和倾斜等等,让页面更加生动活泼有趣,不再一动不动.然后 IE10 以下版本的浏览器不支持 CSS3 变形,虽然 IE 有私有属性滤镜(fil ...
- 免费的HTML5连载来了《HTML5网页开发实例详解》连载(六)媒体查询
响应式设计的另一个重要技术手段是媒体查询.如果只是简单的设计一个流式布局系统,那么可以保证每个网格按比例的放大和缩小,但有可能会使得在小屏幕下(如手机设备)网格太小而严重影响阅读,这样的设计称不上响应 ...
- 免费的HTML5连载来了《HTML5网页开发实例详解》连载(五)图解通过Fiddler加速开发
Fiddler是Windows底下最强大的请求代理调试工具,监控任何浏览器的HTTP/HTTPS流量,窜改客户端请求和服务器响应,解密HTTPS Web会话,图4.44为Fiddler原理示意图. 图 ...
随机推荐
- Python——函数设计与案例
函数设计与案例 一. 函数的定义与调用 如果在开发程序时,需要多次使用某块代码,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小块,这就是函数 打印如下 print('人生 ...
- DFT/FFT/NTT
在Seal库和HElib库中都用到了NTT技术,用于加快多项式计算,而NTT又是FFT的优化,FFT又来自于DFT,现在具体学习一下这三个技术! 基础概念 名词区分 1.DFT:离散傅立叶变换 2.F ...
- Linux下安装Apollo (Quick Start)
一.运行时环境 1.CentOS7 2.JDK1.8+ (安装JDK可参考 https://www.cnblogs.com/sportsky/p/15973713.html) 3.MySQL 5.6. ...
- 如何使用 VS Code 远程连接矩池云主机
Visual Studio Code(以下简称 VS Code)是一个由微软开发的代码编辑器.VS Code 支持代码补全.代码片段.代码重构.Git 版本控制等功能. VS Code 现已支持连接远 ...
- mysql sql_mode=only_full_group_by问题临时解决
执行代码 set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZER ...
- 编写Python代码的注意事项
1.标识符 标识符是定义的名称,包括类名.变量名等等 标识符的大小写是敏感的,且第一个字符必须是字母表中的字母或"_" 在python3中,中文可被用作变量名 不能使用Python ...
- Java学习笔记:01面向对象-继承
01面向对象-继承 一.java中的数据类型 1.基本数据类型:四类 八种 byte(1) boolean(1) short(2) char(2) int(4) float(4) long(8) do ...
- python学习之numpy实战
import numpy as np def main(): lst=[[1,3,5],[2,4,6]] print('hello world') print(type(lst)) np_lst = ...
- C++设计模式 - 备忘录模式(Memento)
状态变化模式 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?"状态变化"模式为这一问题提供了一种解决方案. 典型模式 Sta ...
- Mybatis传递参数的几种方式
使用Map传递 优点:直接在sql中取出key即可 缺点:适用于小项目,不符合大公司规范 对象传递参数 优点:符合标准规范 缺点:麻烦 3.只有一个基本类型参数的情况下,直接在sql中取中 4.多个参 ...