今天,将手把手带领学习如何训练一个语音关键词模型部署到嵌入式硬件上,采用 Edgi-Talk 平台适配 Edge Impulse,当然原理在其他的ARM嵌入式平台也是通用的。让我们看看如何让 Edgi-Talk 开始使用边缘机器学习!
目录
Edge Impulse 简介
创建账号
录制数据集
数据上传
数据分割
模型训练
模型评估
模型集成
淘宝链接直达
1Edge Impulse 简介
Edge Impulse是领先的边缘人工智能开发平台,致力于帮助开发者、工程师和企业将智能AI快速部署到任何边缘设备(如微控制器、传感器和物联网硬件)上。
你可以轻松采集传感器数据、构建数据集、训练并优化机器学习模型,然后一键部署到全球数千种硬件生态系统,无需深厚的AI专业知识即可实现快速原型开发和商业化落地。
2 创建账号
操作步骤:
1. 登录Edge Impulse,https://edgeimpulse.com/
2. 注册账号;
3. 通过create new project创建工程

2 录制数据集
1.给 Edgi-Talk 开发板烧录 UAC 固件,用于收集音频数据:uac-firmware.hex;(链接:https://github.com/RT-Thread-Studio/sdk-bsp-psoc_e84-edgi-talk/releases/download/1.1.0/uac-firmware.hex)
2.下载音频数据集录制软件:Audio-recording.exe;(链接:https://github.com/RT-Thread-Studio/sdk-bsp-psoc_e84-edgi-talk/releases/download/1.1.0/audio-recording.exe)
3.将开发板的 USB 连接到电脑上,电脑会弹出音频输入设备;
4.音频输入设备需要选择:Audio Control(MME)设备;

5.点击开始录制进行一次长达10 秒的录制,录制期间需要保证清晰的对话,唤醒词录制需要间隔1-2s停顿时间;
6.录制好一次后,点击右侧的“保存录音”选择,进行一次保存;
7.当前序号选项默认会递增,请重复上述步骤录制 20-50 个关键词音频文件;
8.最终录制两类音频文件,一类是唤醒词,一类是噪音;



3 数据上传
1. 点击add exsiting data
2. 选择upload data


3. 选择电脑上的音频文件夹并上传,此时网站会根据文件名称自动进行分类(nocie,唤醒词)

4 数据分割
操作步骤:
1. 首先选择 Training 列表的数据,先点击筛选,输入我们唤醒词的文件前缀,筛选出我们要操作的文件

2. 右侧点击音频文件后,选择Split sample,平台会将声音文件切分为大致1s的音频片段

3. 在分割音频界面,可以调整音频片段,以覆盖唤醒词的声音内容,播放进行试听和调整

每个矩形框就是拆分提取的一个子模块,如有必要,可以调整矩形的位置,让其完全覆盖住我们的唤醒词音频区,或者也可以做一些添加或删除片段的操作。
4. 拆分后的音频文件都会变成独立的音频文件,网站会自动添加后后缀名(xxxx_Sn)

5. 按照上述步骤,将全部唤醒词文件进行分割好
6. 选择 Test 列表的数据,针对 唤醒词 文件继续进行分割,noice 标签可以不用分割

7. 对数据进行分类:按照下图步骤将数据集分为两大类,分别是 唤醒词 + 其他



5 模型训练
5.1 创造脉冲信号(预处理/模型定义)
脉冲在这里是Edge Impulse用来表示数据处理—训练管道的词汇。
创建脉冲并将窗口长度设置为 1000 毫秒,窗口长度增加设置为 500 毫秒(重叠窗口以增强数据),频率设置 16KHz。
这些设置表示,每次执行推理时,传感器数据采集将在 1000 毫秒内完成,具体采集次数由采样频率决定。
简而言之,你的设备会在 1000 毫秒的时间窗口内收集 N 个数据样本,随后对这些样本进行预处理,并输入神经网络以获得推理结果。
操作步骤:
1. 点击左侧Create impulse
2. 然后点击Add a processing block 添加 Audio(MFCC)

3. 会弹出下面的对话框,使用默认的配置即可:

4. 使用MFCC,它使用梅尔频率倒谱系数从音频信号中提取特征,这对人类声音非常有用。


5. 然后点击Add a learning block添加Classification模块,它通过使用卷积神经网络进行图像分类从头开始构建我们的模型。


6. 最后点击save impulse,保存配置

5.2 预处理(MFCC)
MFCC 是一种广泛使用的方法,用于将音频信号转换为表示语音频率模式的 2D 特征,这些特征非常适合基于语音的识别模型
我们创建录制音频生成的频谱图图像,操作步骤:
1. 点击MFCC,我们可以保留默认参数值

3. 点击Generate features,生成3个标签数据的特征


5.3 模型设计与训练(Classifier)
下一步,我们需要对模型的结构进行设计和开始训练,步骤如下:
操作步骤:
1. 点击左侧Classifier,整个模型的结构设计已经配置好
2. 然后点击save&train,开始训练模型。

通过多次迭代,可以提升模型泛化能力。
经过验证,提升方法包括:优化测试数据集、调整模型结构(如增加更多卷积层)等。
平台对于训练时间有限制要求,免费用户只能进行训练时间在20分钟以内的训练;
如果需要不限时间,需要购买付费服务才可以进行。
6 模型评估
操作步骤:
1. 点击左侧的Model testing
2. 然后点击Classify all
3. 开始分类所有的测试集数据。

4. 测试之后,可以在右侧的Result查看测试结果

7 模型集成
7.1 生成模型库文件
模型训练完成后,我们需要生成在 Edgi-Talk 平台上运行的库文件。
操作步骤:
1. 点击左侧Deploment
2. 搜索Arduino library和TensorFlow Lite
3. 然后点击Build,待build完成后,保存下载的库文件。


7.2 部署到嵌入式硬件
1. 将上一步下载得到的压缩包进行解压,可以得到如下的文件目录

2. 获取最新的 Edgi-Talk 开发板 SDK,进入Edgi_Talk_M55_XiaoZhi/edge-impulse 目录,删除下图中的两个文件夹,然后将上一步中的两个文件夹,替换到当前目录中,即可实现模型文件的替换

3. 编译 Edgi_Talk_M55_XiaoZhi 项目,并烧录到开发板中。
4. 在 Edgi-Talk 串口终端中输入下面的指令,开启唤醒词测试:
xz_wakeword_initxz_wakeword_start
4. 对开发板说出唤醒词,这里演示使用的是“xiaorui,xiaorui”,当说出唤醒词的时候串口终端会打印日志

-
嵌入式
+关注
关注
5209文章
20622浏览量
336753 -
EDGE
+关注
关注
0文章
193浏览量
44225 -
机器学习
+关注
关注
67文章
8561浏览量
137208 -
IMPULSE
+关注
关注
0文章
8浏览量
7278
发布评论请先 登录
Syntiant TinyML板搭建Edge Impulse模型实现语音识别效果
【大语言模型:原理与工程实践】大语言模型的基础技术
把edge impulse的文件存入sd卡,插入sd卡到开发板后openmv中还是显示找不到tflite模型和labels,怎么解决?
Edge Impulse的分类模型浅析
使用Arduino 33 BLE Sense和Edge Impulse构建的咳嗽检测系统
修补Edge Impulse为MCU创建图像、音频和运动分类模型
使用Edge Impulse的Covid患者健康评估设备
语音识别唤醒词的技术与应用
使用Edge Impulse和Nvidia Jetson的面罩检测器
Edge Impulse 唤醒词模型训练 | 技术集结
评论