如何轻松部署设备端音频机器学习?

发布人:技术推广工程师 Luiz GUStavo Martins

Google I/O 大会上我们分享了 一套教程,帮大家在音频方面使用机器学习。在这篇文章中,您可找到一些相关资源,帮助开发与自定义应用的音频分类模型,以及激发灵感的真实案例。

音频机器学习

“声音”和“音频“两词有时候会被混用,但是两者有一点本质上的区别,即声音是你听见的内容,而音频则是声音的电子表现形式。这就是为什么我们讨论机器学习的时候使用“音频”一词的原由。

音频机器学习可用于:

  • 理解语音
  • 识别乐器
  • 对事件分类(例如:识别鸟的种类)
  • 检测音高
  • 生成音乐

本文我们将重点关注”音频事件分类“,这是一种常见需求,在现实生活中的应用非常多。例如 NOAA 创建了 座头鲸声波探测器,再如伦敦动物学会使用音频识别来保护野生动物。

您现在就可以前往 TensorFlow Hub 体验多种音频事件分类模型(YAMNet鲸鱼探测)。

音频识别也完全能够在设备端运行。例如,Android 拥有一项 声音通知 功能,此功能可在您身边出现重要声音时推送通知。这项功能还可以检测设备 正在播放哪种音乐,甚至还可以通过一个基于机器学习的 音频录制器 来记录设备上的对话。

  • 如何在自己的应用中使用这些模型?
  • 如何根据自己的音频用例自定义这些模型?

部署设备端机器学习模型

想象一下,如果您已经拥有一个音频分类模型(例如从 TF-Hub 获取的预训练模型),您会怎样在移动应用上使用该模型?为了帮助您将音频分类集成到应用中,我们创建了 TensorFlow Lite Task Library音频分类器 组件现已发布,您只需几行代码即可将音频分类模型添加到您的应用之中:

// 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)

该库负责将音频分类模型加载到内存,以使用适当的模型规格(采样率、比特率)和分类方法创建音频录制器,并获取模型推理结果。您可以点击 此处 查看完整示例并获取灵感。

自定义模型

如果您需要识别的音频事件未包含在预训练模型提供的集合中,应该怎么办?或者您需要细化事件类别,又该如何?在以上情况下,您可以使用一项名为 迁移学习 的技术对模型进行微调。

这一流程十分常规,您无需成为机器学习方面的专家也能做到。在此过程中,您可以使用 Model Maker 来助您一臂之力。

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)

您可以点击 此处 查看完整代码。输出模型可使用 Task Library 直接加载。另外,Model Maker 不仅能够自定义音频模型,还可以自定义图像、文本以及推荐系统的模型。

总结

音频机器学习是一个令人兴奋的领域,具备许多可能性,同时支持不少新功能。借助 TensorFlow Lite Task Library 等工具,在设备端使用机器学习 变得越来越简单便捷。有了 Model Maker,无需领域专业知识也可进行自定义。

您可以在我们有关 设备端机器学习 的新网站中了解详情(点击 此处 可前往音频路径)。您将找到教程、代码 等相关资源,这些资源不仅包括如何处理音频相关的任务,还包括图像(分类、目标检测)以及文本(分类、实体提取、问答)等。

您还可以在社交网络帖子中添加 tensorflow 标签,与我们分享您在项目中创建的内容,或者将其提交参加 TensorFlow Community Spotlight 计划。如果有任何疑问,欢迎在 discuss.tensorflow.google.cn 上提问。

原文:Easy Machine Learning for On-Device Audio
中文:TensorFlow 公众号