项目介绍
本次参加活动使用的板卡是 MAX78000FTH,板卡十分精致小巧,很方便部署到边缘端的设备上,进行边缘端的智能应用开发。
从板卡的板载外设情况来看,很方便做一个语音识别的小应用,所以本次打算做一个语音识别开关灯的功能。
0. 准备
开始前要准备的如下所示: 英伟达GPU、科技工具(以网络环境所定)、一些语音数据、MAX78000的ai8x-training和ai8x-synthesis文件。
pytorch 官网 https://pytorch.org/
WSL2搭建Pytorch1.10+CUDA11.4+NVIDIA Driver深度学习框架链接
1. 环境搭建
安装WSL 链接
WSL安装好后下载文件
git clone --recursive https://github.com/MaximIntegratedAI/ai8x-training.git
git clone --recursive https://github.com/MaximIntegratedAI/ai8x-synthesis.git
安装Andonconda以及python可以参考如上
1. 注意pytorch和cuda版本、pytorch和conda版本对应问题。请看如下搭配:
和
安装完成后使用如下命令查看安装是否成功。
- nvcc-v
2. nvidia-smi
2.准备训练kws20模型
3. 训练一半自动停了,给 wsl 分配内存太少了,推荐分配16G
2. 新建工程编译及烧录
1. 双击这个.exe 文件进行根目录安装。
2. 新建工程及烧录如下所示
3. 烧录完毕关闭即可
以上就是新建工程及其烧录了,其中有时串口会出现乱码,重新上电即可。
3.简单的程序测试
添加如下代码,测试系统是否正常工作。(检测到 ONE 语音时亮绿灯、否则亮别的颜色)
4. 开始录制音频数据
录制格式要求:采样频率16000hz、16位、单声道、wav格式、录的音尽量不要有环境杂音。
注意:软件可能会卡死,需要开下输入法的兼容模式即可。
对 kaideng 进行多次重复录音,后续裁剪成单个1秒时长的即可。
进行单个1秒时间统一调整后保存到 kaideng 文件夹.......
放入训练目录中
对kws20.py文件中个别参数的修改如下:
对 ai85net-kws20 文件中的添加修改如下:
修改完成后,进行训练和量化如下:
//训练
cd ai8x-training
./scripts/train_kws20_v3.sh
//量化
cd ai8x-synthesis
./scripts/quantize_kws20.sh
//生成demo
./gen-demos-max78000.sh
如果 gen-demos-max78000.sh 文件里没有 kws20_demo,自行添加如下
python ai8xize.py --test-dir $TARGET --prefix kws20_demo --checkpoint-file trained/ai85-kws20-qat8-q.pth.tar --config-file networks/kws20-hwc.yaml --softmax $COMMON_ARGS "$@"
量化完成后生成工程,把生成的如下文件替换到例程工程文件中,编译烧录即可。