CN101398827A - 用于哼唱检索的方法和装置 - Google Patents
用于哼唱检索的方法和装置 Download PDFInfo
- Publication number
- CN101398827A CN101398827A CNA2007101518963A CN200710151896A CN101398827A CN 101398827 A CN101398827 A CN 101398827A CN A2007101518963 A CNA2007101518963 A CN A2007101518963A CN 200710151896 A CN200710151896 A CN 200710151896A CN 101398827 A CN101398827 A CN 101398827A
- Authority
- CN
- China
- Prior art keywords
- sequence
- template
- music
- retrieve
- melody
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000008878 coupling Effects 0.000 claims description 29
- 238000010168 coupling process Methods 0.000 claims description 29
- 238000005859 coupling reaction Methods 0.000 claims description 29
- 239000000284 extract Substances 0.000 claims description 26
- 238000000605 extraction Methods 0.000 claims description 13
- 230000004304 visual acuity Effects 0.000 claims description 10
- 238000013508 migration Methods 0.000 claims description 2
- 230000033764 rhythmic process Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 8
- 230000008676 import Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000005452 bending Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000037433 frameshift Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0008—Associated control or indicating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/45—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of analysis window
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/101—Music Composition or musical creation; Tools or processes therefor
- G10H2210/151—Music Composition or musical creation; Tools or processes therefor using templates, i.e. incomplete musical sections, as a basis for composing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Auxiliary Devices For Music (AREA)
Abstract
提供了一种用于哼唱检索的方法和装置,所述方法包括:输入从哼唱中提取的检索序列;输入按照音乐小节进行切分的模板序列组,所述模板序列组包含与音乐库中每首音乐对应的模板序列;将检索序列和模板序列进行匹配;如果模板序列和检索序列匹配,则将与该模板序列对应的音乐输出作为检索结果。根据本发明,可以提高哼唱检索的准确率和速度。
Description
技术领域
本发明涉及自动搜索音乐的领域,更具体地讲,涉及一种用于哼唱检索(QBSH)的方法和装置,通过该方法和装置,用户能够快速检索到他/她期望听到的音乐。
背景技术
传统上,当用户希望听音乐时,他/她不得不输入音乐的名称、歌手名字或者与音乐相关的其他信息,来在音乐库中检索特定音乐。然而,随着音乐库中存储的音乐的数量的增加,用户越来越难以记住如此众多的音乐的信息,因此,查找音乐变得困难。
为了解决这一问题,开发了一种基于内容的检索方法,即,哼唱检索(QBSH)。QBSH具体目的在于通过输入用户的哼唱、一段音乐的录音或者口哨来搜索到期望的音乐,因此能够帮助用户从音乐库中找到他/她已经忘掉歌词、歌唱者等信息的音乐。
在第US20070131094A1号美国专利中,提供了一种哼唱检索方法。该方法使用3D搜索算法来执行音乐信息检索,即,在三维空间(t,S,H)中执行搜索,其中,t表示时间,S表示语音学的语言特征,H表示UDS字符串。在该发明中,将具有附加“da”字的标准言语识别器和哼唱检索系统结合起来。
另一个美国专利第US6188010B1号也提供了一种哼唱检索方法,该方法能够实现当仅得知歌曲的旋律时也能搜索到该歌曲。在该方法中,用户通过使用钢琴输入一首歌曲的旋律,来检索歌曲。
美国专利第US6121530以及US5874686号也提出了有关音乐检索的方法。
传统QBSH通常包含下列几个主要部分:(a)从用户哼唱里提取基频并将提取的基频转换为半音;(2)得到半音轮廓后,进行音符切分,通常情况下,将音符的时长信息忽略,所谓音符切分指的是将轮廓线按照时长切分为1/8、1/4等音符序列;(c)将半音旋律轮廓转换为其它形式。由于用户很难哼唱出音乐谱中的精确的音符,往往会低一些或高一些,直接用音符值进行匹配会有很大的误差,因此,通常的做法是使用一些其他的特征表示方式,如减均值、音符差、UDS字符串等;(d)进行旋律搜索。在将旋律转换为其他形式后,一般采用字符串匹配算法、动态时间规整(DTW)、Viterbi搜索等。
然而,传统QBSH系统的问题在于:准确率较低,因为对于用户哼唱,很难得到准确的音符切分,会有很多的插入、删除、替换错误;并且音符切分后,旋律序列中的音符数目较少,使得对于旋律的表示非常不准确,导致采用后面的匹配算法后,准确率有很大的不足。这种情况随着音乐库中音乐数目的增加会变得更加严重。而且,检索速度也会随着音乐库中音乐数目的增加而显著变慢。
因此,需要一种能够根据用户的哼唱快速准确和快速地从大规模音乐库中找出所要的音乐的方法和装置。
发明内容
本发明的目的在于一种能够提高哼唱检索的准确率和速度的用于哼唱检索的方法和装置,以解决现有技术中的问题。
本发明的构思主要包括两个要点(1)在音乐库上执行自动音乐小节切分,以得到搜索的可能起始位置或结束位置;(2)使用不同的旋律分辨率。首先,执行低分辨率搜索,以从大音乐库中快速搜索出一小组可能的音乐,然后,执行高分辨率搜索,以提高匹配精度。
根据本发明的一方面,提供了一种用于哼唱检索的音乐模板创建方法,包括:提取音乐库中的每首音乐的主旋律轮廓;将提取的主旋律轮廓按照音乐小节进行切分;将按照音乐小节切分后的旋律轮廓转换为帧级音符序列,并将其存储为模板序列。
根据本发明的一方面,在进行音乐小节切分时,执行下述步骤:获得歌曲旋律的相关信息;根据获得的信息找到每一小节的起始点和结束点;在旋律轮廓上标记每个小节的起始点和结束点。
根据本发明的一方面,在将按照音乐小节切分的旋律轮廓转换为帧级音符轮廓时,可按照预定的帧移来对旋律轮廓的音符进行采样,以得到旋律音符序列。
根据本发明的一方面,所述音乐模板创建方法,还可包括将旋律音符序列转换为减均值形式的旋律音符序列。
根据本发明的另一方面,提供了一种用于哼唱检索的方法,包括:输入从哼唱中提取的帧级检索序列;输入按照音乐小节进行切分的帧级模板序列;将检索序列和模板序列进行匹配;根据匹配的结果,输出检索结果。
根据本发明的另一方面,将检索序列和模板序列进行匹配的步骤包括:以第一帧移从哼唱检索序列中提取低分辨率检索序列;以第一帧移从输入的模板序列中提取低分辨率模板序列;将低分辨率检索序列和提取的低分辨率模板序列进行匹配,根据匹配的结果,从音乐库中得到一组候选模板序列;以比第一帧移小的第二帧移从输入的检索序列中提取高分辨率帧级检索序列;以第二帧移从得到的候选模板序列中的每一个提取高分辨率模板序列;将高分辨率检索序列和高分辨率模板序列进行匹配。
其中,采用具有快拍子伸缩的线性伸缩算法进行检索序列和模板序列之间的匹配。
根据本发明的另一方面,在进行检索序列和模板序列之间的匹配时,执行如下步骤:(a)输入检索序列Q和模板序列T;(b)使伸缩比例r等于r0,并使伸缩比例r的偏移δ等于δ0;(c)计算Q1=Q×r,并利用线性伸缩算法计算序列Q1和模板序列T之间的距离值d=|Q1-T|;(e)计算Qhigh=Q×(r+δ),并利用线性伸缩算法计算序列Qhigh和模板序列T之间的距离值dhigh=|Qhigh-T|;(f)计算Qlow=Q×(r-δ),并利用线性伸缩算法计算序列Qlow和模板序列T之间的距离值dlow=|Qlow-T|;(g)比较d、dhigh和dlow的大小;(h)如果dhigh最小,则使r=r+δ,d=dhigh,如果dlow最小,则使r=r-δ,d=dlow,如果d最小,则保持r和d值不变;(i)判断δ是否大于预设值;(j)如果δ大于预定值,则使δ=δ/2,并返回到步骤(e);(k)如果δ小于预定值,则输出距离值d;(1)如果d小于预定值,则表示检索序列和模板序列匹配,输出与模板序列对应的音乐作为检索结果。
其中,r0和δ0分别为1.4和0.4,所述预定值为0.09。
根据本发明的另一方面,在进行检索序列和模板序列之间的匹配时,使用快速迭代对齐算法计算检索序列和模板序列之间的距离值,如果两者之间的距离值小于预定值,则输出与该模板序列对应的音乐作为检索结果,否则丢弃该模板,进行检索序列与下一个模板序列之间的匹配。
根据本发明的另一方面,在进行检索序列和模板序列之间的匹配时,执行如下步骤:(a)输入检索序列Q=(q1,q2,...,qN)和模板序列T=(t1,t2,...,tM),其中,N表示检索序列的帧数,M表示模板序列的帧数;(b)输入迭代次数D,同时使j=N/2,i=0;(c)将序列Q在j点分为两个序列Q1=(q1,q2,...,qj)和Q2=(qj+1,qj+2,...,qN);(d)分别将序列Q1的和值sum(Q1)以及Q序列的和值sum(Q),以及两者的比值R=sum(Q1)/sum(Q);(e)使k=M/2,T1=(t1,t2,...,tk),T2=(tk+1,tk+2,...,tM);(f)利用线性伸缩算法求Q1和T1的距离值的d1以及Q2和T2之间的距离值d2,并使S1=d1+d2;(g)将模板序列T从第h点分开,分为两个序列T3=(t1,t2,...,th),T2=(th+1,th+2,...,tM),并使序列T3和T的和值之间的比等于R;(h)利用线性伸缩算法求Q1和T3的距离值的d3以及Q2和T4之间的距离值d4,并使S2=d3+d4;(i)判断S1和S2之间的大小关系,如果S1小于S2,则使S=S1,i=k,否则使S=S2,i=h;(j)如果D等于零,则输出S值,如果D不等于零,则D=D-1,并使T1=(t1,t2,...,ti),T2=(ti+1,ti+2,...,tM),然后分别令Q=Q1,T=T1和Q=Q2,T=T2重新执行步骤(a),并对Q=Q1,T=T1以及Q=Q2,T=T2的返回值进行累加作为S的值并输出;(k)如果S小于预定的距离值,则输出与模板序列T对应的音乐作为检索结果,否则,执行检索序列与下一个模板序列之间的匹配。
根据本发明的又一方面,一种用于哼唱检索的音乐模板创建装置,包括:提取音乐库中的每首音乐的主旋律轮廓的提取单元;将提取的主旋律轮廓按照音乐小节进行切分的音乐小节切分单元;将按照音乐小节切分后的旋律轮廓转换为音符序列并将其存储为模板序列的转换单元。
根据本发明的又一方面,提供了一种用于哼唱检索的装置,包括:输入从哼唱中提取的帧级检索序列的检索序列输入单元;输入按照音乐小节进行切分的帧级模板序列的模板序列输入单元;将检索序列和模板序列进行匹配的匹配单元;根据匹配的结果输出检索结果的输出单元。
根据本发明的又一方面,提供了一种用于哼唱检索的装置,包括:模板创建单元,用于对音乐库中每首音乐提取主旋律,并创建按照音乐小节进行切分的模板组;旋律提取单元,用于从用户的哼唱中提取检索旋律轮廓;旋律匹配单元,用于将提取的检索旋律轮廓与模板组中的每一模板进行匹配,并根据匹配结果,输出候选音乐。
根据本发明的又一方面,所述的装置还包括多分辨率模板序列创建单元,用于以预定帧移从提取的主旋律中提取音符序列,从而创建多分辨率帧级旋律模板序列。
根据本发明的又一方面,所述的装置还包括多分辨率检索序列创建单元,用于从检索旋律轮廓提取音符序列,从而创建多分辨率帧级旋律检索序列。
附图说明
通过下面结合附图对实施例进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是根据本发明的哼唱检索方法的框图;
图2是示出在图1的模块100中执行的创建模板组的详细流程图;
图3是示出在图1的模块200中执行的从哼唱中提取旋律的详细流程图;
图4是示出在图1的模块300中执行的旋律匹配处理的详细流程图;
图5是示出传统线性伸缩算法的示图;
图6A和6B示出传统RA算法的示图;
图7是示出本发明实施例中的均值位移算法的示图。
具体实施方式
以下,参照附图来详细说明本发明的实施例。
图1是根据本发明实施例的哼唱检索方法的整体框图。如图1所示,根据本发明实施例的哼唱检索方法包括三个模块:模板组创建模块100、旋律提取模块200和旋律匹配处理模块300。
在模块100中,进行模板组创建,制作用于后续匹配处理的模板。
模板组创建过程可以离线操作。在该模块中,对音乐库中的每首音乐提取主旋律,然后对提取的主旋律执行音乐小节切分,从而制作多分辨率模板组。
图2示出了图1的模块100中的创建模板组的详细流程。将参照图2详细描述模板组创建的过程。
在步骤S101,输入音乐库。在步骤S102中,提取每首音乐的主旋律。主旋律的提取方式根据MIDI的类型而不同。对于单轨MIDI音乐,由于只有一个音轨,所以该音轨里所存储的旋律即为主旋律。对于多音轨MIDI音乐,一般主旋律在第一个音轨中,但是有的MIDI音乐可能不是这样,因此需要作出如下几个条件的判断:(1)音轨名里有“MELODIES”,“VOCAL”,“SING”,“SOLO”,“LEAD”,“VOICE”这些词;(2)音轨中音符的力度(即音符的强弱)的平均值最大;(3)音轨中音符的时长最长,即第一个音符的起始时刻到最后一个音符的结束时刻。满足上面3个条件之一的音轨,认为是主旋律所在的音轨,将里面的音符信息作为主旋律提取出来。
在步骤S103,从音乐中提取其他信息。对于一首音乐来说,它的速度、拍子记号(指的4/4拍,2/4拍)、1/4音符的时长等是非常有用的信息。这些信息通常写在MIDI音乐的每个音轨的头中,因此这些信息都可以从每首MIDI的音轨中得到。
在步骤S104中,根据在步骤S103中得到的信息,找出每个小节的起始时刻和结束时刻。具体地,根据在步骤S103中获得信息,如节拍、拍子记号,1/4音符的时长,可以容易地标出音乐小节的起始时刻和结束时刻。
将步骤S103和S104的操作统称为音乐小节切分。因为人们在哼唱的时候,一般总是从某一小节的开头开始,到某一小节的结束终止,因此可以利用这一习惯来提高搜索的准确率,并可以在一定程度上提高搜索的速度。而且用户在执行搜索时,可以从音乐的任意位置进行搜索,也就是说,用户的哼唱可以从歌曲的任意部分开始。因此,在根据本发明的实施例中,采用自动音乐小节切分。
在步骤S105,创建帧级多分辨率旋律轮廓。根据帧移(frame shift)的不同,可以得到不同分辨率的旋律音符序列。低分辨率指的是采用比较大的帧移对每首音乐的音符采样,这样得到的音符数目较少,对旋律的描述比较粗。高分辨率指的是采用比较小的帧移对每首音乐的音符采样,这样得到的音符数目比较多,对旋律的描述比较清晰。一般来说,一首音乐可以得到两个或两个以上的旋律序列,这要根据具体的应用而定。这里需要说明的是,最后的旋律音符序列都被表示为减均值(mean subtraction)形式的序列(与后面将要描述的步骤S205类似)。
在步骤S106,输出用于匹配处理的模板组,即,将每首音乐中提取的多个不同分辨率的旋律序列组成用于匹配的模板集合。
在模块200中,从用户的哼唱中提取旋律轮廓用于后续的匹配处理。图3是示出在图1中的模块200中从哼唱中提取旋律的详细流程。下面,参照图3详细描述该过程。
在步骤S201中,输入用户的哼唱。所述输入可以是用户具有歌词、没有歌词的查询、也可以是音乐的一段录音或者是口哨。这些类型的检索均可以被存储为wave形式的文件。
在步骤S202中,对输入的哼唱进行基频抽取。在该过程中,在提取哼唱中的基频时,根据最大分辨率,即最小的帧移,进行基频抽取。当需要低分辨率的旋律轮廓时,从以最小帧移抽取的旋律序列中进行抽取。例如,当最小帧移是0.1s,语音长8s时,则得到80帧数据。如果要得到0.2s的旋律序列,则从所述80帧数据中取偶数(或奇数)序号的值即可。提取基频的算法是传统的自相关算法,这里不再详细描述。
在步骤S203中,进行旋律轮廓的平滑处理。由于提取基频的算法不可能准确地提取出哼唱中实际的基频值,因而会有一些半频或倍频(即真实基频的一半或倍数)错误,或者产生一些奇异点(即,孤立点),因而需要对提取的基频轮廓进行平滑处理。这里采用的平滑处理算法为常用的中值滤波和线性滤波方式。
在基频抽取之后,在步骤S204,执行基频到半音的变换。每个基频被变换为如式(1)所示的半音符(semitone):
其中,freq是基频。
在步骤S205,对转换后的半音执行减均值。由于用户很难准确地哼唱出音乐谱中的每个音符,而且不同的人对同一首音乐也会哼出不同的音符,通常男的会高一些,女的会低一些,因此,为了减少这一情况对匹配算法的影响,需要将音符序列改变为用于匹配处理的特定的表示。在本发明的实施例中,采用了“减均值”的旋律序列表示方式。具体地讲,将半音符序列转换为最终用于匹配算法中的序列,即,给定一段半音符序列,将其中的非零值相加求均值,然后用原序列中的每个非零均值去减该均值,得到用于匹配的序列。需要说明的是,原半音符序列中为零的值被丢弃了,在抽取音乐的主旋律时(即图2中的步骤S105),也是按照这种方式进行的。
在步骤S206,输出帧级旋律轮廓。在该处理中,使用简单采样方法来从最高分辨率帧级音符轮廓获得不同分辨率的帧级音符轮廓。该操作与对音乐库中的每首音乐制作不同分辨率的模板过程类似,这里不再详细描述。
当从用户的哼唱中提取出旋律轮廓之后,在模块300中进行旋律轮廓和模板组的匹配,从而得到用户期望查找的结果。图4示出了模块300中的旋律轮廓与模板组的匹配的详细流程。下面,参照图4进行详细描述。
在步骤S301,输入在模块200中得到的从哼唱中提取的帧级旋律轮廓。在下面的匹配处理中,也可将帧级旋律轮廓称作哼唱检索序列。在步骤S302,输入在模块100中得到的模板组。在下面的匹配处理中,也可将用于匹配的每一个模板称作模板序列。
在步骤S303中,形成低分辨率旋律轮廓。该处理用于分别从帧级多分辨率旋律轮廓中和帧级多分辨率模板组得到相同分辨率的旋律轮廓。由于低分辨率的旋律轮廓的采样点较少,所以能够在从哼唱中提取的旋律轮廓与模板组的旋律轮廓之间进行快速比对,短时间内得出候选项。
在步骤S304中,执行快速匹配处理,以选出一小组用于后续比较的候选项。具体地,采用快速匹配算法进行提取的旋律轮廓(即,哼唱检索序列Q)与模板组(即,模板序列T)之间的匹配。可以采用各种匹配算法来进行所述匹配处理。在本发明的实施例中,提出了一种快速伸缩算法,即,在线性伸缩(LS)算法的基础上,加入快速拍子伸缩操作,下面称为算法1,具体如下:
算法1.采用快拍子伸缩的LS(Q,T)算法 |
INPUT:Q=(q1,q2,…,qN) (注:输入哼唱检索序列Q) |
T=(t1,t2,…,tM) (注:输入模板序列T) |
r=r0,δ=δ0,Q1=Q×r (注:将Q拉伸r倍) |
d=LS(Q1,T)(注:对Q1和T采用线性伸缩算法求距离值) |
while δ>0.09do |
Qh=Q×(r+δ),dh=LS(Qh,T) |
Ql=Q×(r-δ),dl=LS(Ql,T) |
if dh is min of(d,dh,dl)thenr=r+δ,d=dh |
if dl is min of(d,dh,dl)thenr=r-δ,d=dl |
δ=δ/2 |
end while |
return d |
下面,对上述算法1及其中的变量进行解释。首先输入检索序列Q=(q1,q2,…,qN),并输入在模块100中得到的模板序列T=(t1,t2,…,tM),其中,N表示哼唱序列中的帧数,M表示模板序列中的帧数。r表示序列Q的伸缩比例,δ表示r的偏移,Q×r表示将序列Q拉伸r倍,例如,原来Q的长度为100,r为1.5,则变换后Q1的长度为150。其中,r0和δ0是两个预设值,在实验中分别被设置为1.4和0.4。
d=LS(Q1,T)是对Q和T采用线性伸缩算法求距离值的线性伸缩函数。图5示出了d=LS(Q1,T)的含义。如图5所示,横轴为模板序列,纵轴为哼唱检索序列,取对角线上的点对距离值进行计算,即,求两者的差的绝对值。比如说横轴为200个点,纵轴为100个点,则对角线的斜率为0.5,那么给定横轴上的2个点,对应纵轴上1个点,分别求横轴上的两个点与纵轴上的1个点对应的距离值,将这些距离值累加起来,得到的就是模板序列和哼唱检索序列之间的距离值。
在执行算法1并输出距离值之后,利用4个滤波器来进一步降低候选项的数量。这些滤波器分别基于方差、子段均值比较、质心比较和音符分布比较,详细描述如表1所示。
表1
使用上述5个滤波器,主要用于筛选用于后面精确匹配的模板集合。
经过在步骤S304的筛选,候选音乐的数量规模变小。在步骤S305,输出小规模的模板组。
在步骤S306,形成高分辨率旋律轮廓。在该步骤中,得到具有相同分辨率的高分辨率旋律轮廓和模板,用于最后的精确匹配。该操作和得到低分辨率旋律轮廓的原理相同,这里不再重复描述。
在步骤S307中,执行精确匹配方法。在该处理中,使用快速迭代对齐(fast_RA)算法。快速迭代对齐算法被称为算法2,该算法是在迭代对齐(RA)的基础上提出的一种快速算法,具体描述如下。
图6A和6B示出了传统的RA算法。如图6A所示,粗实线是检索序列和模板序列之间的最佳对齐路径。在迭代的第一步,比较三条对齐路径:实线、虚线和双点划线。如果通过虚线路径获得的值最小,则在迭代的下一步骤中,将该路径分为两部分,如图6B所示。然后,分别在左右两个部分中重复上述操作,即分别沿着三条路径进行计算,分别获得值最小的一条路径。然后,左右两部分中的距离值最小的两条路径的组合即为最后得出的路径。
本发明的快RA算法的不同之处在于,为了提高计算速度,通过计算,判断最佳匹配路径的曲线是向上弯的还是向下弯的,然后,仅计算弯曲方向相同的路径,例如,在图6A中,通过计算判断最佳匹配路径是向上弯的,从而仅计算虚线对应的路径即可,从而可以省去对另外一条路径的计算。
通常,女歌唱者的基频高于男歌唱者的基频,也就是说,不同的人即使是对同一首音乐也会具有不同的基频值(音符值)。这对于匹配处理的精度是个问题。为了解决这一问题,采用均值移位来使检索序列和模板序列之间的值最小。在本发明中,提出了一种采用均值移位的快RA算法,称为算法3,将在后面详细描述。
这里提到的均值位移也是一种算法,如在前面提到的减均值一样,原始的旋律序列要减去它的均值。由于人哼唱的差异,检索序列的均值和模板序列的均值会有一些偏差,为了弥补这种偏差,使用了均值移位算法,即,将检索序列的均值移到(上下移动)一个合适的位置,使得检索序列的均值和模板序列的均值之间的距离最小。
算法3.采用均值以为的快RA(Q,T,D)算法 |
INPUT:Q=(q1,q2,…,qN) (注:输入检索序列Q) |
T=(t1,t2,…,tM) (注:输入模板序列T) |
D (注:输入迭代深度D) |
δ=δ0,Q′=Q (注:δ表示均值偏移值) |
d=fast_RA(Q′,T,D) |
while δ>0do |
dh=fast_RA(Q′+δ,T,D) |
dl=fast_RA(Q′-δ,T,D) |
if dh is min of(d,dh,dl)then |
Q′=Q′+δ,d=dh |
end if |
if dl is min of(d,dh,dl)then |
Q′=Q′-δ,d=dl |
end if |
δ=δ/2 |
end while |
return d |
在算法3中,在试验中,δ0是被设置为2的预设值。Q±δ是指检索序列Q加上或减去均值偏移值的所有值,如图7所示。
在图7中,t为检索序列的均值,开始δ为2,这时比较t、t-2、t+2时检索序列与模板序列的距离值。如果t+2的距离值最小,则选定t+2,记为t′,δ除以2,然后比较t′、t′-1、t′+1时的距离值,选择最小的距离值作为最终的结果。
在步骤S308,输出匹配结果,得到用户期望查找的音乐的候选项。具体地说,如果哼唱检索序列和模板序列之间的距离小于预定值,则认为两者匹配,从而与该模板对应的歌曲即为候选歌曲。通过精确匹配处理,候选项进一步缩小,从而快速找到用户查找的音乐。
在上述匹配处理中,采用了不同分辨率的旋律轮廓匹配,首先采用较低分辨率的音乐旋律轮廓线进行匹配搜索,以便从一个非常大的音乐库中筛选出一个小的候选集合,在这个小的候选集合上,再使用高精度的旋律轮廓线进行精确匹配,来得到最后的匹配音乐集。因此,根据本发明的匹配处理方法,可以提高搜索速度。
本发明具有如下优点:(1)在提取旋律时,进行自动音乐小节切分,按照小节进行搜索,提高了准确率;(2)通过不同分辨率的旋律轮廓进行匹配,先用较低分辨率的旋律轮廓线进行匹配,从一个非常大的音乐库中筛选出一个小的候选集合,再在这个小的候选集合上,使用高精度的旋律轮廓线进行精确匹配,来提高搜索速度,快速而准确的根据用户哼唱从大规模音乐库中找出所要的音乐;(3)对于用户的要求较低,面向普通用户,允许在哼唱中有一定的错误(插入、删除、替换),并可以带歌词哼唱,或者使用“da da”,“la la”来进行哼唱,也可以吹口哨,或者录一段音乐片段来进行搜索;(3)可以用于PC、手机、MP3播放器上。
尽管已经参照本发明的特定优选实施例示出和描述了本发明,但是本领域的技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上作出各种改变。
Claims (16)
1、一种用于哼唱检索的音乐模板创建方法,包括:
提取音乐的主旋律轮廓;
对提取的主旋律轮廓按照音乐小节进行切分;
将按照音乐小节切分后的旋律轮廓转换为帧级旋律音符序列,并将其存储为模板序列。
2、如权利要求1所述的音乐模板创建方法,其中,在进行音乐小节切分时,包括下述步骤:
获得音乐旋律的相关信息;
根据获得的信息找到每一小节的起始点和结束点;
在旋律轮廓上标记每个小节的起始点和结束点。
3、如权利要求1所述的音乐模板创建方法,其中,在将旋律轮廓转换为帧级旋律音符序列时,按照预定的帧移来对旋律轮廓的音符进行采样,从而得到帧级旋律音符序列。
4、如权利要求3所述的音乐模板创建方法,还包括将旋律音符序列转换为减均值形式的旋律音符序列。
5、一种用于哼唱检索的方法,包括:
输入从哼唱中提取的检索序列;
输入按照音乐小节进行切分的模板序列组,所述模板序列组包含与音乐库中每首音乐对应的模板序列;
将检索序列和模板序列进行匹配;
如果模板序列和检索序列匹配,则将与该模板序列对应的音乐输出作为检索结果。
6、如权利要求5所述的方法,其中,将检索序列和模板序列进行匹配的步骤包括:
以第一帧移从哼唱检索序列中提取低分辨率检索序列;
以第一帧移从输入的模板序列中提取低分辨率模板序列;
将低分辨率检索序列和低分辨率模板序列进行匹配,根据匹配的结果,筛选出一组候选模板序列;
以比第一帧移小的第二帧移从输入的检索序列中提取高分辨率检索序列;
以第二帧移从得到的候选模板序列的每一个中提取高分辨率模板序列;
将高分辨率检索序列和高分辨率模板序列进行匹配。
7、如权利要求5所述的方法,其中,采用线性伸缩算法进行检索序列和模板序列之间的匹配。
8、如权利要求5所述的方法,其中,在进行检索序列和模板序列之间的匹配时,执行如下步骤:
(a)输入检索序列Q和模板序列T;
(b)使伸缩比例r等于r0,并使伸缩比例r的偏移δ等于δ0;
(c)计算Q1=Q×r,并利用线性伸缩算法计算序列Q1和模板序列T之间的距离值d=|Q1-T|;
(e)计算Qhigh=Q×(r+δ),并利用线性伸缩算法计算序列Qhigh和模板序列T之间的距离值dhigh=|Qhigh-T|;
(f)计算Qlow=Q×(r-δ),并利用线性伸缩算法计算序列Qlow和模板序列T之间的距离值dlow=|Qlow-T|;
(g)比较d、dhigh和dlow的大小;
(h)如果dhigh最小,则使r=r+δ,d=dhigh,如果dlow最小,则使r=r-δ,d=dlow,如果d最小,则保持r和d值不变;
(i)判断δ是否大于预设值;
(j)如果δ大于预定值,则使δ=δ/2,并返回到步骤(e);
(k)如果δ小于预定值,则输出距离值d;
(1)判断d是否小于预定阈值,如果d小于预定阈值,则确定模板序列与检索序列匹配。
9、如权利要求8所述的方法,其中,r0和δ0分别为1.4和0.4,所述预定值为0.09。
10、如权利要求6所述的方法,其中,在进行检索序列和模板序列之间的匹配时,使用迭代对齐算法计算检索序列和模板序列之间的距离值,如果两者之间的距离值小于预定值,则输出与该模板序列对应的音乐作为检索结果,否则丢弃该模板,进行检索序列与下一个模板序列之间的匹配。
11、如权利要求6所述的方法,其中,在进行检索序列和模板序列之间的匹配时,执行如下步骤:
(a)输入检索序列Q=(q1,q2,...,qN)和模板序列T=(t1,t2,...,tM),其中,N表示检索序列的帧数,M表示模板序列的帧数;
(b)输入迭代次数D,同时使j=N/2,i=0;
(c)在j点将序列Q分为两个序列Q1=(q1,q2,...,qj)和Q2=(qj+1,qj+2,...,qN);
(d)分别将序列Q1的和值sum(Q1)以及Q序列的和值sum(Q),以及两者的比值Ro=sum(Q1)/sum(Q);
(e)使k=M/2,T1=(t1,t2,...,tk),T2=(tk+1,tk+2,...,tM);
(f)利用线性伸缩算法求Q1和T1的距离值的d1以及Q2和T2之间的距离值d2,并使S1=d1+d2;
(g)将模板序列T从第h点分开,分为两个序列T3=(t1,t2,...,th),T4=(th+1,th+2,...,tM),并使序列T3和T的和值之间的比等于Ro;
(h)利用线性伸缩算法求Q1和T3的距离值的d3以及Q2和T4之间的距离值d4,并使S2=d3+d4;
(i)判断S1和S2之间的大小关系,如果S1小于S2,则使S=S1,i=k,否则使S=S2,i=h;
(j)如果D等于零,则输出S值,如果D不等于零,则D=D-1,并使T1=(t1,t2,...,ti),T2=(ti+1,ti+2,...,tM),然后分别令Q=Q1,T=T1和Q=Q2,T=T2重新执行步骤(a),并对Q=Q1,T=T1以及Q=Q2,T=T2的返回值进行累加作为S的值并输出;
(k)如果S小于预定的距离值,则输出与模板序列T对应的音乐作为检索结果,否则,执行检索序列与下一个模板序列之间的匹配。
12、一种用于哼唱检索的音乐模板创建装置,包括:
提取音乐库中的每首音乐的主旋律轮廓的提取单元;
将提取的主旋律轮廓按照音乐小节进行切分的音乐小节切分单元;
将按照音乐小节切分后的旋律轮廓转换为音符序列并将其存储为模板序列的转换单元。
13、一种用于哼唱检索的装置,包括:
输入从哼唱中提取的帧级检索序列的检索序列输入单元;
输入按照音乐小节进行切分的帧级模板序列的模板序列输入单元;
将检索序列和模板序列进行匹配的匹配单元;
根据匹配的结果输出检索结果的输出单元。
14、一种用于哼唱检索的装置,包括:
模板创建单元,用于对音乐库中每首音乐提取主旋律,并创建按照音乐小节进行切分的模板组;
旋律提取单元,用于从用户的哼唱中提取检索旋律轮廓;
旋律匹配单元,用于将提取的检索旋律轮廓与模板组中的每一模板进行匹配,并根据匹配结果,输出候选音乐。
15、如权利要求14所述的装置,还包括:
多分辨率模板序列创建单元,用于以预定帧移从提取的主旋律中提取音符序列,从而创建多分辨率帧级旋律模板序列;
多分辨率检索序列创建单元,用于从检索旋律轮廓提取音符序列,从而创建多分辨率帧级旋律检索序列。
16、如权利要求14所述的装置,其中,旋律匹配单元包括:
距离值计算单元,用于计算多分辨率帧级旋律模板序列和多分辨率帧级旋律检索序列之间的距离值;
检索结果输出单元,用于判断所述距离值是否小于预定阈值,如果小于预定阈值,则判断该模板序列与检索序列匹配,并输出与该模板序列相应的音乐作为检索结果,否则,进行下一个模板与检索序列之间的匹配。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101518963A CN101398827B (zh) | 2007-09-28 | 2007-09-28 | 用于哼唱检索的方法和装置 |
KR1020080084038A KR101520621B1 (ko) | 2007-09-28 | 2008-08-27 | 노래/허밍에 의한 질의 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101518963A CN101398827B (zh) | 2007-09-28 | 2007-09-28 | 用于哼唱检索的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101398827A true CN101398827A (zh) | 2009-04-01 |
CN101398827B CN101398827B (zh) | 2013-01-23 |
Family
ID=40517390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101518963A Expired - Fee Related CN101398827B (zh) | 2007-09-28 | 2007-09-28 | 用于哼唱检索的方法和装置 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101520621B1 (zh) |
CN (1) | CN101398827B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479509A (zh) * | 2010-11-29 | 2012-05-30 | 财团法人资讯工业策进会 | 旋律辨识方法与其装置 |
CN102521281A (zh) * | 2011-11-25 | 2012-06-27 | 北京师范大学 | 一种基于最长匹配子序列算法的哼唱计算机音乐检索方法 |
WO2013123747A1 (zh) * | 2012-02-24 | 2013-08-29 | 中兴通讯股份有限公司 | 一种基于音频实现设备解锁的方法和系统 |
CN103325387A (zh) * | 2012-03-23 | 2013-09-25 | 三菱电机株式会社 | 异常声音诊断装置 |
CN103440250A (zh) * | 2013-07-22 | 2013-12-11 | 北京承芯卓越科技有限公司 | 基于16位dsp平台应用的嵌入式哼唱检索方法及系统 |
CN103559312A (zh) * | 2013-11-19 | 2014-02-05 | 北京航空航天大学 | 一种基于gpu的旋律匹配并行化方法 |
CN103854661A (zh) * | 2014-03-20 | 2014-06-11 | 北京百度网讯科技有限公司 | 一种提取音乐特征的方法及装置 |
CN104766067A (zh) * | 2015-04-17 | 2015-07-08 | 南京大学 | 一种基于扫描线的音符识别方法 |
CN105118490A (zh) * | 2015-07-20 | 2015-12-02 | 科大讯飞股份有限公司 | 复调乐器音符定位方法和装置 |
WO2016150275A1 (zh) * | 2015-03-20 | 2016-09-29 | 广东欧珀移动通信有限公司 | 一种预设风格歌曲处理的方法及装置 |
CN106547797A (zh) * | 2015-09-23 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 音频生成方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440873B (zh) * | 2013-08-27 | 2015-10-28 | 大连理工大学 | 一种基于相似性的音乐推荐方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086052A1 (en) * | 2003-10-16 | 2005-04-21 | Hsuan-Huei Shih | Humming transcription system and methodology |
CN1750117A (zh) * | 2004-09-16 | 2006-03-22 | 乐金电子(惠州)有限公司 | 伴唱机歌曲搜索系统及其旋律数据库构成方法 |
DE102004049457B3 (de) * | 2004-10-11 | 2006-07-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Verfahren und Vorrichtung zur Extraktion einer einem Audiosignal zu Grunde liegenden Melodie |
CN100373383C (zh) * | 2005-09-08 | 2008-03-05 | 上海交通大学 | 基于特征音符的音乐旋律分段自动标注方法 |
CN100373382C (zh) * | 2005-09-08 | 2008-03-05 | 上海交通大学 | 基于内容的数字音乐检索旋律特征数据库及生成系统 |
CN1737796A (zh) * | 2005-09-08 | 2006-02-22 | 上海交通大学 | 数字音乐旋律的跨越式高速匹配方法 |
-
2007
- 2007-09-28 CN CN2007101518963A patent/CN101398827B/zh not_active Expired - Fee Related
-
2008
- 2008-08-27 KR KR1020080084038A patent/KR101520621B1/ko active IP Right Grant
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8742243B2 (en) | 2010-11-29 | 2014-06-03 | Institute For Information Industry | Method and apparatus for melody recognition |
CN102479509A (zh) * | 2010-11-29 | 2012-05-30 | 财团法人资讯工业策进会 | 旋律辨识方法与其装置 |
CN102521281A (zh) * | 2011-11-25 | 2012-06-27 | 北京师范大学 | 一种基于最长匹配子序列算法的哼唱计算机音乐检索方法 |
CN102521281B (zh) * | 2011-11-25 | 2013-10-23 | 北京师范大学 | 一种基于最长匹配子序列算法的哼唱计算机音乐检索方法 |
WO2013123747A1 (zh) * | 2012-02-24 | 2013-08-29 | 中兴通讯股份有限公司 | 一种基于音频实现设备解锁的方法和系统 |
CN103325387A (zh) * | 2012-03-23 | 2013-09-25 | 三菱电机株式会社 | 异常声音诊断装置 |
CN103325387B (zh) * | 2012-03-23 | 2015-11-18 | 三菱电机株式会社 | 异常声音诊断装置 |
CN103440250A (zh) * | 2013-07-22 | 2013-12-11 | 北京承芯卓越科技有限公司 | 基于16位dsp平台应用的嵌入式哼唱检索方法及系统 |
CN103559312A (zh) * | 2013-11-19 | 2014-02-05 | 北京航空航天大学 | 一种基于gpu的旋律匹配并行化方法 |
CN103559312B (zh) * | 2013-11-19 | 2017-01-18 | 北京航空航天大学 | 一种基于gpu的旋律匹配并行化方法 |
CN103854661A (zh) * | 2014-03-20 | 2014-06-11 | 北京百度网讯科技有限公司 | 一种提取音乐特征的方法及装置 |
WO2016150275A1 (zh) * | 2015-03-20 | 2016-09-29 | 广东欧珀移动通信有限公司 | 一种预设风格歌曲处理的方法及装置 |
US10031714B2 (en) | 2015-03-20 | 2018-07-24 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method and device for processing audio files |
CN104766067B (zh) * | 2015-04-17 | 2017-11-03 | 南京大学 | 一种基于扫描线的音符识别方法 |
CN104766067A (zh) * | 2015-04-17 | 2015-07-08 | 南京大学 | 一种基于扫描线的音符识别方法 |
CN105118490A (zh) * | 2015-07-20 | 2015-12-02 | 科大讯飞股份有限公司 | 复调乐器音符定位方法和装置 |
CN105118490B (zh) * | 2015-07-20 | 2019-01-18 | 科大讯飞股份有限公司 | 复调乐器音符定位方法和装置 |
WO2017050059A1 (zh) * | 2015-09-23 | 2017-03-30 | 腾讯科技(深圳)有限公司 | 音频生成方法、服务器和存储介质 |
CN106547797A (zh) * | 2015-09-23 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 音频生成方法和装置 |
US10261965B2 (en) | 2015-09-23 | 2019-04-16 | Tencent Technology (Shenzhen) Company Limited | Audio generation method, server, and storage medium |
CN106547797B (zh) * | 2015-09-23 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 音频生成方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20090032972A (ko) | 2009-04-01 |
CN101398827B (zh) | 2013-01-23 |
KR101520621B1 (ko) | 2015-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101398827B (zh) | 用于哼唱检索的方法和装置 | |
Zhu et al. | Warping indexes with envelope transforms for query by humming | |
EP1397756B1 (en) | Music database searching | |
Gómez et al. | Towards computer-assisted flamenco transcription: An experimental comparison of automatic transcription algorithms as applied to a cappella singing | |
Joder et al. | A conditional random field framework for robust and scalable audio-to-score matching | |
CN104978962A (zh) | 哼唱检索方法及系统 | |
JP6794990B2 (ja) | 楽曲検索方法および楽曲検索装置 | |
Tsai et al. | An FFT-based fast melody comparison method for query-by-singing/humming systems | |
CN103559309A (zh) | 一种基于gpu加速的音乐检索与推荐系统 | |
JP2009015535A (ja) | 類似音楽検索装置、類似音楽検索方法、類似音楽検索プログラム及びコンピュータで読み取り可能な記録媒体 | |
CN101488128B (zh) | 基于旋律印记的音乐搜索方法和系统 | |
Zhu et al. | Query by humming: a time series database approach | |
CN105630831A (zh) | 哼唱检索方法及系统 | |
WO2007119221A2 (en) | Method and apparatus for extracting musical score from a musical signal | |
Nam et al. | A new query‐by‐humming system based on the score level fusion of two classifiers | |
JP5085577B2 (ja) | プレイリスト作成装置、楽曲再生装置、プレイリスト作成方法およびプレイリスト作成プログラム | |
US20080017017A1 (en) | Method and Apparatus for Melody Representation and Matching for Music Retrieval | |
Wang et al. | Query by humming by using locality sensitive hashing based on combination of pitch and note | |
Müller et al. | Music synchronization | |
Wang et al. | Improving searching speed and accuracy of query by humming system based on three methods: feature fusion, candidates set reduction and multiple similarity measurement rescoring. | |
Lee | A system for acoustic chord transcription and key extraction from audio using hidden Markov models trained on synthesized audio | |
Wongsaroj et al. | A music similarity measure based on chord progression and song segmentation analysis | |
Lv et al. | AnEffective Design for Fast Query-by-Humming System with Melody Segmentation and Feature Extraction | |
Arentz et al. | Retrieving musical information based on rhythm and pitch correlations | |
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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130123 Termination date: 20210928 |