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

2024-05-01 22:28

本文主要是介绍制定语音芯片的语音识别指令时需要关注的内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

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

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

硬件+本地识别

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

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

局限性

芯片

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

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

设备

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

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

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

业务上下功夫

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

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

规避错误

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

发音相近

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

声调

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

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

基于人工智能的智能家居语音控制系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 随着物联网(IoT)和人工智能技术的发展,智能家居语音控制系统已经成为现代家庭的一部分。通过语音控制设备,用户可以轻松实现对灯光、空调、门锁等家电的控制,提升生活的便捷性和舒适性。本文将介绍如何构建一个基于人工智能的智能家居语音控制系统,包括环境准备