為了尋求哼唱搜索手機(jī)鈴聲的可行性,我們同相關(guān)的同事進(jìn)行了多次討論。最后,我們覺(jué)得哼唱搜索和手機(jī)鈴聲下載將是一個(gè)完美的結(jié)合:
首先,手機(jī)鈴聲的下載是一個(gè)相當(dāng)大的市場(chǎng)。有資料顯示2005年全球手機(jī)鈴聲業(yè)務(wù)達(dá)到令人驚訝的50億美元。
第二,手機(jī)作為一個(gè)便攜式手提設(shè)備,用鍵盤(pán)輸入文本并不太方便。但是,聲音對(duì)手機(jī)來(lái)說(shuō)卻是一個(gè)非常自然的輸入方式,因?yàn)槭謾C(jī)本身便是用來(lái)做聲音交流的。哼唱是聲音的一種。
第三,手機(jī)鈴聲通常有多個(gè)版本以便用于不同的手機(jī)型號(hào),而MIDI版本的手機(jī)鈴聲是最基本的。這樣,只要將MIDI同其他格式關(guān)聯(lián)起來(lái),旋律提取便不再是個(gè)問(wèn)題。
第四,通過(guò)手機(jī)下載手機(jī)鈴聲是個(gè)一步式的解決方案。不再需要通過(guò)電腦等中介系統(tǒng)。
同時(shí),我們也發(fā)現(xiàn)在這個(gè)應(yīng)用場(chǎng)景下,直接使用我們以前的方法效果并不理想。新的問(wèn)題帶來(lái)了新的挑戰(zhàn):
第一,在以前系統(tǒng)中,哼唱是通過(guò)麥克風(fēng)錄制的,質(zhì)量比較好。在現(xiàn)在的應(yīng)用場(chǎng)景下,我們需要用手機(jī)錄制。同時(shí),我們必須還要考慮到錄制時(shí)引入的背景噪聲(用戶可能在大街上使用這個(gè)系統(tǒng)),還有由于無(wú)線傳輸而可能引起的信號(hào)畸變。
第二,我們將要面對(duì)一個(gè)大的多的數(shù)據(jù)庫(kù)(通常手機(jī)鈴聲庫(kù)可能包含1-10萬(wàn)首鈴聲)。這就要求我們更進(jìn)一步的提高搜索精度和速度。利用一切可以使用的信息,優(yōu)化旋律模型和節(jié)奏模型。同時(shí)需要建立一個(gè)更大的開(kāi)發(fā)集和測(cè)試集,來(lái)優(yōu)化參數(shù)選擇和性能評(píng)價(jià)。
當(dāng)時(shí),由于媒體計(jì)算組的重組,我加入了語(yǔ)音組繼續(xù)從事音頻分析和檢索的工作。語(yǔ)音組研究項(xiàng)目負(fù)責(zé)人Frank Seide和語(yǔ)音組帶頭人宋謌平博士也非常支持這個(gè)項(xiàng)目。于是我們就立即開(kāi)始了分工合作,來(lái)搭建一個(gè)端到端(end-to-end)的系統(tǒng)原型。其中,我和一個(gè)實(shí)習(xí)生翁銳浩主要負(fù)責(zé)哼唱搜索算法的改進(jìn),其他幾位同事,包括STC的歐佳凡和WLMC的王曉兵,負(fù)責(zé)搭建搜索平臺(tái)。
重拾哼唱搜索
曉兵和佳凡的工作卓有成效,他們同中國(guó)移動(dòng)的高陽(yáng)公司合作,很快就搭建了一個(gè)系統(tǒng)平臺(tái),并申請(qǐng)了一個(gè)臨時(shí)聲訊服務(wù)號(hào)碼(當(dāng)時(shí)是125905988)。通過(guò)這個(gè)平臺(tái),我們就可以有效地采集真實(shí)數(shù)據(jù)。用戶可以通過(guò)手機(jī)直接撥打服務(wù)號(hào)碼,系統(tǒng)會(huì)記錄下每一條哼唱記錄。我記得當(dāng)時(shí)我們有一部手機(jī)專門(mén)用來(lái)做數(shù)據(jù)采集。我們邀請(qǐng)了很多同事和實(shí)習(xí)生,把手機(jī)交給他們,讓他們留下自己“美妙”的哼哼聲。對(duì)于哼唱環(huán)境、哼唱方式、哼唱歌曲,我們都沒(méi)有加以限制,以期得到符合用戶習(xí)慣的最真實(shí)的數(shù)據(jù)。通過(guò)這個(gè)系統(tǒng),我們得到了大量的數(shù)據(jù)。
有了真實(shí)的數(shù)據(jù),我們就著手算法的改進(jìn)了。算法的改進(jìn)主要在兩方面:一是哼唱的旋律提取,我們考慮了不同的背景噪聲和信號(hào)畸變,提出了更精確的方法來(lái)檢測(cè)和分割每一個(gè)音符;二是匹配模型的改進(jìn),我們使用了隱馬爾科夫模型 來(lái)作旋律匹配,明確考慮了哼唱和數(shù)據(jù)庫(kù)音樂(lè)之間的音符對(duì)齊問(wèn)題,將它更有效地集成到了改進(jìn)的旋律模型、節(jié)奏模型和匹配時(shí)的容錯(cuò)模型中。我們還提出了一個(gè)更加系統(tǒng)化的匹配過(guò)程。
經(jīng)過(guò)幾個(gè)月的努力,我們終于開(kāi)發(fā)出了一個(gè)更高性能的算法。測(cè)試顯示,第一位歌曲的正確率 (top 1 accuracy) 達(dá)到了82%,在前五位中找到的比率更是接近90%。我們也搭建了一個(gè)在線服務(wù)原型:你可以使用你的手機(jī),撥打一個(gè)服務(wù)號(hào)碼,根據(jù)提示音哼唱一段旋律,你就能得到你要找的手機(jī)鈴聲。這也是業(yè)界第一個(gè)哼唱搜索手機(jī)鈴聲的系統(tǒng)。為了能在中國(guó)市場(chǎng)運(yùn)作,我們還將此技術(shù)轉(zhuǎn)讓給了位于上海的美斯恩有限公司。
我們還把這個(gè)技術(shù)展示在微軟一年一度的技術(shù)節(jié)上(TechFest)上, 得到了非常不錯(cuò)的反響。比爾?蓋茨也過(guò)來(lái)看了我們的演示。我也第一次獲得了與比爾?蓋茨面對(duì)面的機(jī)會(huì)。后來(lái)有在微軟總部雷德蒙工作的同事對(duì)我說(shuō):“你的演示很成功啊,很多同事回來(lái)后還在討論呢?!?/p>
結(jié)束語(yǔ)
哼唱搜索,只是我所經(jīng)歷的眾多項(xiàng)目中的一個(gè)。之所以講講它的故事,不僅是因?yàn)樗俏业谝粋€(gè)獨(dú)立項(xiàng)目,而且它也讓我懂得,做一個(gè)項(xiàng)目,不只是僅僅做一個(gè)實(shí)驗(yàn)室算法,而是要系統(tǒng)地綜合地考慮其應(yīng)用場(chǎng)景甚至商業(yè)模型,考慮真實(shí)使用環(huán)境并使用大數(shù)量多樣化的真實(shí)數(shù)據(jù)。做到這一點(diǎn),才有可能使你的技術(shù)應(yīng)用于現(xiàn)實(shí)生活中,才有機(jī)會(huì)讓用戶感受到科技改變生活。
我想,無(wú)論工業(yè)界的研究員,還是高等院校里的學(xué)生,都可以從這個(gè)角度去重新審視一下手中的問(wèn)題和解決方案。
作者介紹:
蘆烈,2000年加入微軟亞洲研究院,現(xiàn)為語(yǔ)音組研究員。主要研究方向是機(jī)器學(xué)習(xí),音頻、音樂(lè)的內(nèi)容分析和檢索。他在國(guó)際一流期刊和會(huì)議上發(fā)表過(guò)50多篇論文,擁有近20項(xiàng)專利;曾多次在國(guó)際會(huì)議上擔(dān)任技術(shù)委員會(huì)成員。他于2000年獲上海交通大學(xué)電路與系統(tǒng)專業(yè)碩士學(xué)位,現(xiàn)兼于荷蘭代爾夫特理工大學(xué)攻讀博士學(xué)位。他寥有所好,溺于技術(shù)而疏于藝術(shù)。好音樂(lè)而做音樂(lè)分析,卻常因沒(méi)有音樂(lè)細(xì)胞而心有戚戚。 希望有朝一日自己的研究成果可被廣泛應(yīng)用。