CN103324698A - 一种基于数据级并行gpu加速的大规模哼唱旋律匹配系统 - Google Patents
一种基于数据级并行gpu加速的大规模哼唱旋律匹配系统 Download PDFInfo
- Publication number
- CN103324698A CN103324698A CN2013102286634A CN201310228663A CN103324698A CN 103324698 A CN103324698 A CN 103324698A CN 2013102286634 A CN2013102286634 A CN 2013102286634A CN 201310228663 A CN201310228663 A CN 201310228663A CN 103324698 A CN103324698 A CN 103324698A
- Authority
- CN
- China
- Prior art keywords
- humming
- module
- melody
- gpu
- data level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
Abstract
本发明针对现有实用的大规模哼唱检索系统相对缺乏并且大规模哼唱检索系统性能低下等方面存在的问题,发明了一种基于数据级并行GPU加速的大规模哼唱旋律匹配系统,系统主要包括“哼唱旋律提取”,“哼唱检索旋律库建立”和“基于数据级并行的哼唱旋律匹配”三个模块。由于本发明面向大规模哼唱检索这个新兴应用,充分利用数据级并行和GPU加速等新技术,为大规模哼唱检索系统性能提升提供了有力支撑,故本发明具有广阔的应用前景。
Description
技术领域
本发明公开了一种基于数据级并行GPU加速的大规模哼唱旋律匹配系统,涉及哼唱检索和并行加速技术,通过该方法和装置,用户能够准确和高效地检索出所期望的音乐。属于计算机技术领域。
背景技术
随着信息量的增长和用户对搜索要求的提高,基于媒体内容的搜索越来越受到关注。音乐检索的需求多种多样,并且随着技术的进步和时代的发展,这种多样性越来越突出。在检索方式上,音乐检索可以采用哼唱、节拍拍打、演奏输入、乐谱录入、音频形式的样例等多种方式提交查询请求进行检索。其中,演奏输入检索和乐谱录入检索可以采用文本检索技术很容易实现,但对用户的音乐技能要求较高;基于文本的音乐信息检索都是针对歌手、歌名、专辑或者歌词进行检索的,但这些方法都不涉及音乐的乐理特性。
基于内容的音频检索(Content-Based Audio Information Retrieval,CBAIR)是音乐检索领域未来的发展趋势,有别于传统的基于文本描述的分类和检索方式,基于内容的音乐检索利用音乐本身的特征对其进行自动分类,取代手工的文本描述,并采用哼唱的方法进行查询,更加符合音乐这种存在高度主观因素载体的查询工作。哼唱检索(Query ByHumming,QBH)就是基于内容的音乐检索中的一种主要使用的检索方式。
基于内容的音乐检索目前主要存在的问题是用户体验方面的不足,由于检索时所使用的检索算法复杂度普遍较高,导致检索所需要的时间比较长,用户等待的时间也相应较长。要加快检索算法的运行速度,常用的技术方案是通过对算法本身进行优化来降低算法的复杂度,但是这种方法是有局限的,任何一个算法的复杂度都是有下界的,不可能无限制的降低。另外可用的技术方案就是采用并行的方式来对算法进行加速。
并行计算也有多种方式,传统的并行计算是采用多CPU或者集群的方式来进行的,往往会涉及到多个处理器或者多个计算结点。最近几年产生了一种新的并行方式,那就是采用GPU(Graphics Processing Unit,图形处理器)来进行并行计算,GPU并行计算通过将应用程序中计算量繁重的部分交给GPU处理,程序的剩余部分依然在CPU上运行,从而可以实现更高的应用程序性能。CPU与GPU是一个强大的组合,在CPU中包含的是专为串行处理而优化的核心,而GPU则由数以千计更小、更节能的核心组成,这些核心针对并行处理而进行了优化,程序的串行部分在CPU上运行,而并行部分则在GPU上运行。
为了方便开发人员更好地使用GPU来进行并行计算,NVIDIA(英伟达)公司推出了CUDA,CUDA是统一计算架构(Compute Unified Device Architecture)的简称,它是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU(General-Purpose computing onGraphics Processing Units,通用图形处理器)的正式名称,通过这个技术,开发人员就可以方便地使用NVIDIA的GPU进行并行计算。
现有哼唱检索系统(如表1所示)包括VocalSearch,M-MUSICS,Midomi,VocalSearch,盛大创新院的哼唱系统,腾讯搜搜新推出了名为“SOSO哼唱”等。VocalSearch是密歇根大学和卡内基-梅隆大学的研究人员开发的一个QBH系统,由美国国家科学基金会资助。VocalSearch包含一个由Beatles歌曲组成的乐曲库,其包含额歌曲主旋律(样本)可作为检索的起始点。VocalSearch系统与当前其他QBH系统相比,具有较高的准确度。然而,该系统不开源,以在线搜索的形式通过Internet访问(vocalsearch.org)。M-MUSICS系统由韩国大学和亚洲大学的研究人员联合开发,目标是通过移动手机进行哼唱检索,这是音乐信息检索的未来发展趋势。该系统的设计理念是在无线环境下,基于C/S模式,为用户提供一个友好便捷的音乐检索方式。由于手机本身不处理QBH请求,请求信息被发送到后台服务器处理。具体地,首先用户输入一个查询,然后转录成乐谱符号表示的字符串。第一步是常用匹配索引扫描。如果失败,然后搜索数据库。排名结果列表通过后台服务器返回到用户的手机,如果结果不满意,用户重新制定查询输入再试一次,这个过程可以反复进行,直到找到正确的音乐片段。该系统同样不开源,也没有对公众开放。Midomi(www.midomi.com)系统是一个商用在线音乐搜索引擎,由总部位于硅谷的Melodis公司研发。Midomi的使命是建立最全面的可搜索乐曲数据库。用户可以通过使用任何语言或以任何流派在Midomi的在线录音棚内唱歌来为数据库贡献歌曲。下一次任何人搜索这首歌时,用户的演唱都可能会成为首条搜索结果。Midomi有一个大型数字乐曲商店,提供了两百多万首合法乐曲,并且提供的乐曲正在不断增多。用户可以试听原创录音,直接从Midomi购买完整录音版本,并在自己的Windows计算机或兼容音乐播放器上播放。盛大创新院近年来一直进行哼唱搜索的相关研究,其研发的哼唱搜索系统已在多届MIREX评测中取得不俗的成绩。为了促进国内哼唱检索技术的研究,盛大创新院于2011年将其哼唱搜索V0.2系统开源,哼唱搜索V0.2包括两大功能:基于音符序列的模糊检索和基于基频序列的模糊检索。2012年3月,腾讯搜搜新推出了名为“SOSO哼唱”的哼唱搜索产品。“SOSO哼唱”目前拥有10万量级的QQ音乐库支持。
表1现有哼唱检索系统对比分析
经检索中国专利库可见,在第200410049328.9号中国发明专利中,提供了一种哼唱编曲系统及其方法,在第200610065752.1号中国发明专利中,提供了一种基于哼唱的音乐数据库高效查询方法,在第200610122430.6号中国发明专利中,提供了一种基于哼唱的乐曲自动选择装置和方法,在第200710151896.3提供了一种用于哼唱检索的方法和装置,在第200710301762.5号中国发明专利中,提供了一种通过哼唱音乐旋律搜索基于波形的音乐文件的方法和系统,在第200910301120.4号中国发明专利中,提供了一种基于隐马尔可夫模型的哼唱式旋律识别方法,在第201010223497.5号中国发明专利中,提供了一种哼唱合成方法和系统,在第201010144497.6号中国发明专利中,提供了一种基于哼唱的音乐检索方法。然而现有的专利有的(如第200410049328.9号,第200610065752.1号,第200610122430.6号,第200910301120.4号,第201010144497.6号等)只涉及哼唱检索系统的某项关键技术,有的(如第200710301762.5号)虽然考虑了哼唱检索系统,在系统中均没有涉及Marsyas技术以及GPU并行加速方法。总体存在现有实用的大规模哼唱检索系统相对缺乏并且大规模哼唱检索系统,尤其是旋律匹配性能低下的问题。
发明内容
综上所述,本发明针对上述问题,发明了一种基于数据级并行GPU加速的大规模哼唱旋律匹配系统,对提升旋律匹配性能,优化音乐检索性能,建立实用的大规模哼唱搜索和推荐系统都具有重要的意义。
为便于后续叙述的方便,下面首先给出经典的DTW算法的定义和相关概念:
DTW算法的最终目标是要对两个时间序列X=(x1,x2,...,xN)(N∈N)和Y=(y1,y2,...,yM)(M∈N)进行比较,这些序列可以是离散的信号,也可以是更一般的由相等的时间间隔采样出的特征序列,对于一个特定的特征空间则有为了比较两个不同的特征我们需要定义一个度量距离的方法,定义函数
(0.1)
通常情况下,如果x和y彼此之间比较相似,那么c(x,y)就比较小,反之,c(x,y)就比较大。如果我们对序列X和Y中的每一个元素两两之间计算c(x,y)的值,就可以得到距离矩阵矩阵C的元素定义为C(n,m)=c(xn,ym)。DTW算法的目标就是要从距离矩阵中找出一条路径,使得序列X和Y沿此路径计算得到的距离最小。
弯曲路径的定义:
(N,M)-弯曲路径是一个序列p=(p1,p2,...,pL),其中
pl=(nl,ml)∈[l:N]×[1:M](l∈[1:L]),并且满足下面三个条件:
(1)边界条件:p1=(1,1),pL=(N,M)
(2)单调性条件:n1≤n2≤…≤nL,m1≤m2≤…≤mL
(3)步长条件:pl+1-pl∈{(1,0),(0,1),(1,1)}(l∈[1:L-1])□
若有序列X和Y之间的一个弯曲路径p,那么序列X和Y沿此路径的总距离cp(X,Y)就定义为
(0.2)
进一步来说,在序列X和Y之间的所有弯曲路径中,具有最小距离值的路径称作最优弯曲路径,记为p*,那么序列X和Y之间的DTW距离DTW(X,Y)就定义为沿P*的距离值
DTW(X,Y)=cp·(X,Y)=min{cp(X,Y)}
其中p是序列X和Y之间的一个(N,M)-弯曲路径
(0.3)
为了计算最优弯曲路径p*,一个可能的方法是对序列X和Y之间的所有弯曲路径依次进行计算,但是这种计算方法的计算复杂度是指数级的,不具有实用性。下面介绍一种基于动态规划的方法,该方法具有复杂度O(NM),我们首先定义前缀序列X(1:n)=(x1,x2,...,xn)(n∈[1:N])和Y(1:m)=(y1,y2,...,ym)(n∈[1:M]),并且有
D(n,m)=DTW(X(1:n),Y(1:m))
(0.4)
所有D(n,m)的值可以定义成一个N×M的矩阵D,也可以称作累积距离矩阵,显然,D(N,M)=DTW(X,Y)。在下面的描述中,一个元组(n,m)代表了距离矩阵C或者是累积距离矩阵D的一个矩阵输入,下面的定理给出了D的高效的计算方法。
定理1:
累积距离矩阵D满足下列等式:
(0.5)
特别的,DTW(x,Y)=D(N,M),并且可以在O(NM)次操作中完成计算。□
这个定理可以帮助我们找到一种递归方法来计算矩阵D,初始化的操作可以通过为矩阵D添加额外的行列来完成,在形式上设定D(n,0)=∞(n∈[1:N]),D(0,m)=∞(m∈[1:M]),D(0,0)=0,那么式(0.5)的递归形式就可以适用于n∈[1:N]以及m∈[1:M]。注意到矩阵D可以采用列优先的形式进行计算,即计算第m列元素的值只需要第m-1列元素的值,也就是说如果我们只需要DTw(X,Y)=D(N,M)的值,那么所需要的存储空间是o(N),类似的,如果采用行优先的方式进行计算,那么所需要的存储空间是O(M),但是无论怎么计算,时间复杂度总是O(NM)。如果需要计算出最优弯曲路径p*,那么整个N×M的矩阵D都是需要保存的。
1、目的
本发明的目的是针对现有的基于内容的音乐检索的研究工作主要集中在有关哼唱检索算法的研究上,包括DTW算法本身的算法优化以及DTW算法的任务级并行加速,然而有关GPU并行加速的研究工作较少,针对原始DTW算法内部的GPU并行加速以及音乐相似算法的GPU并行加速的研究则更少,尤其缺乏一种基于Marsyas框架和GPU加速集成的实用的基于数据级并行GPU加速的大规模哼唱旋律匹配系统的问题,发明了一种基于数据级并行GPU加速的大规模哼唱旋律匹配系统。该系统通过对DTW算法本身进行GPU并行加速,解决了超大规模的DTW计算耗时很长的问题;通过对基于数据级并行哼唱旋律匹配GPU加速方式,使GPU并行加速的DTW算法具有更广泛的适用性。由于本发明面向大规模哼唱检索这个新兴应用,充分利用数据级并行和GPU加速等新技术,为大规模哼唱检索系统性能提升提供了有力支撑,故本发明具有广阔的应用前景。
2、技术方案
本发明的技术方案如下:
如图1所示,一种基于数据级并行GPU加速的大规模哼唱旋律匹配系统,在模块构成上,主要包括“哼唱旋律提取”,“哼唱检索旋律库建立”和“基于数据级并行的哼唱旋律匹配”三个模块:
(1)“哼唱旋律提取”模块:在CPU上运行,主要完成从哼唱信号中提取
哼唱旋律,包括预处理和特征提取两个核心子模块。
哼唱信号的旋律特征提取是检索匹配的前提与基础,其特征提取的准确性将直接影响到检索的效果。语音信号一般带有模拟信号转化为数字信号过程中产生的量化噪声,同时存在电源工频干扰、混叠干扰和背景噪声,在提取特征之前需要对原信号进行滤波处理得到干净的声音。
在音乐的各个特征中,音高是音乐信号最重要的特征,也是不断吸引众多学者研究的热点。音高提取的理论依据是,声音信号在短时间内具有周期性,称为短时周期信号。音乐信号从整体上看是非平稳态过程,但在一小段时间内,可以近似看作准稳态过程,其特征参数保持不变,故本实例中音高提取是以20ms左右的语音帧为单位进行音高提取。音高提取本质上是找到短时周期信号的周期,也可以理解为信号的最短重复位移时间。由于是基于音帧提取的音高,相似音帧间的聚合信息隐含着音符信息。音符的信息在时域和频域都有表现,提取出音符特征就能将旋律表达出来,故旋律特征提取分为预处理和特征提取两部分。
如图2所示,“哼唱旋律提取”模块的“预处理”子模块的基本运行流程包括:
7)“预处理”子模块调用“WAV文件读入”模块完成WAV文件读入;
8)“预处理”子模块调用“转换单声道信号”模块将该WAV文件转换成单声道信号;
9)“预处理”子模块调用“带通滤波”模块完成单声道信号的带通滤波;
10)“预处理”子模块调用“预加重”模块完成滤波的预加重;
11)“预处理”子模块调用“加汉宁窗”模块对加重信号加汉宁窗;
12)“预处理”子模块调用“能谱滤波”模块对加汉宁窗信号完成能谱滤波。
对应旋律特征提取,由于旋律特征又可以从音帧和音符两个不同粒度层面进行表征。音高特征是通过计算基频得到的,包括时域和频域两种方法,时域常用的方法有短时过零率法、自相关函数法和YIN算法,而频域方法一般都基于求出声音信号的频谱包络,分析其谐波,估计出基频。本发明主要发明基于音高特征提取的预处理流程。
“哼唱旋律提取”模块的“特征提取”子模块的基本运行流程包括:
4)“特征提取”子模块读取采样数据矩阵;
5)“特征提取”子模块实现帧间重叠;
6)“特征提取”子模块输出各音帧音高。
(2)“哼唱检索旋律库建立”模块:在CPU上运行,主要完成哼唱检索旋律库建立。
首先,由“哼唱检索旋律库建立”模块通过分析哼唱文件的格式从该文件中提取出音轨信息,音轨中包含音符、音符开始事件、音符结束事件等信息。然后,由“哼唱检索旋律库建立”模块将主旋律放在第0音轨,并删除了其他音轨的信息;最后,由“哼唱检索旋律库建立”模块建立哼唱检索旋律库。
(3)“基于数据级并行的哼唱旋律匹配”模块:在GPU上运行,主要完成哼唱旋律匹配算法的任务级并行,运行一种基于数据级并行的DTW算法。
DTW算法是一种具备扩展和压缩能力的柔性模式匹配算法,它能够对存在全局或局部扩展、压缩或变形的模式进行匹配,从而解决时间矢量序列间的相似度量问题。该算法采用动态规划的思想对两个矢量序列进行非线性规整,对两序列相似之处进行匹配,以得到两个矢量序列之间的最短距离,两个矢量序列间的距离越小,则它们的相似度越大。由于DTW算法能够有效地解决哼唱输入特征序列与数据库中歌曲特征序列长度不同而带来的不匹配问题,因此被广泛地应用于哼唱检索系统。但是,由于DTW算法采用动态规划技术来进行旋律的近似匹配,通过局部最优化原理计算出最佳路径的最小累计距离,因此,该算法的计算规模和时间开销较大。我们采用DTW算法作为哼唱检索中进行旋律匹配的匹配算法,同时采用GPU来对DTW算法进行加速,这样一方面可以保证旋律匹配的准确度,另一方面也通过GPU获得了较快的计算速度。
“基于数据级并行的哼唱旋律匹配”模块运行的“基于数据级并行的DTW算法”步骤描述如下:
1读入两个待匹配的序列;
2对两个待匹配的序列进行归一化;
3在GPU上分配资源并进行矩阵的初始化;
4.将数据拷贝到GPU显存
5定义GPU线程的数量;
6调用核函数完成矩阵对角线上元素的计算;
7将计算结果拷贝至CPU。
8计算得到并返回待匹配序列的DTW距离。
“基于数据级并行的DTW算法”的核函数中执行的是一次一条对角线上所有元素的计算,其算法步骤描述如下:
1确定当前线程对应的是矩阵中各对角线上的1个元素;
2根据DTW算法的定义(定理1)计算并返回该元素的值。
附图说明
图1基于数据级并行GPU加速的大规模哼唱旋律匹配系统模块构成
图2“哼唱旋律提取”模块的“预处理”子模块的基本运行流程
图3基于Marsyas框架实例的“哼唱旋律提取”模块的“预处理”子模块实施方法(图中英文为Marsyas中的模块原始英文名称)
图4Marsyas框架下“哼唱旋律提取”模块的“特征提取”子模块实施方法(图中英文为Marsyas中的模块原始英文名称)
图5数据级并行的DTW算法中累积距离矩阵D的计算方法实施实例
具体实施方式
Marsyas是专门为音频信号处理设计的一套开发框架,框架的底层封装了很多在信号处理方面的数学函数,比如数字滤波器、傅里叶变换、均值滤波器、中值滤波器、峰值估计等功能模块,开发者可以根据需求将不同的信号处理单元(Process Unit)组合成一套信号处理流,得到需要的结果,提高开发速度。
为使本发明的目的、技术方案和优点表达得清楚明白,以Marsyas和GTX285型号的GPU为例,下面结合附图对本发明再作进一步详细的说明,但不构成对本发明的限制。
如附图1所示,一种基于数据级并行GPU加速的大规模哼唱旋律匹配系统,在模块构成的实施方法为上,主要包括“哼唱旋律提取”,“哼唱检索旋律库建立”和“基于数据级并行的哼唱旋律匹配”三个模块:
(1)“哼唱旋律提取”模块:该模块实施时让其在CPU上运行,主要完成
从哼唱信号中提取哼唱旋律,具体实施预处理和特征提取两个核心子模块。
如图3所示,“哼唱旋律提取”模块的“预处理”子模块基于Marsyas实例的具体实施流程包括:
1)“预处理”子模块调用Marsyas中的“SoundFileSource”模块完成WAV文件读入。“SoundFileSource”表示为音频文件读入模块,具有处理多种格式(WAV、MP3、OGG等)音频的能力;
2)“预处理”子模块调用Marsyas中的“Stere2Mono”模块将该WAV文件转换成单声道信号;“Stere2Mono”为双声道转为单声道的模块,两个声道的采样一般只有细微的差别,本实例中将左声道采样信号作为输出;
3)“预处理”子模块调用Marsyas中的“Filter”模块并设置该模块的参数为完成BandPass实现单声道信号的带通滤波;Filter为滤波模块,可以通过设置不同参数可以实现带通滤波和预加重率;
4)“预处理”子模块调用Marsyas中的“Filter”模块并该模块的设置参数为完成Preemphasis功能实现滤波的预加重;
5)“预处理”子模块调用Marsyas中的“Windowing”模块并该模块的设置参数为汉宁窗对加重信号加汉宁窗;Windowing为语音帧加窗,常见类型有矩形窗、汉宁窗、汉明窗和三角窗等;
6)“预处理”子模块调用Marsyas中的“SpectrumPowerFilter”模块对加汉宁窗信号完成能谱滤波。SpectrumPowerFilter是为了将能量较低的部分置零,不参与音高提取。
由于YIN算法在Marsyas框架下有现成的封装,在本实例中系统通过调用Marsyas中特征提取算法的YIN算法即可完成音高特征提取。
如附图4所示,“哼唱旋律提取”模块的“特征提取”子模块的实施流程为:
1)“特征提取”子模块调用Marsyas中的“RealVecSource”模块来读取采样数据矩阵;
2)“特征提取”子模块调用Marsyas中的“ShiftInput”实现帧间重叠,本实例中具体实施方法为通过ShiftInput对数据移位半帧后,下一帧起点在上一帧的二分之一处,突出帧间连续;
3)“特征提取”子模块通过调用Marsyas中的YIN模块输出各音帧音高。
(2)“哼唱检索旋律库建立”模块:在CPU上运行,主要完成哼唱检索旋律库建立。
本实例中基于MIDI文件建立旋律库,之所以会选择MIDI文件建立旋律库,而不采用WAV、MP3、OGG等波形文件,主要是因为多音高旋律提取的效果还不尽人意,最高的正确率也只有80%左右,国内外学者也还在这方面进行着大量的研究工作。具体的实施方法为:
首先,由“哼唱检索旋律库建立”模块通过分析MIDI文件的格式从MIDI文件中提取出音轨信息,音轨中包含音符、音符开始事件、音符结束事件等信息。然后,本实例中由“哼唱检索旋律库建立”模块通过手动方式将主旋律放在第0音轨,并删除了其他音轨的信息;最后,由“哼唱检索旋律库建立”模块基于MIDI文件的哼唱检索旋律库。
(3)“基于数据级并行的哼唱旋律匹配”模块:在GPU上运行,主要实施了哼唱旋律匹配算法的任务级并行,并实例了一种基于数据级并行的DTW算法。
首先结合本实例,给出一些基本术语定义和说明:
假设X和Y是两个待匹配的序列,长度均为N。
在经典DTW算法中,其核心是要计算两个序列X和Y的累积距离矩阵D(本实例中假设序列X与Y等长N)。
根据经典DTW算法的定义,在计算累积距离矩阵D时,矩阵中的每一个元素的值是由下式得来:D(n,m)=min{D(n-1,m-1),D(n-1,m),D(n,m-1)}+c(xn,ym)
其中c(xn,ym)代表序列X中的第n个元素和序列Y中的第m个元素之间的距离,这个距离用函数c表示,是已知的。
本实例中“基于数据级并行的哼唱旋律匹配”模块运行的“基于数据级并行的DTW算法”实施方法的步骤描述如下:
1读入X和Y两个待匹配的序列;
2对X和Y两个待匹配的序列进行z-归一化;
3在GPU上分配资源并进行矩阵的初始化;
4.将数据拷贝到GPU显存;
5定义GPU线程的数量为N;
6fori=2toN×2-1
7调用核函数完成一条对角线上元素的计算;
8end for
9将计算结果拷贝至CPU;
10计算得到并返回X和Y待匹配序列的DTW距离.
如附图5所示,“基于数据级并行的DTW算法”的核函数中执行的是一次一条对角线上所有元素的计算,其算法步骤描述如下:
1确定当前线程对应的是矩阵中第i条对角线的第idx个元素;
2根据DTW算法的定义(定理1)计算第idx个元素的值。
应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (4)
1.一种基于数据级并行GPU加速的大规模哼唱旋律匹配系统,其特征在于包括哼唱旋律提取模块,哼唱检索旋律库建立模块和基于数据级并行的哼唱旋律匹配模块。
2.如权利要求1的基于数据级并行GPU加速的大规模哼唱旋律匹配系统,其特征在于:
哼唱旋律提取模块完成从哼唱信号中提取哼唱旋律,包括预处理和特征提取两个核心子模块,
哼唱旋律提取模块的预处理子模块的基本运行流程包括:
1)预处理子模块调用WAV文件读入模块,完成WAV文件读入;
2)预处理子模块调用转换单声道信号模块,将该WAV文件转换成单声道信号;
3)预处理子模块调用带通滤波模块,完成单声道信号的带通滤波;
4)预处理子模块调用预加重模块完成滤波的预加重;
5)“预处理”子模块调用“加汉宁窗”模块对加重信号加汉宁窗;
6)“预处理”子模块调用“能谱滤波”模块对加汉宁窗信号完成能谱滤波。
“哼唱旋律提取”模块的“特征提取”子模块的基本运行流程包括:
1)“特征提取”子模块读取采样数据矩阵;
2)“特征提取”子模块实现帧间重叠;
3)“特征提取”子模块输出各音帧音高。
3.基于权利要求1的基于数据级并行GPU加速的大规模哼唱旋律匹配系统,其特征在于“哼唱检索旋律库建立”模块完成哼唱检索旋律库建立,包括:
首先,由“哼唱检索旋律库建立”模块通过分析哼唱文件的格式从该文件中提取出音轨信息,音轨中包含音符、音符开始事件、音符结束事件等信息,然后,由“哼唱检索旋律库建立”模块将主旋律放在第0音轨,并删除了其他音轨的信息;最后,由“哼唱检索旋律库建立”模块建立哼唱检索旋律库。
4.基于权利要求1的基于数据级并行GPU加速的大规模哼唱旋律匹配系统,其特征在于
“基于数据级并行的哼唱旋律匹配”模块完成哼唱旋律匹配算法的任务级并行,运行一种基于数据级并行的DTW算法;
“基于数据级并行的哼唱旋律匹配”模块运行的“基于数据级并行的DTW算法”步骤包括:
读入两个待匹配的序列;
对两个待匹配的序列进行归一化;
在GPU上分配资源并进行矩阵的初始化;
将数据拷贝到GPU显存;
定义GPU线程的数量;
调用核函数完成矩阵对角线上元素的计算;
将计算结果拷贝至CPU;
计算得到并返回待匹配序列的DTW距离。
“基于数据级并行的DTW算法”的核函数中执行的是一次一条对角线上所有元素的计算,其算法步骤包括:
确定当前线程对应的是矩阵中各对角线上的1个元素;
根据DTW算法的定义(定理1)计算并返回该元素的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102286634A CN103324698A (zh) | 2013-06-08 | 2013-06-08 | 一种基于数据级并行gpu加速的大规模哼唱旋律匹配系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102286634A CN103324698A (zh) | 2013-06-08 | 2013-06-08 | 一种基于数据级并行gpu加速的大规模哼唱旋律匹配系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103324698A true CN103324698A (zh) | 2013-09-25 |
Family
ID=49193441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102286634A Pending CN103324698A (zh) | 2013-06-08 | 2013-06-08 | 一种基于数据级并行gpu加速的大规模哼唱旋律匹配系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103324698A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559017A (zh) * | 2013-10-23 | 2014-02-05 | 东软集团股份有限公司 | 基于gpu异构计算平台的字符串匹配方法及系统 |
CN103559309A (zh) * | 2013-11-19 | 2014-02-05 | 北京航空航天大学 | 一种基于gpu加速的音乐检索与推荐系统 |
CN103559312A (zh) * | 2013-11-19 | 2014-02-05 | 北京航空航天大学 | 一种基于gpu的旋律匹配并行化方法 |
CN103577160A (zh) * | 2013-10-17 | 2014-02-12 | 江苏科技大学 | 一种面向大数据的特征提取并行处理方法 |
CN105874533A (zh) * | 2013-11-29 | 2016-08-17 | 杜比实验室特许公司 | 音频对象提取 |
CN105930522A (zh) * | 2016-05-25 | 2016-09-07 | 北京小米移动软件有限公司 | 智能推荐音乐的方法、系统和装置 |
CN106202224A (zh) * | 2016-06-29 | 2016-12-07 | 北京百度网讯科技有限公司 | 搜索处理方法及装置 |
CN106776664A (zh) * | 2015-11-25 | 2017-05-31 | 北京搜狗科技发展有限公司 | 一种基频序列处理方法及装置 |
CN110399522A (zh) * | 2019-07-03 | 2019-11-01 | 中国传媒大学 | 一种基于lstm与分层匹配的音乐哼唱检索方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090173214A1 (en) * | 2008-01-07 | 2009-07-09 | Samsung Electronics Co., Ltd. | Method and apparatus for storing/searching for music |
CN101916250A (zh) * | 2010-04-12 | 2010-12-15 | 电子科技大学 | 一种基于哼唱的音乐检索方法 |
-
2013
- 2013-06-08 CN CN2013102286634A patent/CN103324698A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090173214A1 (en) * | 2008-01-07 | 2009-07-09 | Samsung Electronics Co., Ltd. | Method and apparatus for storing/searching for music |
CN101916250A (zh) * | 2010-04-12 | 2010-12-15 | 电子科技大学 | 一种基于哼唱的音乐检索方法 |
Non-Patent Citations (2)
Title |
---|
LI RUAN ET AL: "A Query-by-Humming System based on Marsyas Framework and GPU Acceleration Algorithms", 《APPLIED MATHEMATICS & INFORMATION SCIENCES》 * |
鲁帆等: "一个基于哼唱的音乐检索系统", 《中国西部科技》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577160A (zh) * | 2013-10-17 | 2014-02-12 | 江苏科技大学 | 一种面向大数据的特征提取并行处理方法 |
CN103559017B (zh) * | 2013-10-23 | 2016-08-24 | 东软集团股份有限公司 | 基于gpu异构计算平台的字符串匹配方法及系统 |
CN103559017A (zh) * | 2013-10-23 | 2014-02-05 | 东软集团股份有限公司 | 基于gpu异构计算平台的字符串匹配方法及系统 |
CN103559309A (zh) * | 2013-11-19 | 2014-02-05 | 北京航空航天大学 | 一种基于gpu加速的音乐检索与推荐系统 |
CN103559309B (zh) * | 2013-11-19 | 2016-05-25 | 北京航空航天大学 | 一种基于gpu加速的音乐检索与推荐系统 |
CN103559312A (zh) * | 2013-11-19 | 2014-02-05 | 北京航空航天大学 | 一种基于gpu的旋律匹配并行化方法 |
CN103559312B (zh) * | 2013-11-19 | 2017-01-18 | 北京航空航天大学 | 一种基于gpu的旋律匹配并行化方法 |
CN105874533A (zh) * | 2013-11-29 | 2016-08-17 | 杜比实验室特许公司 | 音频对象提取 |
CN105874533B (zh) * | 2013-11-29 | 2019-11-26 | 杜比实验室特许公司 | 音频对象提取 |
CN106776664A (zh) * | 2015-11-25 | 2017-05-31 | 北京搜狗科技发展有限公司 | 一种基频序列处理方法及装置 |
CN105930522B (zh) * | 2016-05-25 | 2019-04-30 | 北京小米移动软件有限公司 | 智能推荐音乐的方法、系统和装置 |
CN105930522A (zh) * | 2016-05-25 | 2016-09-07 | 北京小米移动软件有限公司 | 智能推荐音乐的方法、系统和装置 |
CN106202224A (zh) * | 2016-06-29 | 2016-12-07 | 北京百度网讯科技有限公司 | 搜索处理方法及装置 |
CN110399522A (zh) * | 2019-07-03 | 2019-11-01 | 中国传媒大学 | 一种基于lstm与分层匹配的音乐哼唱检索方法及装置 |
CN110399522B (zh) * | 2019-07-03 | 2020-05-15 | 中国传媒大学 | 一种基于lstm与分层匹配的音乐哼唱检索方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103324698A (zh) | 一种基于数据级并行gpu加速的大规模哼唱旋律匹配系统 | |
CN103177722B (zh) | 一种基于音色相似度的歌曲检索方法 | |
Holzapfel et al. | Musical genre classification using nonnegative matrix factorization-based features | |
Typke | Music retrieval based on melodic similarity | |
CN103823867B (zh) | 一种基于音符建模的哼唱式音乐检索方法及系统 | |
US20100198760A1 (en) | Apparatus and methods for music signal analysis | |
KR20080054393A (ko) | 음악 분석 | |
CN102053998A (zh) | 一种利用声音方式检索歌曲的方法及系统装置 | |
CN103559309B (zh) | 一种基于gpu加速的音乐检索与推荐系统 | |
Tsai et al. | An FFT-based fast melody comparison method for query-by-singing/humming systems | |
CN110377782A (zh) | 音频检索方法、装置和存储介质 | |
De Leon et al. | Enhancing timbre model using MFCC and its time derivatives for music similarity estimation | |
Kaur et al. | Study and analysis of feature based automatic music genre classification using Gaussian mixture model | |
Yu et al. | HANME: hierarchical attention network for singing melody extraction | |
Kızrak et al. | Classification of classic Turkish music makams | |
CN105575400A (zh) | 一种获取歌曲信息的方法、终端、服务器和系统 | |
CN108257591A (zh) | 一种音乐的识别方法及系统 | |
Liumei et al. | K-means clustering analysis of Chinese traditional folk music based on midi music textualization | |
Waghmare et al. | Raga identification techniques for classifying indian classical music: A survey | |
Zhu et al. | Musical genre classification by instrumental features | |
Qi et al. | [Retracted] Music Singing Based on Computer Analog Piano Accompaniment and Digital Processing for 5G Industrial Internet of Things | |
Holzapfel et al. | A statistical approach to musical genre classification using non-negative matrix factorization | |
Li | [Retracted] Automatic Piano Harmony Arrangement System Based on Deep Learning | |
Sharma et al. | An efficient approach using LPFT for the karaoke formation of musical song | |
You et al. | An efficient frequent melody indexing method to improve the performance of query-by-humming systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130925 |