跳转至

产品方案开发流程

概述

语音识别作为最自然的交互方式,越来越多的被用户所接受,但是语音方案与传统的逻辑开发不同,需要多方配合才能打造好的产品。本文档主要介绍启英泰伦的语音识别方案的方案设计和项目开发,适用于新接触语音的成品需求方,IDH方案商及方案开发者。

如果您新接触语音方案,建议先查看 ☞新手指南,如果您已经初步了解,可以参考开发案例进行具体的软件开发,本文档主要描述一个实际的产品的标准开发流程。如果针对某一具体产品,可以参考具体的领域产品方案。

方案开发中,一般可以按下面的流程进行开发:

  1. Demo测试及需求分析:获取Demo开发版,将Demo在实际的产品运行环境进行测试,根据实际应用场景进行需求分析;
  2. 方案选型:选择合适的方案,芯片和硬件模组;
  3. 研发测试:明确产品的需求,进行方案的设计,从硬件,结构,VUI(语音对话),产品逻辑,进行研发,搭建成品整机,测试整机的电气性能和识别情况,同时进行硬件相关的测试;
  4. 固件确认及生产下单:测试完后,确定固件确认书,同时根据情况进行相关的硬件可靠性测试,进行小批量试制及生产下单,下单后来料可以通过治具进行抽检;
  5. 品质售后:如果出现品质问题,可以与我司售后沟通。

我司也提供对应的软硬件检查checklist,供您在设计阶段进行check结构、原理图,pcb和软件部分。该checklist请到 ☞启英泰伦语音AI平台 中下载。

我司也可以提供语音识别自动化测试方案和模块的自动化烧录测试方案,具体信息请参考 ☞产品测试

产品方案开发流程-1

以下将对具体的流程进行描述:


1 Demo测试及需求分析

1.1 Demo测试

您可以购买Demo后 ☞样品购买 ,参考Demo的资料,进行初步体验测试。在实际的应用场景,测试安静和噪音情况下的识别率,唤醒率和误唤醒,了解语音识别的实际体验情况,详细的测试标准参考 ☞识别效果测试,测试中请特别注意:

  • 使用相似的词的诱导测试并不作为误识别的优化依据,目前采用的大数据深度学习算法,本身有一定的识别模糊性,这样具备更普遍的实用性,并且客户对最终用户的普通话要求没有那么严格;
  • 我司提供的测试及Demo板子,仅供测试,不用于生产,需要批量时请与我司联系沟通确定型号。

1.2 分析语音需求

测试及体验完Demo后,可以根据产品的类型考虑是否增加语音,主要考虑如下:

  • 产品是什么,本身的噪音情况如何?
  • 产品的使用距离要求多远?
  • 需要使用语音实现怎么样的功能?
  • 产品的应用场景在何处,是否适合用语音识别技术?
  • 产品对语音识别的准确率要求如何?误识别会不会带来严重风险?

2 方案选型

经过初步的Demo评测和体验测试,如产品需求最终考虑增加语音,接下来考虑选择具体的语音方案。

启英泰伦提供离线单麦克风,离线双麦克风,离线语音+蓝牙播放,离线语音+IOT,离在线识别等多种识别方案,芯片本身也支持二次开发,可以使用串口对接各种模块,部分产品的开发也可以参考 ☞产品方案开发概述

下面以标准的离线单麦克风产品方案为例进行描述:

​离线单麦克风方案,对结构要求低,方案成熟稳定,方案简单易用,识别效果好,适用范围广。当前广泛用在家电、照明、红外插座、中控、风扇、智能马桶、油烟机、浴霸、取暖桌等领域,并且均已量产并在市面销售。

具体的方案选型请参考 ☞硬件选型指南 中的芯片选型和模块选型说明,我们优先建议适用 ☞CI-D0XGS09J(主芯片CI1301、CI1302、CI1303)(带座子模组)和 ☞CI-D0XGS02S(主芯片CI1301、CI1302、CI1303)(贴片模组)。


3 研发测试

3.1 明确方案

根据产品的需求明确产品用何种方案,举例如下:

如果您想实现快速开发,推荐采用语音模块与电控的串口通信方案,这样语音模块可以只开发语音部分,和成熟的电控采用串口进行通信,可以减少开发和调试的时间。该方案可以将语音模块和电控各自使用电脑串口工具模拟对接开发,待开发测试完成后,再进行实际模组的对接。

产品方案开发流程-2

该方案通讯流程:

  1. 声音通过麦克风传输给语音模块,语音模块识别到词条;
  2. 将识别到的词条信息串口告知电控;
  3. 电控执行相关动作;
  4. 电控根据动作的执行情况,告知语音模块需要播放的内容;
  5. 语音模块根据电控反馈进行播放。

优点:

  1. 语音模块根据电控的状态进行播放对应内容,可以进行最合适的反馈,体验感好;
  2. 如果电控通过按键或者遥控进行控制,语音模块也可以进行状态播放。

如果您想采用一体板方案或其他的通讯方式如IIC,也可以自行开发,如有问题请与我司技术支持联系。

3.2 VUI设计:

3.2.1 命令词和唤醒词:

期望用户对设备说出,可以被设备识别的操作指令即为命令词。命令词中,被用于唤醒设备,相当于设备“名字”的词,定义为唤醒词。

关于两种词的设计方法,请查看:☞语音UI设计参考

3.2.2 播放反馈音

当用户说了命令词后,设备需要播报对应词条的反馈音,关于该播报反馈音的设计,有如下建议:

  • 上电开机的欢迎播放音,开机音中尽量包含唤醒词,以便用户拿到产品上电的第一时间,知道如何唤醒本设备;
  • 回复音尽量简洁,随着使用的频繁,简洁的播放音不会打扰到客户;
  • 增加退出唤醒播报语:以便用户知道什么时候需要重新说唤醒词(如果有指示灯,也可以用指示灯指示唤醒状态);
  • 命令词的反馈声音中,尽量包含“命令词条”,以便用户加深对命令词的记忆;
  • 增加命令词“静音模式”,静音模式下,可以使用“滴滴”替代产品的反馈播放因,这样给客户的打扰更少;
  • 增加命令词“语音导航”,语音导航中,为用户提供本产品有哪些词条,防止客户丢掉说明书不知道有哪些词条;
  • 增加“音量增加,音量减小”,根据客户的习惯调整反馈音大小。

3.2.3 说明书描述

产品的说明书建议包含以下内容:

  • 语音模块的交互流程,需要先唤醒,再说其他命令词进行控制;
  • 说明书中的唤醒词必须显著标明,便于客户对唤醒词的记忆,同时也需要标明可以用语音导航获取其他指令;
  • 用表格的形式罗列唤醒词和关键命令词,命令词环节有对关键词说明,尽量选用识别效果好的词作为关键词;
  • 语音说明书尽量采用单页,便于用户容易查看;
  • 为了提升产品形象,说明书应该尽量设计得美观;
  • 提醒用户支持普通话及少量口音的普通话,语速不要太快。

3.2.4 其他建议事项

  • 可以制作命令词贴纸,粘在设备上或者设备附近,防止用户忘掉相关词条;
  • 设备上增加二维码,可以进行扫码查看说明书和命令词条。

3.3 产品结构设计及关键物料选型

产品设计中的噪音控制不仅关系到用户的舒适体验和健康,也直接影响到市场竞争力以及技术创新。

产品方案开发流程-1

所以,工程师在开发新产品时,应将噪音控制纳入设计考量。同时,麦克风和喇叭的结构设计直接影响产品的识别效果,需要特别注意。麦克风要防噪音进入,喇叭需要注意出音孔的设计,防止声音播听感不好,详情请参考 ☞产品结构设计,如果您是第一次做语音产品,强烈建议与我司技术支持人员详细沟通,以实现更全面的产品价值。

您在设计产品时请尽量选用我司推荐的关键物料,相关信息如下:

  • 麦克风选择:选择模拟麦克风,灵敏度选用-32±3dB;信噪比>70dB麦克风我司建议使用-32±3db,具体可参考 ☞麦克风兼容列表
  • 喇叭选择:选择标称功率与功放芯片一致,如果产品有AEC的需求,则扬声器失真度尽量小一些,具体可参考 ☞喇叭兼容列表
  • NorFlash选择:如果使用CI110X系列芯片,需要选择8Mbyte的Flash或者4Mbyte的Flash,具体可参考 ☞NorFlash兼容列表 ,使用CI112X系列芯片及CI13XX系列芯片时,flash为内置,请根据芯片型号进行选择☞硬件选型指南

3.4 硬件设计

硬件设计有以下要点:

  • 预留升级口:语音识别产品比传统的产品来说,修改固件的可能性更高,强烈建议预留升级接口,CI110X系列芯片、CI112X系列芯片、CI13XX系列芯片都需要预留UART0;
  • GIPIO使用注意:有些产品对IO的默认电平敏感,例如作为电机驱动的IO,这时需要关注IO 默认电平数值;
  • GPIO输入模式注意:CI110X系列芯片和CI112X系列芯片的GPIO作为输入时,必须增加上下拉电阻;
  • 接口电平匹配:例如很多电控使用的为5V电平,这时CI110X系列芯片和CI112X系列芯片需要增加电平匹配线路,CI13XX系列芯片需要软件设置后可以直接支持5V电平

特别强调:语音识别产品比传统的产品来说,修改固件的可能性更高,强烈建议预留升级接口。

更多信息也可以查看 ☞硬件设计参考

3.5 软件开发

​如果您是初次使用启英方案,可以参考 ☞软件开发 进行软件开发的学习,也可以登录 ☞启英泰伦语音AI平台 播放语音开发介绍视频观看。

一些软件开发的基本介绍如下:

  • SDK目前分为多个,您可以直接使用标准SDK,也可以通过 ☞启英泰伦语音AI平台 中的定制SDK功能产生定制SDK。当前的标准SDK有如下版本:
sdk包 版本名称 下载地址
CI230X系列芯片_AIOT_SDK CI230X_audio_aiot_sdk_release_v1.1.1 启英泰伦语音AI平台
CI230X系列芯片_IOT_SDK CI230X_audio_iot_sdk_release_v1.1.1 启英泰伦语音AI平台
CI13XX系列芯片纯离线SDK CI130X_SDK_V1.5.9 启英泰伦语音AI平台
CI13XX系列芯片红外插座SDK CI130X_SDK_baseV1.5.9_IR_V1.1 启英泰伦语音AI平台
CI110X系列芯片纯离线SDK CI110X_SDK_ASR_Offline_V1.6.9 启英泰伦语音AI平台
CI110X系列芯片算法SDK CI110X_SDK_ALG_Application_V1.7.7 启英泰伦语音AI平台
CI110X系列芯片红外插座SDK CI110X_SDK1.3.5_V4.1_ir_20220317 启英泰伦语音AI平台
CI110X系列芯片离在线SDK CI110X_Combine_Cloud_V1.7.0 启英泰伦语音AI平台
CI112X系列芯片纯离线SDK CI112X_SDK_V1.4.4 启英泰伦语音AI平台
CI112X系列芯片红外插座SDK CI112X_IR_SDKV1.1.5_V4.4 启英泰伦语音AI平台

注:上述SDK后面的版本号可能会升级,请以平台下载的SDK版本号为准。

  • 软件开发时,请尽量将您的代码写在\sample\internal\sample_xxx中,这样当SDK更新时,您基本不需要改动代码;

  • 主要函数说明,用户的代码:sample\internal\sample_1102\src\user_msg_deal.c

  //根据语义ID进行处理
  uint32_t deal_asr_msg_by_semantic_id(sys_msg_asr_data_t *asr_msg, cmd_handle_t cmd_handle, uint32_t semantic_id)
  //根据命令词ID进行处理
  uint32_t deal_asr_msg_by_cmd_id(sys_msg_asr_data_t *asr_msg, cmd_handle_t cmd_handle, uint16_t cmd_id)
  //应用消息处理
  uint32_t deal_userdef_msg(sys_msg_t *msg)
  {
      uint32_t ret = 1;
      switch(msg->msg_type)
      {
      /* 按键消息 */
      case SYS_MSG_TYPE_KEY:
      {
          sys_msg_key_data_t *key_rev_data;
          key_rev_data = &msg->msg_data.key_data;
          userapp_deal_key_msg(key_rev_data);
          break;
      }
      #if MSG_COM_USE_UART_EN
      /* CI串口协议消息 */
      case SYS_MSG_TYPE_COM:
      {
          sys_msg_com_data_t *com_rev_data;
          com_rev_data = &msg->msg_data.com_data;
          userapp_deal_com_msg(com_rev_data);
          break;
      }
      #endif
      /* CI IIC 协议消息 */
      #if MSG_USE_I2C_EN
      case SYS_MSG_TYPE_I2C:
      {
          sys_msg_i2c_data_t *i2c_rev_data;
          i2c_rev_data = &msg->msg_data.i2c_data;
          userapp_deal_i2c_msg(i2c_rev_data);
          break;
      }
      #endif
      default:
          break;
      }
      return ret;
  }

3.6 整机样品测试注意事项

语音识别效果受环境噪声、设备摆放、环境是否有混响、测试人员发音是否清晰准确等因素影响,进行整机样品测试时需要明确各方面的影响因素。特别注意下:

  • 测试时信噪比尽量满足10dB以上,测试效果比较好;
  • 设备尽量摆放在平行于声源高度的地方,麦克风尽量朝向声源,避免中间有遮挡,保证声源在麦克风拾音范围内;
  • 测试环境避免光滑的墙面,比如玻璃墙。光滑墙面会导致混响严重,对识别影响较大;
  • 测试房间混响不宜过大,较大房间并且墙面光滑的房间混响比较严重;
  • 测试人员发音尽量清晰准确,避免使用不支持的方言来进行测试;
  • 如果采用录音进行测试,应该采用高保真设备进行录音和播放录音,尽量还原真人发音的特性,避免录音、播放设备改变声音频率特性影响识别效果;
  • 测试时麦克风摆放的位置应该避免震动和噪声源,以及避免风吹。

特别提醒:

语音识别功能并非纯粹的逻辑功能,请在整机最终封样前务必进行下面操作:

  1. 整机 全负载工作(显示,电机等均工作) 时,测试给语音的供电纹波小于200mV;
  2. 检查麦克风及喇叭的结构是否符合我司的建议;
  3. 产品的 实际应用场景( 如浴室高混响)进行整机的识别效果测试及确认。

如果测试发现识别效果不好,请参考 ☞启英泰伦语音AI平台 中的 在线支持->问题定位功能 进行解决,如果仍然无法解决,请采集板子的底噪信息发给我司分析,我司会针对的进行优化。采集底噪会用到录音板,具体的使用说明可参考 ☞录音板使用说明


4 固件确认

通过前面的开发及优化,产品达到量产状态后,如您是由我司或我司方案商开发的固件,为确保生产固件的正确性,避免在生产中或者生产后发现固件存在问题而导致需要返工,我司建议您执行以下的固件确认制定流程。

  • 用户对我司或我司方案商提供的固件进行测试确认,如果固件没问题,通知我司或我司方案商可以冻结固件;
  • 我司或我司方案商对固件进行识别测试,确认固件识别效果;
  • 我司或我司方案商发固件确认书给用户进行确认签字,表示用户确认当前固件满足要求;
  • 我司或我司方案商收到用户签字的固件确认书后,进行内部固件入库,提供给生产部门。

综上,请您在有订单需求时,尽量计划好时间提前进行固件确认。如果麦克风和喇叭有定制修改,也请务必提前同步,以保障订单的按时交货。


5 生产测试

我司提供完整的产品生产自动化测试方案,具体可参考 ☞自动化识别测试

对于使用我司标准模块的客户:

  • 如果只做入库抽检,则只需要购买一台测试治具;
  • 如果需要固件烧录,需要购买测试工装。

对于使用我司芯片,进行模块研发的客户:

  • 可以从我司获取自动化测试工装的资料;
  • 可以从我司购买自动化测试工装的从测试板部分,根据贵司的模块,进行测试治具的定制。

我司自研的自动化测试工装,如果采用一拖24的拼版,则每天可以生产加测试约1万台左右;如需采购请联系我司相关负责人,商务电话15107119906,商务邮箱:support@chipintelli.com


6 联系方式

建议您多留意我司的最新信息以及多和我司进行互动沟通,以保障您产品的开发进程和效果。关于公司的最新信息,您可以登录 ☞启英泰伦官网 或微信公众号“启英泰伦(微信号:Chipintelli)”了解。

关于更多的开发资料和信息请登录 ☞启英泰伦语音AI平台 获取。

如果您在使用中有任何问题,也欢迎通过以下方式和我司联系。

商务电话:028-61375925 或 18161228763

商务邮箱:support@chipintelli.com