如何在視訊會議時「靜音」吃洋芋片?微軟團隊用 AI 幫你消音

【為什麼我們要挑選這篇文章】開視訊會議,聲音品質很容易被打字聲、車聲、狗叫聲等背景噪音干擾,於是微軟使用機器學習,透過標記的方式,讓 Teams 系統學會分辨會議語音與背景噪音,並自動將噪音過濾。

微軟技術即將開啟「新時代」的視訊會議模式,以後你可以在開會時吃洋芋片,系統會自動幫你過濾聲音,讓你不會影響同事跟主管的心情,皆大歡喜啊(誤)(責任編輯:郭家宏)

上個月,Microsoft 宣佈,其與 Slack、Facebook Workplace,以及 Google 的 Hangouts Chat 的競爭對手 Teams,每日活躍用戶已超過 4400 萬。這一里程碑卻掩蓋了其「稍後」發佈的一些新功能。大部分功能都很簡單明了:舉手功能表明你有話要說;離線和低頻寬支援,即使在網絡連接不暢或沒有網絡情況下,也能閲讀聊天消息並回覆;以及將聊天彈出到一個單獨窗口。其中還有一項即時雜訊抑制功能吸引了大家注意:Microsoft 展示 AI 如何在通話過程中減少讓人分心的背景雜訊。

我們都有過類似經歷:視訊時多少次讓某人打開靜音,或是找個安靜的環境?即時雜訊抑制功能將過濾掉會議中某人的鍵盤打字聲,洋芋片袋的聲音和正在用的吸塵器聲。AI 將即時消除背景噪音,讓你只在通話中聽到語音。那它究竟是怎麼做到的呢?為了找到答案,VB 與 Microsoft Teams 小組專案經理 Robert Aichner 進行了訪談。

隨著新冠病毒危機迫使數百萬人在家學習和工作,協作和視訊會議工具的使用呈爆炸式增長。Microsoft 正在將 Teams 作為其 Microsoft 365 訂閲套件的一部分,推動成為針對企業和消費者的解決方案。該公司依靠其機器學習領域優勢來確保 AI 功能是其最大特色之一。當它最終發佈時,即時背景雜訊抑制功能將為充滿雜訊的企業和家庭帶來福音。此外,Microsoft 建構此功能的方式還對其他用機器學習的公司具有指導意義。

傳統工具只能去掉固定雜訊,微軟透過機器學習去除非固定雜訊

當然,多年來 Microsoft Teams、Skype 和 Skype for Business,還有其他通訊工具和視訊會議應用程式中一直有雜訊抑制功能,但那些雜訊抑制只能消除固定雜訊,例如在背景中運行的電腦風扇聲或空調聲。傳統的雜訊抑制方法是在說話停頓時,估計雜訊的基準,並假設連續的背景雜訊不會隨時間而變化,然後將其過濾掉。

Microsoft Teams 則更進一步,將抑制非固定噪音,例如狗吠或關門聲。「那不是固定的,」Aichner 解釋說。「一般對於這類雜訊你沒法在說話停頓時估計。但現在機器學習就可以讓你建立具有大量代表性雜訊的訓練集來進行訓練。」

實際上,Microsoft 今年早些時就在 GitHub 上公開了其訓練集,「以促進該領域研究的發展。」雖然第一個版本已公開可用,Microsoft 依然在積極致力於擴展數據集。公司發言人證實,作為即時雜訊抑制功能的一部分,數據集中的某些類別的雜訊並不會在通話中被過濾,包括樂器,笑聲和歌聲。

GitHub 傳送門

微軟不能單純地分離出人的聲音,因為有些噪音也有相同的頻率。在語音信號的頻譜圖上,有些雜訊不光出現在說話間隙,還會與說話本身重疊。因此,過濾掉噪音幾乎是不可能的 – 因為語音和噪音存在重疊,而兩者無法區分。取而代之的是,你需要先訓練一個網絡知道雜訊和語音都是什麼樣的。

透過語音識別將雜訊過濾

為了闡明觀點,Aichner 將用於雜訊抑制的機器學習模型與用於語音識別的機器學習模型進行了比較。對於語音識別的模型,你需要錄下大量用戶對著麥克風講話的訊號,並透過記錄語料內容的方式人工標記這些數據。與將麥克風輸入映射到文字不同,雜訊抑制關注於將嘈雜的語音轉變為純淨的語音。

Aichner 說:「我們訓練了一個模型來理解噪音和語音之間的差異,然後該模型試圖僅僅保留語音。」「我們有訓練數據集,其中收集了數千種不同的人聲和 100 多種噪音類型。然後要做的是將沒有噪音的乾淨語音與噪音混在一起,這樣就模擬了麥克風資訊。接著,我們還向模型提供乾淨語音作為標註數據。就好像你告訴模型,請從這些嘈雜的數據中提取出乾淨信號,和標註數據一樣。這就是在監督學習中訓練神經網絡的方式,你得有一些標註數據。」

對於語音識別而言,標註數據就是對麥克風說話的實際內容。而對於即時雜訊抑制來說,標註數據是乾淨的語音。透過提供足夠大的數據集(在這種情況下為數百小時的數據),Microsoft 可以有效地訓練其模型。「即便我的聲音沒有出現在訓練數據中,模型也可以泛化並降低其中的噪音,」Aichner 說,「於是當我講話時,模型可以從噪音中實時地提取乾淨的語音,然後發送給遠端人員。」

和語音識別的功能進行比較,雜訊抑制更容易實現,即使後者是即時的。那麼為什麼以前沒有實現過?Microsoft 的競爭對手可以快速重建它嗎?Aichner 列出了建構即時雜訊抑制的挑戰,包括查詢代表性數據集,建構和縮小模型,以及利用機器學習知識。

挑戰一:查詢具有代表性的數據集

我們已經提到了第一個挑戰:代表性數據集。團隊花費了大量時間來弄清楚如何產生能夠代表典型通話情況的聲音文件。

他們從有聲讀物中找出代表男性和女性的典型聲音,因為「男性和女性的聲音之間確實有語音特徵上的不同」。他們還用了帶標註的 YouTube 數據集,標註出了錄製內容包含的聲音,比如打字聲和音樂。然後,Aichner 的團隊用腳本,以不同的信噪比,將語音數據和雜訊數據合併在一起。接著通過放大噪音的方式,他們就可以模仿通話中可能發生的不同實際情況。

但有聲讀物與電話會議完全不同。那難道不會影響模型,從而影響雜訊抑制的效果?

「這是一個很好的觀點,」Aichner 承認。「我們的團隊也做了一些錄音,以確保我們不僅在生成的合成數據上面進行訓練,而且還要在實際數據上能起作用。但要獲得那些真實的錄音肯定要困難得多。」

挑戰二:隱私限制

Aichner 的團隊是不允許看到任何用戶數據的。此外,微軟內部還有著非常嚴格的隱私保護準則。「我不能只是簡單地說:現在我要開始記錄下每次會議。」

因此,該團隊不能使用 Microsoft Teams 進行通話。即使一些員工願意讓他們記錄自己的會議,但當有很明顯的噪音發生時還是需要人記錄下來。

「這就是為什麼我們現在只做了一些小規模的工作,以確保能使用各種設備和揚聲器等收集一些真實的錄音」Aichner 說,「接下來要做的是,將它們作為測試集,也就是接近真實會議場景的測試數據。就可以來看我們是否使用了一個準確的訓練集,以及在測試集上的表現如何?當然,理想的情況是我能有一個訓練集,它包含了所有 Teams 的錄音,裡面夾雜著人們正在聽到的各種噪音。但現實是,我無法像透過獲取其他開源數據那樣,輕鬆地獲取相同規模的數據。」

另外他還說:「你可能會說它應該變得更好。當然,如果有更具代表性的數據,它可能會變得更好。所以我認為在未來,可以看看是否能進一步改善。但就目前而言,即使僅僅使用現有的公開數據,它已經表現得很好了。」

挑戰三:雲端和邊緣端

接下來的挑戰就是要確定如何構建神經網絡、模型結構應該是什麼樣子,以及如何疊代。機器學習模型經歷了很多的調整,這需要大量的計算,這使得 Aichner 的團隊需要花很長時間才能在 Azure(當然得是它)的多塊 GPU 上完成模型的訓練。

「很多機器學習任務是在雲端完成的,」Aichner 說,「比如對於語音識別任務來說,你對著麥克風說話,這段話會被發送到雲端。借助雲上強大的計算能力,便可以運行這些大型的模型來識別這段語音。但對於我們來說,由於這是即時通信,我需要處理每一幀,假設它是 10 毫秒或 20 毫秒一幀,那我就要在這個時間以內處理完它,這樣才可以立刻回傳給你。所以我不能把它發送到雲端,等待噪音抑制,再回傳回來。」

對於語音識別來說,利用雲端可能還是有意義的。但對於即時的噪音抑制,它就沒啥意義了。一旦你有了機器學習模型後,你應當縮小它以適應客戶端,有可能是一部手機或是一台電腦。一個只針對擁有高端機人群的機器學習模型是沒有意義的。

邊緣端處理音訊會比雲端更有效率

讓機器學習模型留在邊緣端而不是雲端還有一個原因:微軟希望限制伺服器的使用,有時,甚至一開始不用伺服器。對 Microsoft Teams 中的一對一呼叫來說,呼叫設置透過伺服器進行,但實際的聲音和影片訊號數據包是直接在兩個參與者之間發送的。對於組呼叫或計劃會議來說,需要有一台伺服器,但微軟會將這台伺服器上的負載降至最低。為每個呼叫執行大量伺服器處理不光會增加成本,每個額外的網絡躍點也會增加延遲。從成本和延遲的角度來看,在邊緣端進行處理效率會更好。

「你要確保將儘可能多的計算推送到用戶端,因為這實際上並不會涉及任何成本。你已經有筆記本電腦、PC 或是手機了,只不過要多做一些其他處理。只要你的 CPU 沒過載,就沒有問題」Aichner 說。

當我指出,電池壽命,尤其是不在連接狀態設備的電池是其中一項成本時, Aichner 這樣說:「是啦,我們當然也關注到了這一點,我們可不想因為僅僅添加了一些雜訊抑制功能就降低了設備的電池續航時間。這絶對是要滿足的另一個需求,要確保不會在這一點上因小失大。」

團隊的下一步,是讓下載大小最小化

團隊不能僅僅考慮可能失敗,還要考慮到未來發展。因為我們現在討論的是機器學習模型,所以工作是永無止境的。

「我們正在努力去建構一種將來也具有靈活性的產品,因此在發佈第一個功能後,我們不會止步於雜訊抑制」,Aichner 說,「我們想讓它越來越好。也許對於一些雜訊測試,現在表現還不盡如人意,但我們希望能夠有能力去改進它。只要有性能提升,Teams 的用戶一定就能下載到最新的模型,使用品質更高的產品。」

模型本身將以幾兆位元組的速度運行,但這不會影響客戶端本身的大小。「這也是我們的另一個要求,當用戶在手機、台式機或筆記本電腦上下載我們應用時,會想要最小化下載大小,你也會想要讓人們儘快完成下載。」

Aichner 還說:「『只是為一些模型』在下載中增加兆位元組是不可取的,當你安裝完 Microsoft Teams 後,模型將會稍後在後台下載完成。這也使我們在將來變得更加靈活,可以做更多的事,建立更多不同的模型。」

打造機器學習,人才是關鍵的要素

所有以上這些都需要最後一個組成部分:人才。

「你還需要有機器學習的專業知識,才能知道自己想對這些數據進行什麼樣的操作,」Aichner 說,「這就是為什麼我們在這個智慧通訊小組中成立了機器學習團隊的原因,我們需要知道應該如何處理這些數據的專家。什麼是正確的模型?深度學習有著非常廣泛的意義,你可以建立許多不同類型的模型。我們在世界各地有多個微軟研究中心,有很多音訊方面的專家。現在正與他們緊密地合作著,因為他們在深度學習領域有很多經驗和知識。」

數據是開源的,也是可以進行改進的。任何公司都可以輕鬆地利用公共雲,包括主流的 Amazon Web Services、Microsoft Azure 和 Google Cloud,去完成大量必要的運算。因此,如果有另一家擁有視訊聊天工具和合適的機器學習人才,他們是否能實現這一目標呢?

「或許可以吧。」Aichner 說,「這和一些公司如何獲得語音識別能力類似,他們需要有一個涉及到大量數據的語音識別器,還需要有很多專家去建構模型。因此,一些大公司正在做著。」

Aichner 認為,由於規模龐大,微軟仍然具有很大的優勢。「我認為價值在數據,」他說,「我們將來要做的,就像你說的,有一個計劃是微軟的員工可以提供給我們足夠多真實的 Teams Calls 數據,以便對客戶的真實情況和所遇到的問題進行更好的分析,並對其進行更多定製化服務。」

原文報導傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈如何在远程会议的时候静音吃薯片?微软团队用AI去除视频噪声〉。首圖來源:PXhere CC Licensed

更多關於 AI 的資訊

【特效全開】南韓醫療新創採用 NVIDIA 做 AI 產品,看 X 光片速度提高 20 倍!
【死神的旋律】MIT 科學家用 AI,將新冠病毒的蛋白質結構轉成音樂
【什麼通靈之術都放馬過來】印度工程師學一年深度學習,秒開發火影結印 AI 辨識系統!

AD