0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何开发与自定义应用的音频分类模

Tensorflowers 来源:ensorFlow 作者: Luiz GUStavo Martins 2021-10-11 10:08 次阅读

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

音频机器学习

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

音频机器学习可用于:

理解语音

识别乐器

对事件分类(例如:识别鸟的种类)

检测音高

生成音乐

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

座头鲸声波探测器

https://www.blog.google/technology/ai/pattern-radio-whale-songs/

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

TensorFlow Hub

https://hub.tensorflow.google.cn

YAMNet

https://hub.tensorflow.google.cn/google/yamnet/1

鲸鱼探测

https://hub.tensorflow.google.cn/google/humpback_whale/1

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

声音通知

https://blog.google/products/android/new-sound-notifications-on-android/

正在播放哪种音乐

https://blog.google/products/pixel/on-device-ai-with-pixel4/

音频录制器

https://ai.googleblog.com/2019/12/the-on-device-machine-learning-behind.html

如何在自己的应用中使用这些模型?

如何根据自己的音频用例自定义这些模型?

部署设备端机器学习模型

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

音频分类器

https://tensorflow.google.cn/lite/inference_with_metadata/task_library/audio_classifier

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

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

此处

https://github.com/tensorflow/examples/tree/master/lite/examples/sound_classification/android

自定义模型

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

迁移学习

https://developers.google.com/machine-learning/glossary#transfer-learning

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

Model Maker

https://tensorflow.google.cn/lite/guide/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 不仅能够自定义音频模型,还可以自定义图像、文本以及推荐系统的模型。

此处

https://tensorflow.google.cn/lite/tutorials/model_maker_audio_classification

总结

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

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

设备端机器学习

https://developers.google.com/learn/topics/on-device-ml

此处

https://developers.google.com/learn/pathways/on-device-ml-5

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

discuss.tensorflow.google.cn

https://discuss.tensorflow.google.cn/

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 音频
    +关注

    关注

    28

    文章

    2596

    浏览量

    79951
  • 机器学习
    +关注

    关注

    66

    文章

    8095

    浏览量

    130516

原文标题:如何轻松部署设备端音频机器学习?

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 593次阅读
    HarmonyOS<b class='flag-5'>开发</b>实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下
    的头像 发表于 04-08 10:17 123次阅读

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现在自定义数据集上,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 1218次阅读
    基于YOLOv8实现<b class='flag-5'>自定义</b>姿态评估模型训练

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 280次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用

    Android端自定义铃声 MobPush对安卓端自定义铃声的教程

    如何为APP推送设置独特的通知铃声呢?本次带来的是MobPush对安卓端自定义铃声的教程,快来看看吧~
    的头像 发表于 10-21 15:34 806次阅读
    Android端<b class='flag-5'>自定义</b>铃声 MobPush对安卓端<b class='flag-5'>自定义</b>铃声的教程

    OpenHarmony自定义组件介绍

    一、创建自定义组件 在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发定义的称为自定义组件。在进行 UI 界面开发
    发表于 09-25 15:36

    如何使用BMLang开发自定义的算子?

    如何使用BMLang开发自定义的算子
    发表于 09-18 06:57

    OpenHarmony应用开发自定义弹窗

    本文转载自《OpenHarmony应用开发自定义弹窗》,作者:zhushangyuan_ ​ 应用场景 在应用的使用和开发中,弹窗是一个很常见的场景,自定义弹窗又因为极高的自由度得以
    发表于 09-06 14:40

    RZ-G2L 技术贴|psplash自定义开机画面

    psplash自定义开机画面:以下方法基于瑞萨RZ/G2L系列HD-G2L-IOT开发板测试.
    的头像 发表于 08-28 16:04 433次阅读
    RZ-G2L 技术贴|psplash<b class='flag-5'>自定义</b>开机画面

    labview超快自定义控件制作和普通自定义控件制作

    labview超快自定义控件制作和普通自定义控件制作
    发表于 08-21 10:32 5次下载

    教程 3:构建自定义配置文件

    教程 3:构建自定义配置文件
    发表于 07-06 18:49 0次下载
    教程 3:构建<b class='flag-5'>自定义</b>配置文件

    教程 2:自定义配置文件示例

    教程 2:自定义配置文件示例
    发表于 07-04 20:50 0次下载
    教程 2:<b class='flag-5'>自定义</b>配置文件示例

    带计时器的自定义锻炼

    电子发烧友网站提供《带计时器的自定义锻炼.zip》资料免费下载
    发表于 06-16 10:29 0次下载
    带计时器的<b class='flag-5'>自定义</b>锻炼

    PyTorch教程6.5之自定义图层

    电子发烧友网站提供《PyTorch教程6.5之自定义图层.pdf》资料免费下载
    发表于 06-05 15:17 0次下载
    PyTorch教程6.5之<b class='flag-5'>自定义</b>图层

    labview自定义控件

    labview自定义精美控件
    发表于 05-15 16:46 9次下载