本帖最后由 Oumin 于 2025-1-20 16:06 编辑
启英泰伦标准语音模块串口协议有两个版本:串口协议V1、串口协议V2,实际应用中,用户可采用该串口协议方便地将设备的电控板和语音芯片(模块)进行对接。
---->关于串口协议V2的命令格式概述,主要是: ---->而对于语音识别结果的命令格式【即语音模块在进入唤醒状态后,识别到结果后发送该消息(包含唤醒词)】 那么当面临有的客户需要使用启英泰伦的串口协议2,并且希望串口数据格式更方便进行通讯时,可以将协议2表现得更清晰直观,也更便于用户查看,就如 修改前 修改后
我们需要做以下几个步骤:
一、打开voice_module_uart_protocol.c文件,进入vmup_send_asr_result_cmd()函数中进行修改,这个函数就是用于发送语音识别(ASR)的结果命令,结构体变量msg对应的每一项成员变量都对应开头图2的语音识别结果的命令格式
二、修改结构体中成员变量的值 - msg.msg_seq消息序列号会随着识别次数一直叠加;
- msg.msg_data默认是指语义ID,该ID在支持不同命令词的语音模块之间具有唯一性,可通过命令词的头文件来确定该ID值,可以在[60000]{cmd_info}.xlsx表格中查看每个词条对应的语义ID,对于仅使用一个语音模块来通讯的场景,可以使用语义ID或者命令词ID(自行选择),这里为方便对应及确认好ID,以更改为命令词ID即command_id为例;
- msg.msg_data[6]是词条的识别分值,范围为0-255,如果一个词条的识别分值为200分,那么意味着系统对这个词条的识别准确性有较高的信心;而如果分值较低,比如 30 分,可能表示系统对该词条的识别结果不是很确定,该识别结果可能不太准确;
由于帧校验是从msg.msg_type到msg.msg_data的累加和,因此将这之间的格式都统一起来能让最后通讯的数据看起来更清晰直观,就像开头修改后的图片示例
三、修改后重新编译、打包、烧录即可完成。
|