如何在遠(yuǎn)程會(huì)議的時(shí)候靜音吃薯片?微軟團(tuán)隊(duì)用AI去除視頻噪聲
上個(gè)月,Microsoft宣布,其與Slack,F(xiàn)acebook Workplace以及Google的Hangouts Chat的競(jìng)爭(zhēng)對(duì)手Teams的每日活躍用戶(hù)已超過(guò)4400萬(wàn)。這一里程碑卻掩蓋了其“稍后”發(fā)布的一些新功能。大部分功能都很簡(jiǎn)單明了:舉手功能表明你有話(huà)要說(shuō);離線和低帶寬支持,即使在網(wǎng)絡(luò)連接不暢或沒(méi)有網(wǎng)絡(luò)情況下,也能閱讀聊天消息并回復(fù);以及將聊天彈出到一個(gè)單獨(dú)窗口。其中還有一項(xiàng)實(shí)時(shí)噪聲抑制功能吸引了大家眼球 - Microsoft演示AI如何在通話(huà)過(guò)程中減少讓人分心的背景噪聲。
我們都有過(guò)類(lèi)似經(jīng)歷:視頻時(shí)多少次讓某人打開(kāi)靜音,或是找個(gè)安靜的環(huán)境?實(shí)時(shí)噪聲抑制功能將過(guò)濾掉會(huì)議中某人的鍵盤(pán)打字聲,薯片袋的悉索聲和正在用的吸塵器聲。AI將實(shí)時(shí)消除背景噪音,讓你只在通話(huà)中聽(tīng)到語(yǔ)音。那它究竟是怎么做到的呢?為了找到答案,VB與Microsoft Teams小組項(xiàng)目經(jīng)理Robert Aichner進(jìn)行了訪談。
隨著新冠病毒危機(jī)迫使數(shù)百萬(wàn)人在家學(xué)習(xí)和工作,協(xié)作和視頻會(huì)議工具的使用呈爆炸式增長(zhǎng)。Microsoft正在將Teams作為其Microsoft 365訂閱套件的一部分,推動(dòng)成為針對(duì)企業(yè)和消費(fèi)者的解決方案。該公司依靠其機(jī)器學(xué)習(xí)領(lǐng)域優(yōu)勢(shì)來(lái)確保AI功能是其最大特色之一。當(dāng)它最終發(fā)布時(shí),實(shí)時(shí)背景噪聲抑制功能將為充滿(mǎn)噪聲的企業(yè)和家庭帶來(lái)福音。此外,Microsoft構(gòu)建此功能的方式還對(duì)其他用機(jī)器學(xué)習(xí)的公司具有指導(dǎo)意義。
固定噪聲與非固定噪聲
當(dāng)然,多年來(lái)Microsoft Teams,Skype和Skype for Business還有其他通信工具和視頻會(huì)議應(yīng)用程序中一直存在噪聲抑制功能。但那些噪聲抑制只能消除固定噪聲,例如在背景中運(yùn)行的電腦風(fēng)扇聲或空調(diào)聲。傳統(tǒng)的噪聲抑制方法是在說(shuō)話(huà)停頓時(shí),估計(jì)噪聲的基準(zhǔn),并假設(shè)連續(xù)的背景噪聲不會(huì)隨時(shí)間而變化,然后將其過(guò)濾掉。
Microsoft Teams則更進(jìn)一步,將抑制非固定噪音,例如狗吠或關(guān)門(mén)聲?!澳遣皇枪潭ǖ?,”Aichner解釋說(shuō)?!耙话銓?duì)于這類(lèi)噪聲你沒(méi)法在說(shuō)話(huà)停頓時(shí)估計(jì)。但現(xiàn)在機(jī)器學(xué)習(xí)就可以讓你創(chuàng)建具有大量代表性噪聲的訓(xùn)練集來(lái)進(jìn)行訓(xùn)練?!?/p>
實(shí)際上,Microsoft今年早些時(shí)就在GitHub上公開(kāi)了其訓(xùn)練集,“以促進(jìn)該領(lǐng)域研究的發(fā)展。”雖然第一個(gè)版本已公開(kāi)可用,Microsoft依然在積極致力于擴(kuò)展數(shù)據(jù)集。公司發(fā)言人證實(shí),作為實(shí)時(shí)噪聲抑制功能的一部分,數(shù)據(jù)集中的某些類(lèi)別的噪聲并不會(huì)在通話(huà)中被過(guò)濾,包括樂(lè)器,笑聲和歌聲。
微軟不能單純地分離出人的聲音,因?yàn)橛行┰胍粢灿邢嗤念l率。在語(yǔ)音信號(hào)的頻譜圖上,有些噪聲不光出現(xiàn)在說(shuō)話(huà)間隙,還會(huì)與說(shuō)話(huà)本身重疊。因此,過(guò)濾掉噪音幾乎是不可能的 – 因?yàn)檎Z(yǔ)音和噪音存在重疊,而兩者無(wú)法區(qū)分。取而代之的是,你需要先訓(xùn)練一個(gè)網(wǎng)絡(luò)知道噪聲和語(yǔ)音都是什么樣的。
語(yǔ)音識(shí)別和噪聲抑制
為了闡明觀點(diǎn),Aichner將用于噪聲抑制的機(jī)器學(xué)習(xí)模型與用于語(yǔ)音識(shí)別的機(jī)器學(xué)習(xí)模型進(jìn)行了比較。對(duì)于語(yǔ)音識(shí)別的模型,你需要錄下大量用戶(hù)對(duì)著麥克風(fēng)講話(huà)的語(yǔ)料,并通過(guò)記錄語(yǔ)料內(nèi)容的方式人工標(biāo)記這些數(shù)據(jù)。與將麥克風(fēng)輸入映射到文字不同,噪聲抑制關(guān)注于將嘈雜的語(yǔ)音轉(zhuǎn)變?yōu)榧儍舻恼Z(yǔ)音。
Aichner說(shuō):“我們訓(xùn)練了一個(gè)模型來(lái)理解噪音和語(yǔ)音之間的差異,然后該模型試圖僅僅保留語(yǔ)音。”“我們有訓(xùn)練數(shù)據(jù)集,其中收集了數(shù)千種不同的人聲和100多種噪音類(lèi)型。然后要做的是將沒(méi)有噪音的干凈語(yǔ)音與噪音混在一起,這樣就模擬了麥克風(fēng)信號(hào)。接著,我們還向模型提供干凈語(yǔ)音作為標(biāo)注數(shù)據(jù)。就好像你告訴模型‘請(qǐng)從這些嘈雜的數(shù)據(jù)中提取出干凈信號(hào),和標(biāo)注數(shù)據(jù)一樣’。這就是在監(jiān)督學(xué)習(xí)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方式,你得有一些標(biāo)注數(shù)據(jù)?!?/p>
對(duì)于語(yǔ)音識(shí)別而言,標(biāo)注數(shù)據(jù)就是對(duì)麥克風(fēng)說(shuō)話(huà)的實(shí)際內(nèi)容。而對(duì)于實(shí)時(shí)噪聲抑制來(lái)說(shuō),標(biāo)注數(shù)據(jù)是干凈的語(yǔ)音。通過(guò)提供足夠大的數(shù)據(jù)集(在這種情況下為數(shù)百小時(shí)的數(shù)據(jù)),Microsoft可以有效地訓(xùn)練其模型?!凹幢阄业穆曇魶](méi)有出現(xiàn)在訓(xùn)練數(shù)據(jù)中,模型也可以泛化并降低其中的噪音,”Aichner說(shuō),“于是當(dāng)我講話(huà)時(shí),模型可以從噪音中實(shí)時(shí)地提取干凈的語(yǔ)音,然后發(fā)送給遠(yuǎn)程人員?!?/p>
挑戰(zhàn)
和語(yǔ)音識(shí)別的功能進(jìn)行比較,噪聲抑制更容易實(shí)現(xiàn),即使后者是實(shí)時(shí)的。那么為什么以前沒(méi)有實(shí)現(xiàn)過(guò)?Microsoft的競(jìng)爭(zhēng)對(duì)手可以快速重建它嗎?Aichner列出了構(gòu)建實(shí)時(shí)噪聲抑制的挑戰(zhàn),包括查找代表性數(shù)據(jù)集,構(gòu)建和縮小模型以及利用機(jī)器學(xué)習(xí)知識(shí)。
具有代表性的數(shù)據(jù)集
我們已經(jīng)提到了第一個(gè)挑戰(zhàn):代表性數(shù)據(jù)集。團(tuán)隊(duì)花費(fèi)了大量時(shí)間來(lái)弄清楚如何產(chǎn)生能夠代表典型通話(huà)情況的聲音文件。
他們從有聲讀物中找出代表男性和女性的典型聲音,因?yàn)椤澳行院团缘穆曇糁g確實(shí)有語(yǔ)音特征上的不同”。他們還用了帶標(biāo)注的YouTube數(shù)據(jù)集,標(biāo)注出了錄制內(nèi)容包含的聲音,比如打字聲和音樂(lè)。然后,Aichner的團(tuán)隊(duì)用腳本以不同的信噪比將語(yǔ)音數(shù)據(jù)和噪聲數(shù)據(jù)合并在一起。接著通過(guò)放大噪音的方式,他們就可以模仿通話(huà)中可能發(fā)生的不同實(shí)際情況。
但有聲讀物與電話(huà)會(huì)議完全不同。那難道不會(huì)影響模型,從而影響噪聲抑制的效果?
“這是一個(gè)很好的觀點(diǎn),”Aichner承認(rèn)?!拔覀兊膱F(tuán)隊(duì)也做了一些錄音,以確保我們不僅在生成的合成數(shù)據(jù)上面進(jìn)行訓(xùn)練,而且還要在實(shí)際數(shù)據(jù)上能起作用。但要獲得那些真實(shí)的錄音肯定要困難得多。”
隱私限制
Aichner的團(tuán)隊(duì)是不允許看到任何用戶(hù)數(shù)據(jù)的。此外,微軟內(nèi)部還有著非常嚴(yán)格的隱私保護(hù)準(zhǔn)則?!拔也荒苤皇呛?jiǎn)單地說(shuō):‘現(xiàn)在我要開(kāi)始記錄下每次會(huì)議’?!?/p>
因此,該團(tuán)隊(duì)不能使用Microsoft Teams進(jìn)行通話(huà)。即使一些員工愿意讓他們記錄自己的會(huì)議,但當(dāng)有很明顯的噪音發(fā)生時(shí)還是需要人記錄下來(lái)。
“這就是為什么我們現(xiàn)在只做了一些小規(guī)模的工作,以確保能使用各種設(shè)備和揚(yáng)聲器等收集一些真實(shí)的錄音“Aichner說(shuō),”接下來(lái)要做的是,將它們作為測(cè)試集,也就是接近真實(shí)會(huì)議場(chǎng)景的測(cè)試數(shù)據(jù)。就可以來(lái)看我們是否使用了一個(gè)準(zhǔn)確的訓(xùn)練集,以及在測(cè)試集上的表現(xiàn)如何?當(dāng)然,理想的情況是我能有一個(gè)訓(xùn)練集,它包含了所有Teams的錄音,里面夾雜著人們正在聽(tīng)到的各種噪音。但現(xiàn)實(shí)是,我無(wú)法像通過(guò)獲取其他開(kāi)源數(shù)據(jù)那樣輕松地獲取相同規(guī)模的數(shù)據(jù)。“
另外他還說(shuō):“你可能會(huì)說(shuō)它應(yīng)該變得更好。當(dāng)然,如果有更具代表性的數(shù)據(jù),它可能會(huì)變得更好。所以我認(rèn)為在未來(lái),可以看看是否能進(jìn)一步改善。但就目前而言,即使僅僅使用現(xiàn)有的公開(kāi)數(shù)據(jù),它已經(jīng)表現(xiàn)得很好了?!?/p>
云端和邊緣端
接下來(lái)的挑戰(zhàn)就是要確定:如何構(gòu)建神經(jīng)網(wǎng)絡(luò)、模型結(jié)構(gòu)應(yīng)該是什么樣子以及如何迭代。機(jī)器學(xué)習(xí)模型經(jīng)歷了很多的調(diào)整,這需要大量的計(jì)算,這使得Aichner的團(tuán)隊(duì)需要花很長(zhǎng)時(shí)間才能在Azure(當(dāng)然得是它)的多塊GPU上完成模型的訓(xùn)練。
”很多機(jī)器學(xué)習(xí)任務(wù)是在云端完成的,“Aichner說(shuō),“比如對(duì)于語(yǔ)音識(shí)別任務(wù)來(lái)說(shuō),你對(duì)著麥克風(fēng)說(shuō)話(huà),這段話(huà)會(huì)被發(fā)送到云端。借助云上強(qiáng)大的計(jì)算能力,便可以運(yùn)行這些大型的模型來(lái)識(shí)別這段語(yǔ)音。但對(duì)于我們來(lái)說(shuō),由于這是實(shí)時(shí)通信我需要處理每一幀,假設(shè)它是10毫秒或20毫秒一幀,那我就要在這個(gè)時(shí)間以?xún)?nèi)處理完它,這樣才可以立刻回傳給你。所以我不能把它發(fā)送到云端,等待噪音抑制,再回傳回來(lái)?!?/p>
對(duì)于語(yǔ)音識(shí)別來(lái)說(shuō),利用云可能還是有意義的。但對(duì)于實(shí)時(shí)的噪音抑制,它就沒(méi)啥意義了。一旦你有了機(jī)器學(xué)習(xí)模型后,你應(yīng)當(dāng)縮小它以適應(yīng)客戶(hù)端,有可能是一部手機(jī)或是一臺(tái)電腦。一個(gè)只針對(duì)擁有高端機(jī)人群的機(jī)器學(xué)習(xí)模型是沒(méi)有意義的。
將處理推向邊緣端
讓機(jī)器學(xué)習(xí)模型留在邊緣端而不是云端還有一個(gè)原因:微軟希望限制服務(wù)器的使用,有時(shí),甚至一開(kāi)始不用服務(wù)器。對(duì)于Microsoft Teams中的一對(duì)一呼叫來(lái)說(shuō),呼叫設(shè)置通過(guò)服務(wù)器進(jìn)行,但實(shí)際的音頻和視頻信號(hào)數(shù)據(jù)包是直接在兩個(gè)參與者之間發(fā)送的。對(duì)于組呼叫或計(jì)劃會(huì)議來(lái)說(shuō),需要有一臺(tái)服務(wù)器,但微軟會(huì)將這臺(tái)服務(wù)器上的負(fù)載降至最低。為每個(gè)呼叫執(zhí)行大量服務(wù)器處理不光會(huì)增加成本,每個(gè)額外的網(wǎng)絡(luò)躍點(diǎn)也會(huì)增加延遲。從成本和延遲的角度來(lái)看,在邊緣端進(jìn)行處理效率會(huì)更好。
“你要確保將盡可能多的計(jì)算推送到用戶(hù)端,因?yàn)檫@實(shí)際上并不會(huì)涉及任何成本。你已經(jīng)有筆記本電腦、PC或是手機(jī)了,只不過(guò)要多做一些其他處理。只要你的CPU沒(méi)過(guò)載,就沒(méi)有問(wèn)題~“Aichner說(shuō)。
當(dāng)我指出,電池壽命,尤其是不在連接狀態(tài)設(shè)備的電池,是其中一項(xiàng)成本時(shí),Aichner這樣說(shuō):“是啦,我們當(dāng)然也關(guān)注到了這一點(diǎn),我們可不想因?yàn)閮H僅添加了一些噪聲抑制功能就降低了設(shè)備的電池續(xù)航時(shí)間。這絕對(duì)是要滿(mǎn)足的另一個(gè)需求,要確保不會(huì)在這一點(diǎn)上因小失大。”
下載大小和未來(lái)
團(tuán)隊(duì)不能僅僅考慮可能失敗,還要考慮到未來(lái)發(fā)展。因?yàn)槲覀儸F(xiàn)在討論的是機(jī)器學(xué)習(xí)模型,所以工作是永無(wú)止境的。
“我們正在努力去構(gòu)建一種將來(lái)也具有靈活性的產(chǎn)品,因此在發(fā)布第一個(gè)功能后,我們不會(huì)止步于噪聲抑制”,Aichner說(shuō),”我們想讓它越來(lái)越好。也許對(duì)于一些噪聲測(cè)試,現(xiàn)在表現(xiàn)還不盡如人意,但我們希望能夠有能力去改進(jìn)它。只要有性能提升,Teams的用戶(hù)一定就能下載到最新的模型,使用質(zhì)量更高的產(chǎn)品?!?/p>
模型本身將以幾兆字節(jié)的速度運(yùn)行,但這不會(huì)影響客戶(hù)端本身的大小?!斑@也是我們的另一個(gè)要求,當(dāng)用戶(hù)在手機(jī)、臺(tái)式機(jī)或筆記本電腦上下載我們應(yīng)用時(shí),會(huì)想要最小化下載大小,你也會(huì)想要讓人們盡快完成下載。“
Aichner還說(shuō):“‘只是為一些模型’在下載中增加兆字節(jié)是不可取的,當(dāng)你安裝完Microsoft Teams后,模型將會(huì)稍后在后臺(tái)下載完成。這也使我們?cè)趯?lái)變得更加靈活,可以做更多的事,建立更多不同的模型?!?/p>
機(jī)器學(xué)習(xí)專(zhuān)業(yè)知識(shí)
所有以上這些都需要最后一個(gè)組成部分:人才。
“你還需要有機(jī)器學(xué)習(xí)的專(zhuān)業(yè)知識(shí),才能知道自己想對(duì)這些數(shù)據(jù)進(jìn)行什么樣的操作,”Aichner說(shuō),“這就是為什么我們?cè)谶@個(gè)智能通信小組中成立了機(jī)器學(xué)習(xí)團(tuán)隊(duì)的原因,我們需要知道應(yīng)該如何處理這些數(shù)據(jù)的專(zhuān)家。什么是正確的模型?深度學(xué)習(xí)有著非常廣泛的意義,你可以創(chuàng)建許多不同類(lèi)型的模型。我們?cè)谑澜绺鞯赜卸鄠€(gè)微軟研究中心,有很多音頻方面的專(zhuān)家。現(xiàn)在正與他們緊密地合作著,因?yàn)樗麄冊(cè)谏疃葘W(xué)習(xí)領(lǐng)域有很多經(jīng)驗(yàn)和知識(shí)?!?/p>
數(shù)據(jù)是開(kāi)源的,也是可以進(jìn)行改進(jìn)的。任何公司都可以輕松地利用公共云,包括主流的Amazon Web Services,Microsoft Azure和Google Cloud,去完成大量必要的運(yùn)算。因此,如果有另一家擁有視頻聊天工具和合適的機(jī)器學(xué)習(xí)人才,他們是否能實(shí)現(xiàn)這一目標(biāo)呢?
“或許可以吧?!盇ichner說(shuō),“這和一些公司如何獲得語(yǔ)音識(shí)別能力類(lèi)似,他們需要有一個(gè)涉及到大量數(shù)據(jù)的語(yǔ)音識(shí)別器,還需要有很多專(zhuān)家去構(gòu)建模型。因此,一些大公司正在做著。”
Aichner認(rèn)為,由于規(guī)模龐大,微軟仍然具有很大的優(yōu)勢(shì)?!拔艺J(rèn)為價(jià)值在數(shù)據(jù),”他說(shuō),“我們將來(lái)要做的,就像你說(shuō)的,有一個(gè)計(jì)劃是微軟的員工可以提供給我們足夠多真實(shí)的Teams Calls數(shù)據(jù),以便對(duì)客戶(hù)的真實(shí)情況和所遇到的問(wèn)題進(jìn)行更好的分析,并對(duì)其進(jìn)行更多定制化服務(wù)?!?/p>