iOS开发 ---对音频文件中的声音进行分类(OC版)上
2022-03-11 本文已影响0人
我是卖报的小行家
在做项目过程中,会对声音作为一个分类,比如动物叫声,汽车鸣笛,风扇转动,脚步声等等,
那具体该怎么实现呢,iOS13时候提出了一个模型工具叫createML,此前文章有简单提起过,现在就让我们来再次回顾下如何使用该工具来对声音进行分类
概述
声音分类器是一种识别声音的机器学习模型。当给它一个声音时,它会以该声音的类别标签进行响应。
您可以通过向声音分类器展示许多已经标记的声音示例来训练它。例如,可以通过收集脚步声、说话声、音乐,动物叫声等的文件来训练声音分类器来识别这些分类。
声音分类器完成训练后,可以评估其准确性,如果表现足够好,则将其保存为 Core ML 模型文件。然后,将模型文件导入您的 Xcode 项目,以在应用程序中使用声音分类器。
过程:
1.收集的数据,组织数据
准备好多组不同类型的声音数据,每组的数据类型尽可能的一致,通过将声音分类到子文件夹来准备训练数据集。为每个子文件夹中包含的声音类别命名。
2.组织测试数据
使用测试数据集测试您的模型是一种快速查看经过训练的模型在现实世界中表现如何的方法。
如果数据集有足够的声音,例如每个类别 25 个或更多,则通过复制训练数据集的文件夹结构来创建测试数据集。然后将每个类别中大约 20% 的声音移动到测试数据集中的等效类别文件夹中。
3.创建声音分类器项目
1).Xcode自带了一个CreateML工具,打开CreateML
CreateML2).新建一个模型用来训练数据,训练机器学习模型对声音进行分类,并将其添加到的 Core ML 应用程序中。
新建一个模型 renderedDark2x-1632466772.png3).将项目的默认名称更改为更有意义的名称。如果适用,请输入来自该项目的模型的附加信息,例如一位或多位作者和简短描述。
renderedDark2x-1632466744.png4. 配置培训课程
1).将包含的训练数据集的文件夹拖到项目窗口中的训练数据井中。
renderedDark2x-1632466781.png2).如果适用,将包含测试数据集的文件夹拖到项目窗口中的测试数据井中。
renderedDark2x-1632517906.png3).如果想知道要在训练会话中使用多少次训练迭代,请更改默认值的最大迭代次数。您还可以打开任何或所有声音增强功能。每次扩充都会复制数据集的图像并应用变换或过滤器,从而有效地为数据集提供更多多样性,而无需收集额外的图像。
renderedDark2x-1632466756.png5.训练分类器
单击“培训”按钮开始培训课程。Create ML 通过将一些训练数据快速分离到验证数据集中来开始会话。接下来,Create ML 从剩余的训练图像中提取特征,例如边缘、角落、纹理和颜色区域。Create ML 使用图像的特征来迭代训练模型,然后使用验证数据集检查其准确性。
renderedDark2x-1632466753.pngCreate ML 在图表中显示其进度,其中黑色和灰色线分别代表模型在训练和验证数据集上的准确性。
6.评估模型的准确性
当 Create ML 完成模型训练后,它会使用测试数据集测试模型。完成模型测试后,Create ML 会在评估选项卡中显示训练、验证和测试准确度分数。模型通常在训练数据集上具有更高的准确度分数,因为它是从这些图像中学习的。在此示例中,图像分类器模型正确识别:
100% 的训练声音
95% 的验证声音
97% 的测试声音
7.保存模型
当您对模型的性能感到满意时,将其保存到文件系统(以 Core ML 格式)。在“输出”选项卡中,使用以下任一选项保存模型:
单击保存按钮将模型保存到文件系统。
单击导出按钮以在 Xcode 中打开模型。
单击共享按钮将模型发送给其他人,例如通过邮件或消息。
将模型的图标拖到任何接受文件的地方。
renderedDark2x-1632466779.png
8.将模型添加到您的应用程序
最后一步是将训练好的模型添加到 Xcode 项目中。例如,您的图像分类器模型可以替换[Classifying Images with Vision and Core ML]
下载示例并在 Xcode 中打开项目。将您的模型文件拖到导航窗格中。Xcode 将模型添加到项目中,并显示模型的元数据、操作系统可用性、类标签等。
截屏2022-03-11 11.20.52.png