首页
学习
活动
专区
工具
TVP
发布

10大音频处理任务,助你开启深度学习之路

来源:Analytics Vidhya

编译:Bot

编者按:过去的2017年是硕果累累的一年,它见证了机器学习技术的突飞猛进,也见证了智能语音交互在中国市场上的真正爆发。随着众多语音识别技术纷纷落地,大量开源音频资料数据集逐渐涌现,无论是对在校的学生,还是已经就业的数据科学家,学会将深度学习技术应用于音频处理将是一个明智的选择。

1.音频分类

音频分类是语音处理领域的一个基本问题,从本质上说,它就是从音频中提取特征,然后判断具体属于哪一类。现在我们已有许多优秀的音频分类应用,如genre classification、instrument recognition和artist identification等。

解决音频分类问题的常用方法是预处理音频输入以提取有用的特征,然后在其上应用分类算法。例如在下面这个案例研究中,它给定时长为5秒的声音转录,要求制作一个分类器/神经网络确定声音属于那一类——狗吠声还是钻孔声。文中给出的解决方案是提取一个名为MFCC的音频特征,之后再用神经网络找到合适的类别。

案例:Getting Started with Audio Data Analysis using Deep Learning(https://www.analyticsvidhya.com/blog/2017/08/audio-voice-processing-deep-learning/)

2.音频指纹识别

音频指纹识别的目的是从音频中提取一段特定的数字摘要,用于快速识别该段音频是否来自音频样本,或从音频库中搜索出带有相同数字摘要的音频。Shazam是当前比较出色的音频指纹识别应用之一,输入2—5秒音乐后,它能迅速识别出音乐具体来自哪首歌曲。就当前的行业标准而言,现在开发的工具基本都能完成相关任务,但在背景嘈杂、高噪声的环境下,这类技术还存在缺陷。

为了解决这个问题,一个可行的方法是以不同形式表示音频,以便于解码,然后找出样本和其他音频之间的差异。在下面这个案例中,作者将原始音频转成了声音频谱图,之后使用峰值搜索和哈希算法(指纹算法)定义该音频的指纹。

案例:用Python和Numpy进行音频指纹识别(http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/)

3.自动音乐标注

音乐标注是音频分类的升级版。它包含多个类别,一个音频可以同时属于不同类,也就是有多个标签。自动音乐标注的潜在应用是为音频创建元数据,以便日后的搜索,在这上面,深度学习在一定程度上有用武之地。

和大多数任务一样,自动音乐标注的第一步也是从音频样本中提取特征,然后再根据其中的细微差异(例:如果音频中乐器的声音比歌声多,那它可以被分类为“器乐”)进行分类。这可以用机器学习和深度学习实现。下面就是一个用深度学习进行自动音乐标注的案例,它尤其介绍了卷积递归神经网络和Mel Frequeny Extraction的使用。

案例:music-auto_tagging-keras(https://github.com/keunwoochoi/music-auto_tagging-keras)

4.音频分割

从字面上我们就能理解它的含义,即根据定义的一组特征将音频样本分割成段。音频分割是一个重要的预处理步骤,通过它,我们可以将一个嘈杂而冗长的音频信号分割成短小、均匀的段落,再进行序列建模。目前它的一个应用是心音分割,即识别心脏的特定信号,帮助诊断心血管疾病。

要解决音频分割问题,一种常用的方法是将其转换成监督学习问题,其中每个timestamp根据所需的分段进行分类,之后再借用音频分类方法完成分割。在下面的案例中,它的任务是将心音分成两类(lub和dub),从而方便识别每个类别中的异常情况。它用音频特征提取找出异常,再用深度学习分类。

案例:基于深度学习的心音分割(https://www.analyticsvidhya.com/blog/2017/11/heart-sound-segmentation-deep-learning/)

5.音源分离

音源分离就是从一堆混合的音频信号中分离出来自不同音源的信号,它最常见的应用之一就是识别同时翻译音频中的歌词(如卡拉OK)。这也是吴恩达机器学习课程中的一个经典案例,他在课上把演讲者的声音和背景音乐分离了开来。

音源分离的典型做法是加载音频文件、计算时频变换得到频谱图,然后用一些源分离算法(如非负矩阵分解)获得时频掩蔽,最后将时频掩蔽和频谱图相乘,将结果转换回时域。

案例:untwist(https://github.com/IoSR-Surrey/untwist)

6.节拍跟踪

顾名思义,节拍跟踪的目标就是跟踪音频文件中每个节拍的位置,事实上,它为这项耗时耗力又必须完成的任务提供了一种自动化解决方案,因此深受视频编辑、音乐编辑等群体的欢迎。

要解决这个问题,首先我们要解析音频文件,并用检测算法跟踪节拍。尽管用于发音检测的技术在很大程度上仍依赖于音频特征工程和机器学习,但深度学习可以在优化结果上做一点贡献。

案例:BTrack - A Real-Time Beat Tracker(https://github.com/adamstark/BTrack)

7.音乐推荐

音乐推荐这已经不是新鲜的技术了,我们的音乐app里收录了数以百万计的歌曲,能供我们随时收听。对于音乐,每个人的品位和偏好都各不相同,但由于数量庞大,我们往往难以挑出契合我们风格的歌曲。过去人们关注歌手,但现在,更多人有了音乐推荐。音乐推荐是一种根据用户收听历史定制个性化歌单的技术,它本质上还是一种信息处理技术。

我们可以训练回归/深度学习模型,来预测从协作过滤模型中获得的歌曲的潜在表示,从而建立一个简单的音乐推荐机器人。

8.音乐信息检索

这是音频处理中最困难的任务之一,它实质上是要建立一个基于音频数据的搜索引擎。尽管我们可以通过解决一个个像音频指纹识别那样的子任务来逐步完成任务,但它还包括其他很多内容,例如当针对不同类型进行音乐信息检索时,我们还要考虑音色等其他小问题。由于它比较难,现在还没人开发出符合预期的成熟工具。

为了解决音乐信息检索问题,你可以从一个个简单任务开始,如音调分析(旋律、和声)、节奏分析等,然后再这些简单任务基础上提取可用于检索类似音频文件的信息。

案例:Music Information Retrieval using Scikit-learn (MIR algorithms in Python)(https://www.youtube.com/watch?v=oGGVvTgHMHw&feature=youtu.be)

9.音乐转录(Music Transcription)

音乐转录是另一个非常有挑战性的音频处理任务。它包括注释音频和创建一个“表”,以便于之后用它生成音乐。由于许多音乐本身是十分复杂的,音乐转录可能会需要大量手工操作,项目参与者本身的生理、经验条件有多好,他们制作的音乐转录就相应的有多好。

音乐转录的一般方法和语音识别类似,它会把音符专为乐器的声音。

案例:Music transcription with Python(https://www.youtube.com/watch?v=9boJ-Ai6QFM&feature=youtu.be)

10.音符起始点检测

音符起始点检测是分析音频/建立音乐序列的第一步,对于以上提到的大多数任务而言,执行音符起始点检测是必要的(简单任务不需要)。它事实上是专业研究人员音频处理过程中必须面对的首要任务。

它的一个流程是:

计算对数梅尔时频图幅度;

归一化到[0,1]之间,并进行峰值检测;

从每个峰回溯到之前的最小值。回溯对于找到分割点是有用的,使得分割在分割开始之后不久发生。

案例:https://musicinformationretrieval.com/onset_detection.html

原文地址:www.analyticsvidhya.com/blog/2018/01/10-audio-processing-projects-applications/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119G0XM4T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券