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