正文

第83节:歌曲大搜索之哼哼也可以(1)

揭秘微软亚洲研究院:微软的梦工场 作者:微软亚洲研究院


歌曲大搜索之哼哼也可以

作者:芦烈

通过这几年的工作,我逐渐从一个对研究所知甚少的学生逐渐成长为一个在音频分析领域略有成绩的研究员。哼唱搜索,作为其中我曾经负责的一个项目,也从起初的一个练手项目发展成为技术转让项目。从中其实也能看到我成长的点点滴滴。

先打点儿基础吧!

研究院的光环是夺目的。她总是与世界级专家、领先的学术成果、自由的学术氛围等令人向往的词联系在一起。当我得知自己被研究院录取的时候,心中的兴奋之情可想而知(后来我还得知我是研究院录取的第一批硕士生之一,而且还很有可能是第一个,而以前研究院是只招收博士生的)。我其实并没有对此抱有很高的希望。因为我在大学时期拥有的专业知识(我是电路与系统专业)和一些基本的项目经验,与计算机科学的学术研究相比,还真有些隔行如隔山的感觉。

当我怀着兴奋的心情来到位于北京中关村的希格玛大厦,见到了众多世界级专家和当代佼佼的青年学者及同事时,我更加意识到自己其实对研究几乎一无所知。就连一些基本的算法,像模式识别和机器学习,也没有系统地学过。我知道自己必须恶补更多的知识,积累更多的经验。这对我来说既是挑战更是巨大的机会,因为我即将步入令人兴奋的多媒体研究的殿堂。

当时我们组叫媒体计算组,主要从事多媒体计算,包括图像、视频、及音频的内容分析和检索。我们组的学术领头人是张宏江博士,多媒体分析的先驱之一。由于我还具有一些信号处理和语音处理的背景,而且对音频信号颇感兴趣,于是音频和音乐内容分析及检索便成为我的主要研究方向。

在另一个研究员江灏的工作基础上,我开展了音频分类分割的工作。其主要目标是将一个音频片断(比如影片中的音轨),按照其内容分为语音、音乐、背景声音等等。这是音频分析的第一步。这个项目帮助我很快地熟悉了机器学习和模式识别的算法。

好玩的哼唱搜索

经过一段时间的学习和工作,我逐渐熟悉了研究的方法论。哼唱搜索(query-by-humming)便成为我第一个独立研究项目。在传统的搜索引擎中,大家都习惯于用文本或关键字去搜索歌曲,比如用歌手或者歌名。但是在很多情况下,你有可能忘记了或者根本不知道一首歌的歌手和歌名。那么,还有什么办法把那首歌找出来呢?哼唱搜索便提供了另外一种搜索方式:哼一段旋律,通过旋律匹配把歌找出来。

这个项目的起因其实就是张宏江的一个问话:“能不能简单哼一下就把一首歌给找出来?”“ 挺好玩。”当时第一个感觉就是这个问题很好玩。仔细一想,其实这也是一个现实的问题。比如说我自己(不少人也是)经常记不清歌名,但还能哼两句主旋律。如果我们真能有一个哼唱搜歌的系统,说不定真可能派上用场。同时,这还是一个独立、完整的系统,设计开发这样一个系统对我也是一个有益的锻炼。于是,我和一个实习生由红开始了这个项目。

我们首先翻阅了资料,发现哼唱搜索其实在1995年的ACM多媒体大会上就由Asif Ghias博士(康奈尔大学)等提出并给出了一个解决方法。以后又有些研究员陆续提出了一些改进方法。但是,我们发现以前的方法还是有不少的局限性。比如,旋律本来是一个音符序列,包括每个音符的音高和时长;但在很多方法中,旋律被简化为只包含反映下一个音符相对于上个音符上升、持平、下降的字符串。有些方法为了加快搜索速度,要求只能哼唱歌曲的起始部分。还有些则为了避免哼唱节奏的影响,要求用户使用一个节拍器。这都限制了这些方法的可应用性。我们觉得里面还有许多方面可以提高。

我们把系统分成了三个部分:数据库处理(从音乐中提取旋律),哼唱处理(从哼唱中提取旋律)和旋律匹配。其中的关键问题是旋律表征、旋律提取、和旋律匹配算法。鉴于以前对旋律表征过于简化,除了以前使用的上升下降等量化数据,我们还保持了旋律中每个音符的音高和时长作为更精确的表征。在旋律匹配过程中,我们采用了两步法以加快搜索速度:先用简化旋律作一初选,然后再用音高和时长,通过音高匹配模型和节奏匹配模型,来更精确地寻找相似的音乐。

经过半年时间的努力,我们终于完成了算法,建立了一个演示系统。算法在测试集上的性能也挺不错:在搜索结果中,前五位内能找到正确歌曲的比率(hit rate)达到了80%。然而,虽然算法取得了不错的结果,回想起来,还是有不少地方可以提高。比如我们所用的开发集及测试集都比较小,这样可能并不能完全反映算法的性能。我们还发现我们在分析哼唱数据将其转化为旋律时,使用了不少启发式规则,一些参数的设置过于局限于开发集而失去了通用性,使得这个系统对某些人工作很好,但对另一些人却不好。而且,要成为一个真正能为大众使用的产品,我们还缺少一个关键触发点:一个好的应用场景。对于最重要的一个应用场景——网络音乐的搜索,哼唱搜索还无法胜任。这是因为目前的算法对 mp3等音频数据还无法有效处理来提取旋律,我们使用的数据库主要基于MIDI 数据。但是不管怎样,这是一个完全从零开始的项目,我在整个过程中,从查阅资料、设计模块、设计算法,到编写代码、数据收集、算法评价及相应改进,都得到了不少的锻炼,对研究方法也更有心得了。

由于其他项目的开展,哼唱搜索暂时告一段落。我想,其实它也是在等待一个更好的机会。

忽现转机

几年后(2006夏)的某一天,搜索技术中心(STC)的开发项目主管谢育涛突然跟我联系,说他正好看到张贴在研究院中有关哼唱搜索的海报,要跟我讨论一下将其用在手机搜索上的可行性。谢育涛主要负责的是手机搜索,那时他正在跟位于深圳的Windows Live Mobile China (WLMC) 做图铃搜索,也就是提供高效算法来搜索手机图片和手机铃声。除了传统的文本搜索之外,他们还在寻求一些与其他搜索产品不同的新功能。哼唱搜索可能是一个好的选择。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号