目前在做一款车载的项目,其中有一个需求是在开车的时候实现人与手机的对话,全过程不需要用手,只用语音操控。

这个就类似于人与机器人的对话,机器人在后台一直待命,用户说话 机器人做出对应的反映。

但由于用户手机电源的宝贵性,又不能让用户一直开着录音监听,这样很耗费资源。因此使用了讯飞语音提供的唤醒功能。

具体怎么做呢?

看一张流程图吧:这张流程图使用了讯飞的大部分技术(语音唤醒、语音唤醒+命令词识别、语义识别、语音合成),不废话,看图

流程图已经写的很清晰了,简单介绍下

在程序启动的时候先启动唤醒,这个时候用户说唤醒词就会将机器唤醒,并 聆听命令。但如果这个时候有播报信息的话会优先播报信息,播报的时候会将唤醒暂停,播报完成后再启动唤醒。这么做有一个重要的原因是讯飞的唤醒是一直占用录音资源的,而这个时候去播报语音会断断续续,听说这个可以设置,但播报的时候用于一般也不会去说唤醒词。

讯飞的唤醒有两种模式:单纯的唤醒和唤醒+命令词识别

单纯的唤醒会有一个唤醒成功的回调,比较简单

而唤醒+命令词识别不仅能够唤醒,如果你在说唤醒词的同时说了一个命令,那么他也会识别这个命令,你可以很干脆的收到这个命令去执行,而不需要在启动什么语义识别后在执行命令了,这对用户来说也是很爽的。

但是命令词有一定的限制,就是命令词使用之前必须先构建语法,而命令词的内容必须得是提前知道的。但是如果用户说了一个 石河子大学怎么走,这个命令在你的命令词构建的语法文件里没有!怎么办?这时候你就得提示用户让用户去语义输入了。

所以我这里的构想是:用户说命令词,启动唤醒,然后识别命令词。识别命令词成功执行命令,识别命令词错误启动语义识别。

这有个缺点就是用户说了唤醒词+语义识别的内容,语义识别的内容被命令词消耗掉了,用户只有再说一次语义识别的内容才可以识别语义。

为了避免这个问题,我们在唤醒词识别后,如果命令词不能识别的时候,用合成语音提示以下用户“请问有什么可以帮您”,这个就代表机器没有识别到用户刚才的语义内容,需要 用户重新说,我是不是很奸诈o(∩_∩)o

接下来就是语义识别了,这个没什么说的,主要的一点就是如果用户不说话你要一直让它保持录音状态吗?当然不行啊,这多耗电啊!为了帮用户省电,我还设计了一个用户不说话20s自动进入等待唤醒的状态的流程。20s怎么来?使用时间戳啊!就是每次用户命令识别成功或者唤醒成功的时候记录一个时间戳。然后下次再启动语义识别前先判断当前时间和时间戳时间是否相差大于20s,如果小于20s则继续启动语义识别,如果大于20s则启动唤醒,准备让用户说命令词来唤醒吧。

好了,差不多了。不要问我为什么不一直让用户说唤醒词再执行对应的命令。如果你要干某一件事情之前总是还要说唤醒词,我估计你会疯掉的,即使你不疯别人也会认为你是神经病的。没有贬义,开玩笑,o(∩_∩)o 哈哈

我的github地址:https://github.com/dongweiq/study

欢迎关注,欢迎star o(∩_∩)o 。有什么问题请邮箱联系 dongweiqmail@gmail.com qq714094450

(原创)用讯飞语音实现人机交互的功能相关推荐

  1. iphone之使用讯飞语音sdk实现语音识别功能

    2.学习里面的demo简单实现了一个小的语音识别功能 先做一个简单demo,看看识别效果.注:语音识别必须联网. 所有接口必需在联网状态下才能正常使用. 效果图: #import #import &q ...

  2. iOS: 讯飞语音的使用

    一.介绍: 讯飞语音做的相当不错,容错率达到90%多,如果需要做语音方面的功能,它绝对是一个不错的选择.讯飞语音的功能很多:语音听写.语音识别.语音合成等,但我们最常用的还是语音听写.讯飞语音中包含界 ...

  3. 研究讯飞语音 demo,下载跑跑

    本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53401000 未经博主允许不得转载. 博主地址是:http://blog.csd ...

  4. html调用讯飞语音文本朗读,(原创)讯飞输入法的妙用:语音翻译+智能OCR + 文本转语音播报...

    重点: 语音翻译在第二,第三页: OCR: 也就是图片直接转文本的功能介绍在第三,第四页: 把转出来的文本直接朗读,并且配上背景音乐的介绍在第八页 - 第十二页: 前几年有人问我手机上有没有那种可以读 ...

  5. Android——讯飞语音唤醒简介及实现

    前段时间写了一个关于百度语音唤醒文章,最近有做了一个讯飞语音的应用,在这里把学习的资料整理一下. 唤醒的整个过程如下: (图源自讯飞官网) 讯飞的语音唤醒功能实现起来挺方便的(相比百度,百度语音And ...

  6. 真人语音朗读软件_讯飞语音云助力移动“和阅读”,打造个性化听书应用

    不知不觉,"语"时代已悄然走进我们的生活.各行业移动应用也乘势插上了语音腾飞的翅膀.移动"和阅读"是中国移动推出的一款花了包月费用后免流量看书的套餐配套软件,集 ...

  7. php 讯飞语音评测_科大讯飞提供语音评测能力 再一次颠覆语音市场

    2015年1月24日,科大讯飞"翘楚云集 无与伦比"语音评测发布会在北京车库咖啡完美举行.活动聚集了200多位优秀开发者和讯飞语音忠实用户,与讯飞资深科学家魏思博士及语音云优秀合作 ...

  8. 讯飞语音万能五笔超强手写3合1输入法:

    原创   作者:发威时刻 新版本的讯飞语音真的不错,因为它依托于以下几个文件就能动嘴说话了,你只要有一个话筒,另外再能连网就可以了,不仅能说英语还能说各地方言. 再说那个新版本的万能五笔输入法(五笔拼 ...

  9. Android自带语音播报+讯飞语音播报封装(直接用)

    一.Android自带的语音播报 1.查看是否支持中文,在测试的设备中打开'设置' -->找到 '语言和输入法'-->查看语音选项,是否支持中文,默认仅支持英文. 使用如下: public ...

最新文章

  1. Linux(CentOS6.5)中安装maven
  2. [Cocos2d-x For WP8]矩形碰撞检测
  3. Java -jar启动服务与Tomcat服务器上部署JAR之间的区别
  4. 修改vs17中的cordova模板
  5. jsp模糊查询_查询知识产权和商标专利的网站汇总!
  6. 使用Nodejs实现的小说爬虫
  7. java 拼sql最大长度,java.sql.SQLNonTransientConnectionException: 用户 ID 长度 (0) 超出 1 到 255 的范围...
  8. SmartDraw_2012_Enterprise_R20.0.1.0的安装使用
  9. 彻底崩溃,一个电脑白痴和黑客的对话!
  10. [转载]firefox一鸣惊人 逼迫微软重新考虑IE战略
  11. 下载geoip/GeoLite2-ASN.mmdbGeoLite2-City.mmdb
  12. 人工雨量计_自动站与人工站遥测雨量计降水量对比分析
  13. 为什么使用多线程,多线程如何提高效率
  14. 单片机开发,推荐开源跨平台的SDCC编译器
  15. Linux下彻底删除oracle
  16. 设计一个重量转换程序 python
  17. vscode打开项目从中文界面变成英文界面的问题
  18. Python基础知识——变量与运算符
  19. Carla车辆周围添加障碍物
  20. 2022鹏城杯web

热门文章

  1. jquery1.43源码分析之工具方法
  2. python调用数据库判断_python 访问数据库 笔记
  3. 神经网络与机器学习 笔记—泛化和交叉验证
  4. LA3989女士的选择
  5. 【Linux 内核 内存管理】虚拟地址空间布局架构 ③ ( 内存描述符 mm_struct 结构体成员分析 | mmap | mm_rb | task_size | pgd | mm_users )
  6. 【数字信号处理】基本序列傅里叶变换总结 ( 单位脉冲序列 δ(n) | {1} 序列 | e^jωn 序列 | cosωn 序列 | sinωn 序列 | a^nu(n) | 矩形窗函数 ) ★★★
  7. 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 查找子弹数据的动态地址 | 查找子弹数据的静态地址 | 静态地址分析 | 完整流程 ) ★
  8. 【FFmpeg】FFmpeg 相关术语简介 二
  9. 【Flutter】Flutter 调试 ( 调试回退功能 | Debug 调试中查看变量的方式 | 控制台信息 )
  10. 【Netty】 异步任务调度 ( TaskQueue | ScheduleTaskQueue | SocketChannel 管理 )