2020 年 12 月 02 日 — 作者:Khanh LeViet,TensorFlow 开发者倡导者
声音分类是一种机器学习任务,您将声音输入到机器学习模型中,以将其分类到预定义的类别中,例如狗叫声、汽车喇叭声等等。声音分类已经有许多应用,包括 检测非法砍伐森林活动,或 检测座头鲸的声音 以更好地了解它们的自然行为。
作者:Khanh LeViet,TensorFlow 开发者倡导者
我们很高兴地宣布,Teachable Machine 现在允许您训练自己的声音分类模型并将其导出为 TensorFlow Lite (TFLite) 格式。然后,您可以将 TFLite 模型集成到您的移动应用程序或物联网设备中。这是一种快速开始使用声音分类的简便方法,您可以探索在 Python 中构建生产模型并将其导出到 TFLite 作为下一步。
Teachable Machine 用于对 1 秒音频样本进行分类的模型是一个小型卷积神经网络。如上图所示,该模型接收 频谱图(通过傅里叶变换获得的声音的二维时频表示)。它首先使用连续的二维卷积 (Conv2D) 层和最大池化层来处理频谱图。该模型以多个密集(全连接)层结束,这些层与 dropout 层交织在一起,用于在训练期间减少过拟合。模型的最终输出是概率分数数组,每个数组对应于模型训练以识别的声音类别。
您可以在 此处 找到使用此方法在 Python 中训练自己的声音分类模型的教程。
有两种方法可以使用您自己的数据集训练声音分类模型
Teachable Machine 是一款 GUI 工具,可让您创建训练数据集并训练多种类型的机器学习模型,包括图像分类、姿势分类和声音分类。Teachable Machine 在幕后使用 TensorFlow.js 来训练您的机器学习模型。您可以将训练后的模型导出为 TensorFlow.js 格式,以在 Web 浏览器中使用,也可以将其导出为 TensorFlow Lite 格式,以在移动应用程序或物联网设备中使用。
以下是训练模型的步骤
如果您有大型训练数据集,包含几个小时的声音录制和超过 12 个类别,那么在 Web 浏览器上训练声音分类可能需要很长时间。在这种情况下,您可以提前收集训练数据集,将其转换为 WAV 格式,并使用此 Colab 笔记本(其中包括将模型转换为 TFLite 格式的步骤)来训练您的声音分类。Google Colab 提供免费的 GPU,因此您可以显著加快模型训练速度。
训练好 TensorFlow Lite 声音分类模型后,您可以将其放入此 Android 示例应用程序中进行试用。只需执行以下步骤
git clone https://github.com/tensorflow/examples.git
lite/examples/sound_classification/android
文件夹中找到它。soundclassifier.tflite
和 labels.txt
)添加到 src/main/assets
文件夹中,替换已经存在的示例模型。要将模型集成到您自己的应用程序中,您可以从示例应用程序中复制 SoundClassifier.kt
类以及您训练的 TFLite 模型到您的应用程序中。然后,您可以按以下步骤使用该模型
1. 从您的 Activity
或 Fragment
类中初始化一个 SoundClassifier
实例。
var soundClassifier: SoundClassifier
soundClassifier = SoundClassifier(context).also {
it.lifecycleOwner = context
}
2. 开始从设备麦克风捕获实时音频并实时分类
soundClassifier.start()
3. 实时接收分类结果,结果以人类可读的类别名称和当前声音属于每个特定类别的概率形式的映射表示。
let labelName = soundClassifier.labelList[0] // e.g. "Clap"
soundClassifier.probabilities.observe(this) { resultMap ->
let probability = result[labelName] // e.g. 0.7
}
我们正在开发该示例应用程序的 iOS 版本,该版本将在几周内发布。我们还将扩展 TensorFlow Lite Model Maker 以便在 Python 中轻松训练声音分类。敬请关注!
这个项目是 Google 内部多个团队共同努力的结果。特别感谢
2020 年 12 月 02 日 — 作者:Khanh LeViet,TensorFlow 开发者倡导者
声音分类是一种机器学习任务,您将声音输入到机器学习模型中,以将其分类到预定义的类别中,例如狗叫声、汽车喇叭声等等。声音分类已经有许多应用,包括 检测非法砍伐森林活动,或 检测座头鲸的声音 以更好地了解它们的自然行为。