# Mind+扩展库音频分类 **Repository Path**: limengya10204507415/ext-audio_classification ## Basic Information - **Project Name**: Mind+扩展库音频分类 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-13 - **Last Updated**: 2025-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 音频分类的语音识别项目的实现 ![](./python/_images/featured.png) --------------------------------------------------------- # 人工智能语音识别案例之行空板语音控制开关灯 ## 1、流程 -1.创建音频数据集文件夹,使用行空板采集音频数据 -2.断开行空板,在电脑端使用音频特征提取工具(audio_embedding model)提取音频特征写入csv文件 -3.在电脑端使用音频特征csv文件搭建全连接神经网络训练音频特征分类模型 -4.部署音频特征模型到行空板M10实验盒,应用模型实现语音控制行空板亮灯和熄灭灯 提示:本项目需要在电脑端安装:xedu-python==0.2.3 BaseNN==0.3.1 ;连接行空板,行空板端安装:xedu-python==0.2.3 BaseNN==0.3.1 首先打开Mind+,加载用户库,链接为:https://gitee.com/limengya10204507415/ext-audio_classification ![](./python/_images/1.png) # 行空板语音控制开关灯项目制作之第一步:行空板端采集音频 使用USB数据线连接电脑与行空板,在编写录音程序前先在右侧项目中的文件创建音频数据集文件夹.按照以下格式创建文件夹 ``` └─audio_dataset //音频数据集文件夹 │ └─class_1 // 存放类别1音频的文件夹,这里的类别名就是语音内容 └─class_2 // 存放类别2音频的文件夹 ``` 如下图 ![](./python/_images/2.png) 接着编写录音程序,使用行空板麦克风录音,自动将音频文件存放到对应类别文件夹,如下图 ![](./python/_images/3.png) 运行程序,按下A键,观察行空板屏幕出现“开始录音”,对准麦克风说“开灯”,录制最少30-40条左右,效果比较好;按下B键,观察行空板屏幕出现“开始录音”,对准麦克风说“关灯”,两类音频的录制条数最好保持一致 录制完找到音频文件,点击下载到电脑,方便后续在电脑端提取音频特征和训练模型,如下图 ![](./python/_images/4.png) # 行空板语音控制开关灯项目制作之第二步:电脑端提取音频特征 断开行空板的连接,将音频数据集文件和音频特征提取工具(checkpoint文件夹)拖入项目中的文件目录下,编写特征提取程序,运行即可 ![](./python/_images/5.png) 注意请先关闭mind+自动缓存,避免卡顿 ![](./python/_images/6.png) 程序运行后会自动出现保存音频特征的csv文件 ![](./python/_images/7.png) 可以自行打开csv文件观察,发现这个csv列表一共有1025列,其中1024列是音频特征列,1列是标签列,audio_embedding 模型从每一个音频中提取了1024个音频特征并以数字化的形式显示,我们可以用这些特征来训练分类模型,csv文件如下图。 ![](./python/_images/8.png) # 行空板语音控制开关灯项目制作之第三步:电脑端训练音频特征分类模型 提取完特征后,使用音频特征训练音频分类模型,这里使用的是全连接神经网络,(第一层的输入层的维度是特征数量,这里是1024。每一层的输出层的维度与下一层输入层的维度数量相等)最后一层的输出维度是特征标签数量。训练模型的程序如下。 ![](./python/_images/9.png) 可以使用模型在电脑端进行推理,秉承着"用什么训练,用什么推理"的原则,这里是使用checkpoint中的audio_embedding模型将test.wav文件转成1024维度的向量,将向量输入到我们自训练的模型推理,获取结果 ![](./python/_images/10.png) # 行空板语音控制开关灯项目制作之第四步:部署模型到行空板实现开关灯 连接行空板,确保右侧项目中的文件有"checkpoint"文件夹和"audio_model"文件夹,可以使用以下程序实现语音控制行空板实验盒开灯和熄灭灯 ![](./python/_images/11.png) # 其他出错怎么办? - Python中,如果出错,则会在“终端”中打印信息,因此,排查错误主要依耐“终端”输出的信息 - 可以将出错信息复制关键词 ,在行空板官方文档中搜索查找是否有对应解决方案:[行空板官方文档](https://www.unihiker.com.cn/wiki/FAQ) - 可以将“自动生成”的代码和“终端”输出的信息,发给各种大语言模型分析问题,例如chatGPT、文心一言、讯飞星火等 - 加入行空板官方群查找解决办法 # 如果遇到找不到指定程序的错误怎么办? 如果遇到下图的报错 ![](./python/_images/13.png) 出现这样的报错,大概率时因为运行此库的python依赖库没有安装成功,或者库版本不对。这里列出了win7系统下使用此用户库所需要的python依赖版本,请自我检查 ![](./python/_images/14.png) # 提示:前后特征标签的顺序必须保持一致 在提取音频特征时和应用模型完成开关灯项目时,前后特征标签的顺序必须保持一致,如下图。否则模型影响推理的结果。 ![](./python/_images/12.png) # 相关飞书资料链接 本库提供视频教程,飞书链接:https://h7dvigefi0.feishu.cn/docx/Mpbud8AnOo696yxE3vcc5SSGnxd ## 详情信息 * [URL](#url) * [License](#license) /**## URL * Project URL : ```hhttps://gitee.com/limengya10204507415/ext-audio_classification``` * Tutorial URL : ```https://mindplus.dfrobot.com.cn/extensions-user``` **/ ## License | 主板型号 | 实时模式 | ArduinoC | MicroPython | python | 备注 | | ----------- | -------- | -------- | ----------- | :----: | ---- | | uno | | | | | | | micro:bit | | | | | | | mpython | | | | | | | arduinonano | | | | | | | leonardo | | | | | | | mega2560 | | | | | | | 行空板 | | | | √ | | | windows | | | | √ | | ## Release Logs * V0.0.1 基础功能完成 * V0.0.2 将audio_embeddings_training.csv的第一行的所有列名替换成中文,增加报错提示。