硬件
- EK-RA6E2 开发板
- GY-MAX4466 声音采集模块
软件
创建 RAI 项目
进入 https://portal.reality.ai/ 后登录账号,在首页创建新的项目:

采集音频数据
在 hal_entry.c 中开启数据采集:
- #define DATA_COLLECTION_EN (0)
+ #define DATA_COLLECTION_EN (1)点击工具栏锤头图标构建工程,日志出现 0 errors, 0 warnings. 即成功
新导入的项目要进入 Debug 模式,需要在“项目资源管理器”中找到该项目,右键菜单选择“调试方式”,选择最下方的 .elf 文件,之后调试直接点击工具栏 Debug 图标即可

在顶部菜单打开数据采集工具:Renesas AI > Reality AI Utilities > Data Storage Tool

点击 Settings 中的 Data connection... 按钮,选择 J-Link OB 的虚拟串口,波特率设置为 115200,点击 Connect

在 Manage capture data files 部分右侧 Data file group 中新建一个 metadata 文件

在工具栏中开始执行程序,稍等片刻即可在 Signal view 中看到采集到的数据波形图

在 Class name 中输入/选择标签,点击 Start new capture 按钮开始采集数据,点击 Stop capture 按钮结束采集

语音控制开关灯需要采集两种语音:开灯(kaideng)、关灯(guandeng),以及背景噪音(default)
采集完成后选择所有数据,点击 Upload 按钮上传,选择最开始创建的项目等待上传完成

使用 RAI 训练模型
处理源文件
进入源文件界面处理上传的源文件,全选后点击 Format

忽略源文件中的第一列(index),只使用第二列数据训练模型,调整好后滚动到弹窗最底部,点击 Confirm 按钮即可

创建数据集
进入 Curate 界面,全选源文件,点击 Create New Data Set 创建数据集

创建好数据集后,进入数据集界面创建样本列表

将窗口长度设为 512 数据点,窗口滑动 50%

训练模型
进入 Classes 界面,选择刚刚创建的样本列表,点击最下方的 Start exploring 开始训练模型,等待完成即可

完成后选择模型点击 Create Base Tool 创建工具

进入部署页面,选择创建的基础工具,新建包,设置一个名称,输入数据类型选择 float32 (float),目标设备选择开发板 EK-AR6E2,选择 M33F FPU hard fp abi,工具链按 e2studio 的工具链设置


代码生成后下载即可
部署模型到单片机
将下载到的代码压缩包中如下图所示的几个文件复制到 e2studio 工程的 rai 目录,参考示例代码修改 hal_entry.c 中的程序实现语音控制开关灯功能


关闭数据采集:
- #define DATA_COLLECTION_EN (1)
+ #define DATA_COLLECTION_EN (0)核心程序:
AIC = voice_predict(inputData);
switch(AIC){
case(voice_no_results):
SEGGER_RTT_WriteString(0, "no_results\r\n");
break;
case(voice_default):
SEGGER_RTT_WriteString(0, RTT_CTRL_TEXT_GREEN "Default\r\n" RTT_CTRL_TEXT_WHITE);
break;
case(voice_guandeng):
R_BSP_PinWrite(LED1_GREEN, BSP_IO_LEVEL_LOW);
SEGGER_RTT_WriteString(0, RTT_CTRL_TEXT_CYAN "Guan Deng\r\n" RTT_CTRL_TEXT_WHITE);
break;
case(voice_kaideng):
R_BSP_PinWrite(LED1_GREEN, BSP_IO_LEVEL_HIGH);
SEGGER_RTT_WriteString(0, RTT_CTRL_TEXT_MAGENTA "Kai Deng\r\n" RTT_CTRL_TEXT_WHITE);
break;
}修改完成后再次编译项目,烧录程序到单片机

开源社区 


