基于MAX78000的智能语音控制洗衣机(模拟)
本项目基于基于MAX78000 FTHR_RevA开发板,使用语音识别技术,识别语音指令,从而控制洗衣机(模拟)运行
标签
嵌入式系统
Python
神经网络
CNN
智能语音
HonestQiao
更新2023-02-06
2007

项目训练报告

 

一、项目介绍

        本项目,在MAX78000 FTHR_RevA开发板的主控逻辑程序中,通过板载MIC监听,识别语音指令,再通过电机控制器控制外部电机的运转,同时在TFT屏幕上显示当前状态,从而实现智能语音控制洗衣机(模拟)的功能。

 

二、项目设计思路

  •  MAX78000作为新一代的人工智能微控制器,提供了CNN引擎,得以让神经网络能够以超低功耗执行,作为物联网边缘计算设备非常合适。
  • 官方提供的案例中,有关于语音识别关键词的案例,非常适合用于参考,经过学习研究,可以参考该案例,运用到实际应用中。
  • 本项目计划通过语音指令,实现对洗衣机电机的控制,计划支持的指令如下:开始、停止、洗衣、漂洗、脱水、烘干。
  • 具体的规划设计如下:
  • FrzuqezK1E3jaKN6WCu_UmXOxbne

 

三、项目实现步骤

  1. 语音素材采集:采集指令对应的素材。
  2. 语音素材训练:参考官方SDK中的kws20_demo案例,进行语音素材的训练和建模,生成CNN模型代码
  3. 主控程序:参考官方SDK中的kws20_demo案例,进行语音指令的识别;另外,参考TFT_DEMO,实现屏幕显示;参考其他例程,实现GPIO控制,实现对电机的启停控制。
  4. 项目验证:
    1. 语音识别验证:通过板载MIC进行识别,并在屏幕上输出识别结果
    2. TFT屏幕显示验证:在屏幕显示识别
    3. 控制功能验证:
      1. GPIO控制:控制LED和继电器
      2. 电机控制:以微型直流电机代替洗衣机电机,进行控制
    4. 整体功能验证:通过语音指令,控制微型直流点击的额运转,并同时在TFT屏幕上显示当前运行状态。

 

四、搜集素材的思路

  • 参考kws20_demo的资料,可以详细了解所需要的素材信息:
    • 素材集:http://download.tensorflow.org/data/speech_commands_v0.02.tar.gz
    • 压缩包大小:2.43G
    • 包含素材:
      • 音频文件105829个
      • 单个音频文件长度1s
      • 标记词汇35个
      • 平均每个词汇3024个音频文件
  • 实际数据采集:【计划】
    • 采集5~10人数据
    • 每个词,每人发声100次,进行数据采集
    • 采集后,使用Python程序,将音频文件整理为1s长度备用
    • 根据实际情况,抽样调查不同人的数据,根据需要对原始数据进行调整
    • 预计采集数据:5人
      • 词汇量:6个
      • 音频文件数:6*100*5=3000个

五、预训练实现过程

目前对kws20_demo进行了完整的验证,验证的步骤包括:

  1. 验证环境的建立:为了方便验证,在本地maxOS系统上,构建了验证环境
  2. 数据集参数的设置:因为是在本地环境,完整的跑完所有的词汇,需要时间教程,所以仅设置了yes、no两个词汇,使得在1小时左右的时间,可以完成训练
  3. 数据训练
  4. 合成并输出代码
  5. 应用到MAX78000 FTHR_RevA开发板控制程序中测试

具体的训练和测试过程,请查看进度中的

最终具体测试的效果如下:

当使用YES指令的时候,正确识别,同时点亮了黄灯(绿灯+红灯):

FnZFc5Uu1UBurg3xcyLTcMM0bVkT

 

当使用NO指令的时候,正确识别,同时仅亮了绿灯:

FjroHRUq5yhEbcwMLrJretSZJ0yL

 

六、实际语音指令训练

1、将采集到的实际需要使用的语音指令数据,进行数据清理,编辑为1s长度的音频文件

2、修改kws20_demo训练的词汇定义

3、进行新的词汇训练

 

七、实际语音使用

1、将训练的结果,同步到kws20_demo的代码中

2、将原有GPIO控制LED的部分,修改为控制外部电机的继电器

3、进行实际语音使用测试

 

八、实际作品:

最终作品图如下:

Fimdrz8YAlrhUkU4ZYBaq_w7Za4N

 

洗衣机部分模拟:

  1. 羽毛球球筒模拟洗衣机桶
  2. 小型直流点击一个,模拟洗衣旋转波轮
  3. 电机控制器一个,用于为电机供电,并接受MAX78000控制
  4. 独立电源一个,用于为电机供电
  5. 电机控制器连接到MAX78000开发板的P1_6接口,接受控制

实际运行效果如下:

附件下载
演示代码.zip
团队介绍
一个狂热的开源爱好者和传播者,同时也是一名极客爱好者,长期关注嵌入式发展和少儿创客教育,既擅长互联网系统架构设计与研发,又拥有丰富的嵌入式研发经验。为人精力充沛,古道热肠,圈内人称乔大妈、乔帮主。
团队成员
HonestQiao
狂热的开源爱好者和传播者
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号