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

背景

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

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

硬件+本地识别

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

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

局限性

芯片

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

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

设备

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

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

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

业务上下功夫

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

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

规避错误

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

发音相近

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

声调

芯片差问题多,声调问题也是要考虑的。比如试过一个命令“执行任务五”,务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.mfbz.cn/a/586494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1700java进销存管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目

一、源码特点 java web进销存管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为sqlser…

『FPGA通信接口』DDR(3)DDR3颗粒读写测试

文章目录 前言1.配套工程简介2.测试内容与策略3. 测试程序分析4.程序结果分析5.一个IP控制两颗DDR36.传送门 前言 以四颗MT41K512M16HA-125AIT颗粒为例,介绍如何在一块新制板卡上做关于DDR3的器件测试。前面两篇介绍了什么是DDR,并介绍了xilinx给出的FPG…

基于Springboot的音乐翻唱与分享平台

基于SpringbootVue的音乐翻唱与分享平台设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 音乐资讯 音乐翻唱 在线听歌 后台登录 后台首页 用户管理 音乐资讯管理…

Elasticsearch:探索 11 种流行的机器学习算法

作者:来自 Elastic Elastic Platform Team 过去几年中,机器学习(ML)已经悄然成为我们日常生活中不可或缺的一部分。它影响着从购物网站和流媒体网站上的个性化推荐,到保护我们的收件箱免受我们每天收到的大量垃圾邮件的…

3.9设计模式——Strategy 策略模式(行为型)

意图 定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换此模式使得算法可以独立于使用它们的客户而变化 结构 Strategy(策略)定义所有支持的算法的公共入口。Context使用这个接口来调用某ConcreteStrategy定义的方…

手撕spring框架(2)

相关系列 java中spring底层核心原理解析(1)-CSDN博客 java中spring底层核心原理解析(2)-CSDN博客 手撕spring框架(1)-CSDN博客 依赖注入原理 依赖注入(Dependency Injection,简称DI)是一种设计模式,它允许我…

DS高阶:图论基础知识

一、图的基本概念及相关名词解释 1.1 图的基本概念 图是比线性表和树更为复杂且抽象的结,和以往所学结构不同的是图是一种表示型的结构,也就是说他更关注的是元素与元素之间的关系。下面进入正题。 图是由顶点集合及顶点间的关系组成的一种数据结构&…

深入浅出DBus-C++:Linux下的高效IPC通信

目录标题 1. DBus简介2. DBus-C的优势3. 安装DBus-C4. 使用DBus-C初始化和连接到DBus定义接口和方法发送和接收信号 5. dbus-cpp 0.9.0 的安装6. 创建一个 DBus 服务7. 客户端的实现8. 编译和运行你的应用9. 瑞芯微(Rockchip)的 Linux 系统通常会自带 db…

上位机开发PyQt(五)【Qt Designer】

PyQt5提供了一个可视化图形工具Qt Designer,文件名为designer.exe。如果在电脑上找不到,可以用如下命令进行安装: pip install PyQt5-tools 安装完毕后,可在如下目录找到此工具软件: %LOCALAPPDATA%\Programs\Python\…

智能体可靠性的革命性提升,揭秘知识工程领域的参考架构新篇章

引言:知识工程的演变与重要性 知识工程(Knowledge Engineering,KE)是一个涉及激发、捕获、概念化和形式化知识以用于信息系统的过程。自计算机科学和人工智能(AI)历史以来,知识工程的工作流程因…

【Web】2024XYCTF题解(全)

目录 ezhttp ezmd5 warm up ezMake ez?Make εZ?мKε? 我是一个复读机 牢牢记住,逝者为大 ezRCE ezPOP ezSerialize ezClass pharme 连连看到底是连连什么看 ezLFI login give me flag baby_unserialize ezhttp 访问./robots.txt 继…

ChatGPT向付费用户推“记忆”功能,可记住用户喜好 | 最新快讯

4月30日消息,人工智能巨头OpenAI宣布,其开发的聊天机器人ChatGPT将在除欧洲和韩国以外的市场全面上线“记忆”功能。这使得聊天机器人能够“记住”ChatGPT Plus付费订阅用户的详细信息,从而提供更个性化的服务。 OpenAI早在今年2月就已经宣布…

无缝对接配电自动化:IEC104转OPC UA网关解决方案

随着水电厂自动化发展的要求,具有一定规模的梯级水电站越来越多,为了实现水电站的无人值班(少人值守),并考虑到节能控制,电厂采用了集中监控。集中监控关注的是整个电网的安全稳定运行及电压、频率和整个电网的电力需求&#xff0…

C++必修:类与对象(二)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 构造函数 1.1. 定义 构造函数是一个特殊的成员函数,名字与类名相…

软件工程物联网方向嵌入式系统复习笔记--如何控制硬件

5-如何控制硬件 #mermaid-svg-of9KvkxJqwLjSYzH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-of9KvkxJqwLjSYzH .error-icon{fill:#552222;}#mermaid-svg-of9KvkxJqwLjSYzH .error-text{fill:#552222;stroke:#552…

vue3步骤条带边框点击切换高亮

如果是div使用clip-path: polygon(0% 0%, 92% 0%, 100% 50%, 92% 100%, 0% 100%, 8% 50%);进行裁剪加边框没实现成功。目前这个使用svg完成带边框的。 形状可自行更改path 标签里的 :d“[num ! 1 ? ‘M 0 0 L 160 0 L 176 18 L 160 38 L 0 38 L 15.5 18 Z’ : ‘M 0,0 L 160,0…

Docker: 如何不新建容器 修改运行容器的端口

目录 一、修改容器的映射端口 二、解决方案 三、方案 一、修改容器的映射端口 项目需求修改容器的映射端口 二、解决方案 停止需要修改的容器 修改hostconfig.json文件 重启docker 服务 启动修改容器 三、方案 目前正在运行的容器 宿主机的3000 端口 映射 容器…

2024最新版JavaScript逆向爬虫教程-------基础篇之常用的编码与加密介绍(python和js实现)

目录 一、编码与加密原理1.1 ASCII 编码1.2 详解 Base641.2.1 Base64 的编码过程和计算方法1.2.2 基于编码的反爬虫设计1.2.3 Python自带base64模块实现base64编码解码类封装 1.3 MD5消息摘要算法1.3.1 MD5 介绍1.3.2 Python实现md5以及其他常用消息摘要算法封装 1.4 对称加密与…

【GitHub】github学生认证,在vscode中使用copilot的教程

github学生认证并使用copilot教程 写在最前面一.注册github账号1.1、注册1.2、完善你的profile 二、Github 学生认证注意事项:不完善的说明 三、Copilot四、在 Visual Studio Code 中安装 GitHub Copilot 扩展4.1 安装 Copilot 插件4.2 配置 Copilot 插件&#xff0…

Java设计模式 _结构型模式_组合模式

一、组合模式 1、组合模式 组合模式(Composite Pattern)是这一种结构型设计模式。又叫部分整体模式。组合模式依据树形结构来组合对象,用来表示部分以及整体层次关系。即:创建了一个包含自己对象组的类,该类提供了修改…
最新文章