背景介绍
人可以通过听觉感知位置、运动、音调、音量、旋律并获取信息。日常生活中,音频是一种重要的多媒体数据,我们会收听电台节目、欣赏在线音乐等。
音频可分为以下三种类型[1]:
- 语音:一种高度抽象的概念交流媒体,具有字词、语法等语素。语音经过识别可转换为文本。文本是语音的一种脚本形式。
- 音乐:人声和乐器音响等配合构成的一种声音,具有节奏、旋律或和声等要素。音乐可以用乐谱来表示。
- 波形:对模拟声音数字化而得到的数字音频信号。可以代表语音、音乐、自然界以及合成的声响。
音频检索技术可以对网络媒体进行实时检索、审查和监控,从而达到保护版权的目的。音频检索技术在音频数据分类与统计中发挥着重要作用。
关键技术
语音、音乐和其他声响的特性各不相同,一般分为以下两种处理方法:
- 包含语音的音频:利用自动语音识别技术进行处理。
- 不包含语音的音频:此类音频包括音乐、声音效果和数字化语音信号。利用音频 检索系统进行处理。
本文将重点介绍如何使用音频检索系统处理不包含语音的音频数据,暂不涉及语音识别。
音频特征提取技术
音频特征提取是音频检索系统中最核心的技术,基于音频内容提取音频特征后才能进行音频特征相似度检索。特征提取是指提取出能代表原始音频信号的数据形式。提取音频特征的方法分为两类:
- 传统音频特征提取模型:经典的高斯混合模型 (GMM) 和隐马尔可夫模型 (HMM) 等。
- 基于深度学习的音频特征提取技术:循环神经网络、长短期记忆 (LSTM)、编码-解码框架和注意力机制等。
基于深度学习的音频特征提取技术的识别错误率比传统模型低一个级别,因此基于深度学习的音频特征提取技术正逐渐成为音频处理领域的核心技术。
音频数据通常由提取出来的音频特征来代表。在检索过程中,我们对这些特征和属性而非信息本身进行搜索和比较,因此音频相似性检索的效果取决于特征抽取的质量。
本文利用基于深度学习网络的 PANNs[2] (Large-Scale Pretrained Audio Neural Networks for Audio Pattern Recognition) 模型提取音频的特征向量。PANNs 模型的平均准确率 (mAP) 可达 0.439,优于 Google 的 mAP 值 (0.317)[3]。
在提取音频数据的特征向量后,我们可以通过 Milvus 实现高性能的特征向量分析。
Milvus 特征向量检索引擎
Milvus[4] 是一款开源的向量相似度搜索引擎,可与多种 AI 模型相结合。Milvus 提供向量化的非结构数据检索服务,目前广泛应用于图像处理、计算机视觉、自然语言处理、语音识别、推荐系统以及新药研发。
基于 Milvus 搭建的特征向量检索流程如下图所示:
- 与深度学习模型相结合,将非结构化数据转化为特征向量。
- 将特征向量存储到 Milvus 并对特征向量建立索引。
- 根据用户的向量相似性搜索请求返回结果。
系统搭建
本文搭建的音频检索系统主要包含两个部分:音频数据导入(下图黑线所示)和音频数据检索(下图红线所示)。
本项目中的示例数据为开源游戏声音数据,代码实现详见 Bootcamp-https://github.com/zilliz-bootcamp/audio_search。
第一步:数据导入
利用 panns-inference 预训练模型将音频数据转换为特征向量并导入到 Milvus 中,Milvus 将返回向量对应的 ID。示例代码如下:
将返回的 ids_milvus 与音频数据的相关信息(如 wav_name)存储到 MySQL 数据库中,方便后续的音频数据检索与结果返还。示例代码如下:
第二步:音频检索
利用 panns-inference 预训练模型提取待检索音频数据的特征向量,在 Milvus 中计算待检索音频数据特征向量与此前导入 Milvus 库中音频数据特征向量的内积距离。根据检索返回结果的 ids_milvus 获取相似音频数据的信息。示例代码如下:
系统展示
接口展示
本音频检索系统基于开源代码搭建而成,其主要功能为音频数据插入与删除。在浏览器中输入 127.0.0.1/docs 可查看所有 API。API 查询页面如下图所示:
系统演示
基于 Milvus 的音频检索系统在线体验版支持通过上传自己的音频数据体验先进的音频检索技术,详见在线体验-https://zilliz.com/solutions。
总结
随着多媒体技术及网络技术的迅速发展,网络信息资源日益丰富。人们已经不再满足于传统的文本检索。如今的信息检索技术需要能够快速实现视频、图像、音频等各种非结构化数据的检索。
利用深度学习模型可将计算机难以处理的非结构化数据转换为特征向量。通过特征向量计算可实现对非结构化数据的分析。开源向量相似度搜索引擎 Milvus 能够高效处理 通过 AI 技术提取到的特征向量,并提供多种常用的向量相似度计算方式。
Milvus 不仅可以用于音频检索还可应用于更多场景,例如图像检索、智能问答机器人和赋能传统向量计算。详见 Milvus 场景介绍-https://milvus.io/cn/scenarios。
参考文献
[1] https://baike.baidu.com/item/声音检索型业务/5935893
[2] https://github.com/qiuqiangkong/audioset_tagging_cnn
[3] Hershey, S., Chaudhuri, S., Ellis, D.P., Gemmeke, J.F., Jansen, A., Moore, R.C., Plakal, M., Platt, D., Saurous, R.A., Seybold, B. and Slaney, M., 2017, March. CNN architectures for large-scale audio classification. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017
[4] https://milvus.io/
欢迎加入 Milvus 社区
github.com/milvus-io/milvus | 源码
milvus.io | 官网
milvusio.slack.com | Slack 社区
zhihu.com/org/zilliz-11| 知乎
zilliz.blog.csdn.net | CSDN 博客
space.bilibili.com/478166626 | Bilibili