前言

由于公司有个Web项目需要用到语音搜索功能,找了一些第三方库都不太理想,要么语音识别速度很慢,要么不能精确识别等等,最后选择了迅飞语音(迅飞语音听写(流式版)WebAPI)。迅飞语音相对来说做得还是比较成熟了,不过是收费的,是按照调用API次数来收费,但是有试用次数,新用户注册每天有500次调用次数,用户实名认证后每天有15万次调用次数(不定期会有活动,推荐购买正式版)。

讯飞语音相关的产品还是比较全面的,根据项目需要这次用的是迅飞语音听写(流式版)WebAPI,官网有不同平台的Demo和SDK,由于我们是之前的老Web项目(没有进度前后端分离),而官网下载下来的Demo需要调用很多第3方库,而且还要经过打包编译,感觉过于复杂。

所以我进行了一下封装,去除了很多不必要的插件和代码,可以直接Web前端、H5中调用(在html文件中引入js文件调即可,使用起来很方便,不用去打包编译等)注:获取浏览器录音功能,因安全性问题,需要在localhost 或 127.0.0.1 或 https 下才能获取权限,在这里记录一下,方便以后再次用到。

语音听写功能简介:

  • 把语音(≤60秒)转换成对应的文字信息,让机器能够“听懂”人类语言,相当于给机器安装上“耳朵”,使其具备“能听”的功能。
  • 语音听写流式接口,用于1分钟内的即时语音转文字技术,支持实时返回识别结果,达到一边上传音频一边获得识别文本的效果。
  • 该语音能力是通过Websocket API的方式给开发者提供一个通用的接口。
  • Websocket API具备流式传输能力,适用于需要流式数据传输的AI服务场景,比如边说话边识别。
  • 相较于SDK,WebAPI具有轻量、跨语言的特点;相较于HTTP API,Websocket API协议有原生支持跨域的优势。
  • 语音听写流式WebAPI 服务,热词使用方式:登陆开放平台https://www.xfyun.cn/后,找到控制台--我的应用---语音听写---个性化热词,上传热词。

实例效果:

实例化API:

let times = null;// 实例化迅飞语音听写(流式版)WebAPI
const voice = new Voice({// 服务接口认证信息 注:apiKey 和 apiSecret 字符串的长度都差不多,请不要填错了哦!appId: '',apiSecret: '', apiKey: '',// 注:要获取以上3个参数,请到迅飞开放平台:https://www.xfyun.cn/services/voicedictation 【注册的新用户,每天服务量500(也就是调500次),如果你需求里大请购买服务量:https://www.xfyun.cn/services/voicedictation?target=price】onWillStatusChange: function (oldStatus, newStatus) {//可以在这里进行页面中一些交互逻辑处理:注:倒计时(语音听写只有60s),录音的动画,按钮交互等!},onTextChange: function (text) {//监听识别结果的变化console.log('识别结果:', text)// 3秒钟内没有说话,就自动关闭if (text) {clearTimeout(times);times = setTimeout(() => voice.stop(), 3000);};}
});// 开始识别方法
voice.start();// 关闭识别
voice.stop();

使用说明:

在代码中已有很详细的注释和说明,一看就便懂,这里就不要熬述啦哈!

语音听写简介:语音听写_语音识别-讯飞开放平台

语音听写(流式版)WebAPI 文档:语音听写(流式版)WebAPI 文档 | 讯飞开放平台文档中心

SDK&API 错误码查询:错误码查询 - 讯飞开放平台

项目地址:

https://github.com/MuGuiLin/VoiceDictation

注意事项:

要使用该功能,请先去迅飞开放平台注册账户(只限新用户),然后登录到控制台,创建应用拿到迅飞语音听写(流式版)WebAPI服务接口认证信息,分别是appId: '', apiKey: '', apiSecret: ''这3种参数。

原WebAPI普通版本接口(http: //api.xfyun.cn/v1/service/v1/iat) 不再对外开放,已经使用WebAPI普通版本的用户仍可使用,同时也欢迎体验新版流式接口并尽快完成迁移!

使用前提条件:

1、要有appId,apiKey,apiSecret这3个参数,并且还要有API次数。

2、要有硬件设备(麦克风)并且允许受权API调用麦克风的权限。

3、使用要在服务环境下运行如(WAMP、XAMPP、Phpstudy、http-server、WebServer)以localhost 或 127.0.0.1 或 在https环境下运行。

识别运行过程:

1、websocket连接:判断浏览器是否兼容,获取websocket url并连接,这里为了方便本地生成websocket url。

2、 获取浏览器录音权限:判断浏览器是否兼容,获取浏览器录音权限。

3、.js获取浏览器录音数据。

4、将录音数据处理为文档要求的数据格式:采样率16k或8K、位长16bit、单声道;该操作属于纯数据处理,使用webWork处理。

5、根据要求(采用base64编码,每次发送音频间隔40ms,每次发送音频字节数1280B)将处理后的数据通过websocket传给服务器。

6、实时接收websocket返回的数据并进行处理。

科大迅飞语音听写(流式版)WebAPI,Web前端、H5调用 语音识别,语音搜索,语音听写相关推荐

  1. 测试迅飞语音听写流式版 (by quqi99)

    作者:张华 发表于:2019-10-09 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (https://zhhuabj.blog.csdn.net) 刚花了 ...

  2. html5语音听写流式,iOS 讯飞语音听写(流式版)

    最近项目中用到了讯飞的语音识别,然后稍微看了一下,里面有几个值得注意的点,记录一下,先说语音听写(流式版),实时语音转写后期会附上 ,文末有 demo //语音听写(流式版) 语音听写流式版其实没设么 ...

  3. ros+科大迅飞语音包+图灵机器人(二)在ros上使用科大迅飞

    在工作空间catkin_ws下创建一个包 $ cd catkin_ws/src/ $ catkin_create_pkg voice_system std_msgs rospy roscpp 把科大迅 ...

  4. ros+科大迅飞语音包

    ros+科大迅飞语音包+图灵机器人(一)sdk下载及测试 2018年06月07日 21:43:47 阅读数:52 一.首先从科大迅飞开放平台(http://www.xfyun.cn/)注册一个账户 二 ...

  5. ros+科大迅飞语音包+图灵机器人(一)sdk下载及测试

    一.首先从科大迅飞开放平台(http://www.xfyun.cn/)注册一个账户 二.创建应用程序 我这里创建的应用名称为KF 三.下载SDK 只有创建好应用才能下载SDK 在ubuntu创建一个文 ...

  6. 使用科大迅飞SDK进行语音合成出现sh: 1: mplayer: not found

    使用科大迅飞SDK进行语音合成出现sh: 1: mplayer: not found 解决: sudo apt-get install mplayer 再次运行即可解决

  7. ROS使用科大迅飞SDK进行语音合成在编译出现alsa/asoundlib.h: No such file or directory

    ROS使用科大迅飞SDK进行语音合成在编译出现alsa/asoundlib.h: No such file or directory时 只要需要安装 sudo apt-get install liba ...

  8. 【数据结构 JavaScript版】- web前端开发精品课程【红点工场】 --javascript-- 链表实现...

    <!DOCTYPE html> <html><head><title></title> </head><body>& ...

  9. 前端之实现讯飞语音听写(流式版)

    第一次接到语音需求,用了几年的微信,你有关注过微信语音实时转文字功能吗?反正我是经常用,在这人山人海的大城市,为了解放双手又能及时回复好友,我经常用语音转文字. 没想到,一时用一时爽,自己开发火葬场. ...

最新文章

  1. 【python】使用python脚本将CelebA中图片按照 list_attr_celeba.txt 中属性处理(删除、复制、移动)
  2. AI解译遥感影像,商汤的“黑科技”了解一下
  3. 【设计思想解读开源框架】java如何发送post请求
  4. 同步通信和异步通信的区别
  5. C语言中const的用法
  6. [css] 用CSS画出一个任意角度的扇形,可以写多种实现的方法
  7. linux下如何启动vsftp服务,如何在Ubuntu 18.04上使用VSFTP快速设置FTP服务器
  8. 多线程基础(二)pthread的了解
  9. linux 先编译 再安装,Linux下编译安装FFmpeg
  10. Git笔记(32) 高级合并
  11. 每次编译要改名_华为突然在欧洲注册鸿蒙:正式改名方舟!与安卓竞争海外市场...
  12. 一些自用的编程工具推荐
  13. win10黑客教学(5)--xscan漏洞探测
  14. Java数组的三种打印方式
  15. 牛顿三次插值 matlab,matlab 牛顿插值法 三次样条插值法[行业二类]
  16. mysql能上传程序吗_利用mysql上传和执行文件
  17. 潮流零售KK集团半年巨亏44亿,是风口还是泡沫?
  18. 晒往期云栖大会的照片或感想_赢2017杭州云栖大会门票
  19. 计算机自主招生证书,高校自主招生必备常识:五大学科竞赛证书含金量
  20. JAVA并发编程(一)上下文切换

热门文章

  1. paperswithcode使用方法
  2. (纪中)2417. Loan Repayment【数学】
  3. project 2016 显示、取消任务序号
  4. 组合数学——插板模型
  5. java之空指针异常处理
  6. 嵌入式Linux开发-uboot常用命令介绍(上篇)
  7. Nginx的http_access_module模块
  8. 【网络协议模糊测试实战】使用sulley对PCManFTP进行模糊测试
  9. python学习小组分组程序_【Python】每日一练:学生学习小组分组程序
  10. Hadoop HFDS 的 Shell 操作