在 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
全部0条评论
快来发表一下你的评论吧 !