友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
微软的梦工场-第27部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
作者介绍:
周昆,2002年从浙江大学计算机学院获得工学博士学位,同年加入微软亚洲研究院,历任副研究员、研究员和项目负责人。2008年受聘教育部长江学者特聘教授,回到浙江大学计算机学院工作。在微软工作6年期间曾在国际计算机图形学大会ACM SIGGRAPH上发表17篇论文,其中多项技术被应用在Windows图形系统DirectX,XBOX游戏Halo 3,以及三维电影特技制作软件中。
第83节:歌曲大搜索之哼哼也可以(1)
歌曲大搜索之哼哼也可以
作者:芦烈
通过这几年的工作,我逐渐从一个对研究所知甚少的学生逐渐成长为一个在音频分析领域略有成绩的研究员。哼唱搜索,作为其中我曾经负责的一个项目,也从起初的一个练手项目发展成为技术转让项目。从中其实也能看到我成长的点点滴滴。
先打点儿基础吧!
研究院的光环是夺目的。她总是与世界级专家、领先的学术成果、自由的学术氛围等令人向往的词联系在一起。当我得知自己被研究院录取的时候,心中的兴奋之情可想而知(后来我还得知我是研究院录取的第一批硕士生之一,而且还很有可能是第一个,而以前研究院是只招收博士生的)。我其实并没有对此抱有很高的希望。因为我在大学时期拥有的专业知识(我是电路与系统专业)和一些基本的项目经验,与计算机科学的学术研究相比,还真有些隔行如隔山的感觉。
当我怀着兴奋的心情来到位于北京中关村的希格玛大厦,见到了众多世界级专家和当代佼佼的青年学者及同事时,我更加意识到自己其实对研究几乎一无所知。就连一些基本的算法,像模式识别和机器学习,也没有系统地学过。我知道自己必须恶补更多的知识,积累更多的经验。这对我来说既是挑战更是巨大的机会,因为我即将步入令人兴奋的多媒体研究的殿堂。
当时我们组叫媒体计算组,主要从事多媒体计算,包括图像、视频、及音频的内容分析和检索。我们组的学术领头人是张宏江博士,多媒体分析的先驱之一。由于我还具有一些信号处理和语音处理的背景,而且对音频信号颇感兴趣,于是音频和音乐内容分析及检索便成为我的主要研究方向。
在另一个研究员江灏的工作基础上,我开展了音频分类分割的工作。其主要目标是将一个音频片断(比如影片中的音轨),按照其内容分为语音、音乐、背景声音等等。这是音频分析的第一步。这个项目帮助我很快地熟悉了机器学习和模式识别的算法。
好玩的哼唱搜索
经过一段时间的学习和工作,我逐渐熟悉了研究的方法论。哼唱搜索(query…by…humming)便成为我第一个独立研究项目。在传统的搜索引擎中,大家都习惯于用文本或关键字去搜索歌曲,比如用歌手或者歌名。但是在很多情况下,你有可能忘记了或者根本不知道一首歌的歌手和歌名。那么,还有什么办法把那首歌找出来呢?哼唱搜索便提供了另外一种搜索方式:哼一段旋律,通过旋律匹配把歌找出来。
这个项目的起因其实就是张宏江的一个问话:“能不能简单哼一下就把一首歌给找出来?”“ 挺好玩。”当时第一个感觉就是这个问题很好玩。仔细一想,其实这也是一个现实的问题。比如说我自己(不少人也是)经常记不清歌名,但还能哼两句主旋律。如果我们真能有一个哼唱搜歌的系统,说不定真可能派上用场。同时,这还是一个独立、完整的系统,设计开发这样一个系统对我也是一个有益的锻炼。于是,我和一个实习生由红开始了这个项目。
我们首先翻阅了资料,发现哼唱搜索其实在1995年的ACM多媒体大会上就由Asif Ghias博士(康奈尔大学)等提出并给出了一个解决方法。以后又有些研究员陆续提出了一些改进方法。但是,我们发现以前的方法还是有不少的局限性。比如,旋律本来是一个音符序列,包括每个音符的音高和时长;但在很多方法中,旋律被简化为只包含反映下一个音符相对于上个音符上升、持平、下降的字符串。有些方法为了加快搜索速度,要求只能哼唱歌曲的起始部分。还有些则为了避免哼唱节奏的影响,要求用户使用一个节拍器。这都限制了这些方法的可应用性。我们觉得里面还有许多方面可以提高。
我们把系统分成了三个部分:数据库处理(从音乐中提取旋律),哼唱处理(从哼唱中提取旋律)和旋律匹配。其中的关键问题是旋律表征、旋律提取、和旋律匹配算法。鉴于以前对旋律表征过于简化,除了以前使用的上升下降等量化数据,我们还保持了旋律中每个音符的音高和时长作为更精确的表征。在旋律匹配过程中,我们采用了两步法以加快搜索速度:先用简化旋律作一初选,然后再用音高和时长,通过音高匹配模型和节奏匹配模型,来更精确地寻找相似的音乐。
经过半年时间的努力,我们终于完成了算法,建立了一个演示系统。算法在测试集上的性能也挺不错:在搜索结果中,前五位内能找到正确歌曲的比率(hit rate)达到了80%。然而,虽然算法取得了不错的结果,回想起来,还是有不少地方可以提高。比如我们所用的开发集及测试集都比较小,这样可能并不能完全反映算法的性能。我们还发现我们在分析哼唱数据将其转化为旋律时,使用了不少启发式规则,一些参数的设置过于局限于开发集而失去了通用性,使得这个系统对某些人工作很好,但对另一些人却不好。而且,要成为一个真正能为大众使用的产品,我们还缺少一个关键触发点:一个好的应用场景。对于最重要的一个应用场景——网络音乐的搜索,哼唱搜索还无法胜任。这是因为目前的算法对 mp3等音频数据还无法有效处理来提取旋律,我们使用的数据库主要基于MIDI 数据。但是不管怎样,这是一个完全从零开始的项目,我在整个过程中,从查阅资料、设计模块、设计算法,到编写代码、数据收集、算法评价及相应改进,都得到了不少的锻炼,对研究方法也更有心得了。
由于其他项目的开展,哼唱搜索暂时告一段落。我想,其实它也是在等待一个更好的机会。
忽现转机
几年后(2006夏)的某一天,搜索技术中心(STC)的开发项目主管谢育涛突然跟我联系,说他正好看到张贴在研究院中有关哼唱搜索的海报,要跟我讨论一下将其用在手机搜索上的可行性。谢育涛主要负责的是手机搜索,那时他正在跟位于深圳的Windows Live Mobile China (WLMC) 做图铃搜索,也就是提供高效算法来搜索手机图片和手机铃声。除了传统的文本搜索之外,他们还在寻求一些与其他搜索产品不同的新功能。哼唱搜索可能是一个好的选择。
第84节:歌曲大搜索之哼哼也可以(2)
为了寻求哼唱搜索手机铃声的可行性,我们同相关的同事进行了多次讨论。最后,我们觉得哼唱搜索和手机铃声下载将是一个完美的结合:
首先,手机铃声的下载是一个相当大的市场。有资料显示2005年全球手机铃声业务达到令人惊讶的50亿美元。
第二,手机作为一个便携式手提设备,用键盘输入文本并不太方便。但是,声音对手机来说却是一个非常自然的输入方式,因为手机本身便是用来做声音交流的。哼唱是声音的一种。
第三,手机铃声通常有多个版本以便用于不同的手机型号,而MIDI版本的手机铃声是最基本的。这样,只要将MIDI同其他格式关联起来,旋律提取便不再是个问题。
第四,通过手机下载手机铃声是个一步式的解决方案。不再需要通过电脑等中介系统。
同时,我们也发现在这个应用场景下,直接使用我们以前的方法效果并不理想。新的问题带来了新的挑战:
第一,在以前系统中,哼唱是通过麦克风录制的,质量比较好。在现在的应用场景下,我们需要用手机录制。同时,我们必须还要考虑到录制时引入的背景噪声(用户可能在大街上使用这个系统),还有由于无线传输而可能引起的信号畸变。
第二,我们将要面对一个大的多的数据库(通常手机铃声库可能包含1…10万首铃声)。这就要求我们更进一步的提高搜索精度和速度。利用一切可以使用的信息,优化旋律模型和节奏模型。同时需要建立一个更大的开发集和测试集,来优化参数选择和性能评价。
当时,由于媒体计算组的重组,我加入了语音组继续从事音频分析和检索的工作。语音组研究项目负责人Frank Seide和语音组带头人宋謌平博士也非常支持这个项目。于是我们就立即开始了分工合作,来搭建一个端到端(end…to…end)的系统原型。其中,我和一个实习生翁锐浩主要负责哼唱搜索算法的改进,其他几位同事,包括STC的欧佳凡和WLMC的王晓兵,负责搭建搜索平台。
重拾哼唱搜索
晓兵和佳凡的工作卓有成效,他们同中国移动的高阳公司合作,很快就搭建了一个系统平台,并申请了一个临时声讯服务号码(当时是125905988)。通过这个平台,我们就可以有效地采集真实数据。用户可以通过手机直接拨打服务号码,系统会记录下每一条哼唱记录。我记得当时我们有一部手机专门用来做数据采集。我们邀请了很多同事和实习生,把手机交给他们,让他们留下自己“美妙”的哼哼声。对于哼唱环境、哼唱方式、哼唱歌曲,我们都没有加以限制,以期得到符合用户习惯的最真实的数据。通过这个系统,我们得到了大量的数据。
有了真实的数据,我们就着手算法的改进了。算法的改进主要在两方面:一是哼唱的旋律提取,我们考虑了不同的背景噪声和信号畸变,提出了更精确的方法来检测和分割每一个音符;二是匹配模型的改进,我们使用了隐马尔科夫模型 来作旋律匹配,明确考虑了哼唱和数据库音乐之间的音符对齐问题,将它更有效地集成到了改进的旋律模型、节奏模型和匹配时的容错模型中。我们还提出了一个更加系统化的匹配过程。
经过几个月的努力,我们终于开发出了一个更高性能的算法。测试显示,第一位歌曲的正确率 (top 1 accuracy) 达到了82%,在前五位中找到的比率更是接近90%。我们也搭建了一个在线服务原型:你可以使用你的手机,拨打一个服务号码,根据提示音哼唱一段旋律,你就能得到你要找的手机铃声。这也是业界第一个哼唱搜索手机铃声的系统。为了能在中国市场运作,我们还将此技术转让给了位于上海的美斯恩有限公司。
我们还把这个技术展示在微软一年一度的技术节上(TechFest)上; 得到了非常不错的反响。比尔?盖茨也过来看了我们的演示。我也第一次获得了与比尔?盖茨面对面的机会。后来有在微软总部雷德蒙工作的同事对我说:“你的演示很成功啊,很多同事回来后还在讨论呢。”
结束语
哼唱搜索,只是我所经历的众多项目中的一个。之所以讲讲它的故事,不仅是因为它是我第一个独立项目,而且它也让我懂得,做一个项目,不只是仅仅做一个实验室算法,而是要系统地综合地考虑其应用场景甚至商业模型,考虑真实使用环境并使用大数量多样化的真实数据。做到这一点,才有可能使你的技术应用于现实生活中,才有机会让用户感受到科技改变生活。
我想,无论工业界的研究员,还是高等院校里的学生,都可以从这个角度去重新审视一下手中的问题和解决方案。
作者介绍:
芦烈,2000年加入微软亚洲研究院,现为语音组研究员。主要研究方向是机器学习,音频、音乐的内容分析和检索。他在国际一流期刊和会议上发表过50多篇论文,拥有近20项专利;曾多次在国际会议上担任技术委员会成员。他于2000年获上海交通大学电路与系统专业硕士学位,现兼于荷兰代尔夫特理工大学攻读博士学位。他寥有所好,溺于技术而疏于艺术。好音乐而做音乐分析,却常因没有音乐细胞而心有戚戚。 希望有朝一日自己的研究成果可被广泛应用。
第85节:研究院“and”的故事(1)
研究院“and”的故事
作者:陈刚
创新工程组(Innovation Engineering Group,简称IEG)是研究院中一个非常特殊的非研究性质的组,它负责很多研究组的研究原型和技术转移工作。许多研究院技术背后都有这个组的贡献。由于IEG支持的研究组很多,开玩笑说,就 “研究方向”的数量而言,她可以稳坐研究院第一。
出乎一般人意料的是,这个主要由软件开发工程师而非研究员组成的开发组竟然是研究院成立的第一个组,现在也是10岁了。令人骄傲的是,2003年,从它分化出一支并壮大成立了微软亚洲工程院(ATC)。2005年,搜索技术中心(STC) 的成立也是从这个组开始的。再后来,开发组合并用户体验 (User Experience) 后形成了现在的创新工程组(IEG)。我们组现有二十多人,有老有少,有中国人也有外国人,而且终于有了女性开发工程师,作为一个微软内部的软件开发团队,这确实比较少见。和初创时期纯粹年轻男生的组织构成相比,现在更“平衡”了。
自从2000年进入微软亚洲研究院做开发,不经意间我已在这个组工作了8年,猛然发现自己竟成了组龄最长的组员。作为一个仍很年轻的“老人”,我很乐意把一些经历在研究院10年之际与大家分享。
进入微软研究院
至今我还记得进入微软时两次决定的面试片段。1999年末我面临毕业求职,一日接到微软中国研究院到知春路希格玛的面试通知。西装穿戴整齐到了希格玛五层,我就径直被带到一个屋子里面被很多人围着问话,而这些人没有一个穿西装的,倒是有穿拖鞋的。问问题的人单刀直入、毫不含糊,印象中只记得往来之间人影恍惚、镜光耀眼(研究员们的戴眼
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!