设备音频上的简单机器学习
2021 年 9 月 8 日

作者:Luiz GUStavo Martins,开发者倡导者

在 Google I/O 上,我们分享了一组教程,帮助您在音频上使用机器学习。在这篇博文中,您将找到资源,帮助您为您的应用程序开发和定制音频分类模型,以及一些现实世界的例子作为灵感。

GIF of dog with audio waves picking up sound

用于音频的机器学习

声音和音频有时可以互换使用,但它们有一个关键区别。声音本质上是你可以听到的东西,而音频是声音的电子表示。这就是为什么我们在谈论机器学习时通常使用音频这个词。

用于音频的机器学习可以用来

  • 理解语音
  • 理解乐器
  • 对事件进行分类(那是哪只鸟?)
  • 检测音调
  • 生成音乐

在这篇文章中,我们将重点介绍事件的音频分类,这是一种在实践中常见的场景,有许多现实世界的应用,例如NOAA 创建了一种座头鲸声学探测器,以及伦敦动物学会使用音频识别来保护野生动物

目前,您可以在TensorFlow Hub 上尝试许多分类模型 (YAMNet鲸鱼检测)。

音频识别也可以完全在设备上运行。例如,Android 具有声音通知功能,可以为周围的重要声音提供推送通知。它还可以检测正在播放的音乐,甚至可以帮助进行基于 ML 的音频录音应用程序,该应用程序可以在设备上转录对话。

拥有模型仅仅是开始。现在您可能会问

  • 如何在我的应用程序中使用它们?
  • 如何针对我的音频用例对其进行定制?

在设备上部署机器学习模型

假设您有一个准备好的音频分类模型,例如来自 TF-Hub 的预训练模型,您将在移动应用程序中如何使用它?为了帮助您将音频分类集成到您的应用程序中,我们创建了TensorFlow Lite 任务库音频分类器组件已发布,您只需几行代码即可将音频分类添加到您的应用程序中。

// Initialization
val classifier = AudioClassifier.createFromFile(this, modelPath)

// Start recording
val record = classifier.createAudioRecord()
record.startRecording()

// Load latest audio samples
val tensor = classifier.createInputTensorAudio()
tensor.load(record);

// Run inference
val output = classifier.classify(tensor)

该库负责将模型加载到内存中,以创建具有适当模型规范(采样率、比特率)和分类方法的音频录音机,以获取模型的推理结果。这里您会找到完整的示例,以获取一些灵感。

定制模型

如果您需要识别预训练模型中未提供的音频事件怎么办?或者如果您需要将它们专门用于较少的类别?在这些情况下,您需要使用一种称为迁移学习的技术来微调模型。

这是一个非常流行的过程,您不需要成为机器学习专家就可以做到这一点。您可以使用模型创建者来帮助您。

spec = audio_classifier.YamNetSpec()
data = audio_classifier.DataLoader.from_folder(spec, DATA_DIR)
 
train_data, validation_data = data.split(0.8)
model = audio_classifier.create(train_data, spec, validation_data)
 
model.export(models_path)

您可以找到完整的代码这里。输出模型可以直接由任务库加载。模型创建者不仅可以定制音频模型,还可以定制图像文本推荐系统模型。

总结

用于音频的机器学习是一个激动人心的领域,它有着无限的可能性,使许多新功能成为可能。使用 TensorFlow Lite 任务库等工具,在设备上进行机器学习变得越来越容易和快捷,并且可以使用模型创建者进行定制,而无需在该领域拥有专业知识。

您可以在我们的全新设备机器学习网站上了解有关它的更多信息(音频路径在这里)。您将找到教程、代码实验室以及有关如何执行音频相关任务以及图像(分类、目标检测)和文本(分类、实体提取、问答)任务的大量资源。

您可以在您的社交网络帖子中添加 #TensorFlow 来分享您的项目,或者将其提交给 TensorFlow 社区聚光灯计划。如果您有任何问题,可以在discuss.tensorflow.org. 上提问。

下一篇博文
Easy Machine Learning for On-Device Audio

作者:Luiz GUStavo Martins,开发者倡导者 在 Google I/O 上,我们分享了一组教程,帮助您在音频上使用机器学习。在这篇博文中,您将找到资源,帮助您为您的应用程序开发和定制音频分类模型,以及一些现实世界的例子作为灵感。 用于音频的机器学习 声音和音频有时可以互换使用,但它们有一个关键区别。声音本质上是你可以听到的东西,而音频是声音的电子表示。这就是为什么我们在谈论机器学习时通常使用音频这个词。