制定语音芯片的语音识别指令时需要关注的内容

背景

最近定义设备识别的语音指令以及对应的语音反馈。虽然语音控制在软件里只是很小的一块功能,但也不能太马虎。新人入坑就要学习,学习前人的经验规避问题,最后总结经验给后人,给未来的自己。好记性不如烂笔头~

下面一些问题是硬件方案太次导致的……只是现阶段业务向硬件先妥协。

硬件+本地识别

需求是为一款硬件设计一些语音指令。因为硬件没有显示界面,希望通过加入语音指令增强其交互能力,并支持触发一些业务功能。

语音识别基于某便宜的语音芯片,识别语音指令后通过串口返回给系统层,软件可以获取约定好的反馈值,在自定义业务并反馈给用户。

局限性

芯片

使用第三方语音识别芯片方案,而非软件识别,芯片把本地识别结果再反馈给系统。由于芯片并不是大品牌产品,识别准确率有限。

整体硬件是基于厂商方案改造的,换语音识别芯片方案不管是定制周期还是成本都不适合,已被否决

设备

外置麦克风有两个,降噪算法很一般,也基本没什么相位抵消等算法能力,导致拾音范围很广,所以设计了唤醒词。触发唤醒词后才能进一步使用语音指令,避免麦克风采集了环境里其他人的指令,并做出响应。

当然唤醒词只是一个规避手段,如果真存在两个人在同一空间一起使用语音指令,是没法应对的。

硬件在使用上支持外接麦克风,借助外部设备来达到更准确的声音识别效果。

业务上下功夫

上面几点是目前存在的客观限制,而开头的局限性指由于成本、方案原因,哪怕你的普通话比较标准,其他软件都能准确识别,在这里也有一定概率可能识别错误。

所以在语音命令的设计上要特别注意用词的规范。

规避错误

硬件太差,业务来补。限制业务上不用容易出错的命令词,减少发生错误识别的概率,最终实现规避错误。

发音相近

独立的语音芯片不像联网软件经过大数据学习,能给予用户可能性最大的结果。所以在定词的时候要进行区分,不然它是无法进行识别的。

声调

芯片差问题多,声调问题也是要考虑的。比如试过一个命令“执行任务五”,务wù和五wǔ就声调问题。涉及时就不能加入关键词“执行任务”,因为会和“执行任务五”无法区分。

平舌和卷舌

不少人平舌和卷舌不能区分,例如数字里就是十shí和四sì就是,在这芯片眼里就会当成一种反馈。因此要规避,本来计划是一到十,十条指令的,最后把十去掉了。

结尾仅是数字在变化

设计了几个数字命令,“呼叫用户一”到“呼叫用户九”。实际使用中,出现“呼叫用户一”有概率被识别成“呼叫用户五”,已经排除了语速问题和发音问题,但结果是明确的。

后面规避方案是把数字放到中间,例如“呼叫五号用户”,这样误判概率就在可以接受的范围了。

方言与普通话无法区分

没办法要求每个人都是标准的普通话发音,行业产品是。行业产品也容易根据公司的商务关系,在前期行成片区性售卖,因此需要注意当地方言是否有可能被误判。

语音指令太长

要避免语音指令字数过多

1、首先语音指令太长会让使用者不好记忆;

2、其次太长的话对说话的连续性要求更高,一旦有点中断就要重头再说,但使用者刚开始使用可能无法知道该是怎样的语速。

3、越长越容易被触发,这点和芯片有关。当一段语音指令少读几个字时,也是可能被触发的,因此减少语音指令长度才会让误判场景变少。

我们设计用词时,推荐语音指令长度不尝过6个词。

语音反馈与触发语音相同

由于设备没界面,语音指令操作的反馈也是通过语音的形式播放出来的。但芯片无法判断是真人还是AI的声音,并且也没有相关的算法支持。此时就要求设定指令和语音反馈时不能用一样的词。

比如语音指令是“开启录制”,反馈是“开启录制成功”。这种就不行。

方案一

指令输入和反馈用的一个意思,但顺序不一样。

语音指令是“开启录制”,反馈是“录制开启成功”就会好一些。

方案二

也有用其他同意词代替的方案

语音指令是“开启录像”;语音反馈“录制已开启”,也是可以的,具体根据实际情况选择。

其他缺点

烧录限制

语音芯片需要提前烧录语音指令,导致没办法定义会变化的内容。

比如手机支持“给张三打电话”,这里的张三是指通讯录某个人。手机可以读业务识别,但用我们这种独立的语音芯片做不到。

升级问题

由于芯片是烧录的,也不支持用OTA给语音模块升级。

如果设备生产完,不返厂重新烧录的话,语音模块相当于就是固定的了。因此规划语音指令时还要想好未来几个版本可能加入的内容。

指令数量问题

使用的芯片最多存储128个指令,考虑指令时不能什么都加。

突破数量限制方式

虽然这种差芯片限制了指令数量,但可以用两段式应答方案来突破这个限制,这需要业务层适配。

/*
下列为自然语言,无法实际使用
业务举例:1、识别第一段指令,呼叫用户2、语音反馈,请回复用户编号3、识别第二段指令,一号4、执行呼叫一号用户的操作
*///识别第一段指令
getWord("呼叫用户");//语音反馈,请回复用户编号
postInstruction("请回复用户编号");//识别第二段指令
getWord("一号");//执行呼叫一号用户的操作
callUser("一号");
优点

可以通过抽出数字来为多个业务使用。例如同样用1-9编号的命令,可以实现呼叫几号用户、执行几号任务、拨打几号电话、呼叫几号小队等业务。从原来几十个命令变为现在只用9个编号。

缺点

1、两段式指令用户学习成本更高。

2、业务开发也会多一些,会加很多指引命令,

1)例如提示用户该说第二段关键词;

2)平时要屏蔽第二段关键词的反馈,例如没触发两段式回答时,识别反馈但不做响应;

3)异常情况处理逻辑,例如几秒内未收到能识别的第二条指令。

总结

以上这些问题案例多少和语音识别芯片的能力限制有关。如果你们的语音识别业务是经过服务做识别的,上面的问题对目前的技术环境下已经不是问题了,都有办法解决。

假如也是本地芯片处理,也祝愿大家硬件选型时有更优的方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/661210.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1天搞定uniApp+Vue3+vite+Element UI或者Element Plus开发学习,使用vite构建管理项目,HBuilderX做为开发者工具

我们通常给小程序或者app开发后台时,不可避免的要用到可视化的数据管理后台,而vue和Element是我们目前比较主流的开发管理后台的主流搭配。所以今天石头哥就带大家来一起学习下vue3和Element plus的开发。 准备工作 1,下载HBuilderX 开发者…

Ansys Speos|进行智能手机镜头杂散光分析

本例的目的是研究智能手机Camera系统的杂散光。杂散光是指光向相机传感器不需要的散光光或镜面光,是在光学设计中无意产生的,会降低相机系统的光学性能。 在本例中,光学透镜系统使用Ansys Zemax OpticStudio (ZOS)进行设计,并使用…

【Jenkins】持续集成与交付 (四):修改Jenkins插件下载地址、汉化

🟣【Jenkins】持续集成与交付 (四):修改Jenkins插件下载地址、汉化 一、修改Jenkins插件下载地址二、汉化Jenkins三、关于Jenkins💖The Begin💖点点关注,收藏不迷路💖 一、修改Jenkins插件下载地址 由于Jenkins官方插件地址下载速度较慢,我们可以通过修改下载地址…

卫星通信现状与展望三 -- 6G

作者:私语茶馆 6G星地一体远景规划 中国信通院《6G总体远景与潜在关键技术白皮书》指出6G将实现地面网络、不同轨道高度上 的卫星(高中低轨卫星)以及不同空域飞行器等融合而成全新的移动信息网络,通过地面网络实现城市热点常态化覆盖,利用天基、空基网络实现偏远地…

企业家必须提升演讲口才的原因(3篇)

企业家必须提升演讲口才的原因(3篇) **篇:企业家必须提升演讲口才的原因——建立品牌影响力 一、引言 在当今竞争激烈的市场环境中,企业家作为企业的灵魂和代表,其个人形象和品牌影响力对于企业的成功至关重要。而演…

特征提取(Feature Extraction)常见统计特征笔记(三)

统计特征是描述数据集中值的一组量,通常用于了解数据的分布、集中趋势和变异程度。常见的统计特征包括均值、中位数、众数、标准差、方差等。下面会详细解释每个统计特征,并给出相应的Python代码。 1、均值(Mean):所有…

中兴UME网管LTE共享参数配置-PLMN添加

本文为中兴设备UME网管电联中频共享参数配置,PLMN添加参数配置部分,因UME与U31网管添加PLMN配置区别较大,UME网管需同时配置运营商EN-DC策略,相关配置流程及参数配置如下文。 PLMN eNodeB CU …

前后端数据加密代码实战(vue3.4+springboot 2.7.18)

简述: 文章主要讲述了在vue3与springboot交互数据的个人使用的一个加密形式 SHA256不可逆加密AES对称加密RSA非对称加密 加密算法就不带大家深入了,对于它的使用文章中有明确的案例 数据加密的大概流程为:(有更优秀的方案可以…

OpenCV 实现霍夫圆变换(52)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV实现霍夫变换(51) 下一篇:OpenCV 实现重新映射(50) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 HoughCircles()检测图像中的圆圈。 理论 Hough 圆…

KPlayer搭建指南:开启24小时直播之旅

引言 在这个数字化时代,无人值守直播成为了一种新兴的趋势。无论是企业还是个人,都可以通过无人值守直播来提高效率和观众参与度。本文将介绍如何使用KPlayer在Linux环境下搭建无人值守直播系统。 KPlayer简介 KPlayer是一款基于Linux的媒体服务器工具…

STM32利用硬件I2C读取MPU6050陀螺仪数据

有了前面的基本配置,这节读取MPU6050的数据还算是简单,主要就是初始化时给MPU6050一些配置,取消睡眠模式,MPU6050开机是默认睡眠模式的,读写无效,所以上来就要先更改配置: MPU6050寄存器初始化…

实操——使用uploadify插件(php版和Java版) 与 Dropzone.js插件分别实现附件上传

实操——使用uploadify插件(php版和Java版)与 Dropzone.js插件分别实现附件上传 1. 使用uploadify插件上传1.1 简介1.1.1 简介1.1.2 参考GitHub 1.2 后端PHP版本的uploadify1.2.1 下载项目的目录结构1.2.2 测试看界面效果1.2.3 附页面代码 和 PHP代码 1.…