學界 | 只對你有感覺:谷歌用聲紋識別實現定向人聲分離

機器之心報道

作者:邱陸陸

近日,谷歌科學家 Quan Wang 等在 arXiv 上發佈了題名爲 VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking 的一篇論文,介紹了團隊在人聲分離領域的最新進展,利用聲紋識別技術,實現定向人聲分離。

圖 1:論文標題及作者截圖

「語音識別」已經跟隨着手機語音助手和智能音箱的普及變成了普通人日常生活的一部分,然而儘管包括谷歌、微軟在內的諸多公司紛紛宣稱其模型可以在標準數據集上「詞錯率降低到 6% 以下」、「水平超過普通人」乃至「水平超過專業速記員」,但是真實的場景裏有很多標準數據集上不會出現的情況:遠場問題、雞尾酒會問題、中英文夾雜問題等等,這些情況的存在導致現實生活中,語音識別模型的效果還遠遠達不到人類的期望,亟待解決的問題還有很多。

人聲分離是雞尾酒會問題中一個比較難的分支,特指那些所有信號由同一麥克風收錄,因此無法通過多個不同方向的麥克風解決的雞尾酒會問題。人聲分離問題的設定也有很多種,簡而言之,是從有多個說話人同時發聲的一段音頻中,將不同人的聲音區分開,以便對其中的某個(或每個)語音內容進行識別。現有的人聲分離技術面臨着三大挑戰:

首先,現有人聲分離算法幾乎全部假設說話人數量已知,而在真實生活裏,輸入音頻中同時說話的人的數量是未知的。

其次,在訓練人聲分離系統的過程中,如何保證置換不變性(Permutation Invariant),即確保時間軸上每一個點的說話者身份都與上一個點一致,對於經典的人聲分離算法來說,也是一大難點。

最後,即使將不同說話者的聲音成功分開,輸出爲多個人聲頻道,究竟哪一個頻道是「有用的」目標頻道,仍然需要設計額外的算法進行挑選。常用的做法是挑選音量最大的頻道,但是在多種實際場景下,例如干擾者與目標說話者同樣接近麥克風時,這種方法就有較大概率會失效。

VoiceFilter 用了「四兩撥千斤」的一招處理了人聲分離問題,他們請來了一位強有力的「外援」:聲紋識別編碼器(圖 2 紅色部分)。

VoiceFilter 網絡的輸入,除了含有噪聲的人聲時頻譜(spectrogram)之外,還有一段代表目標說話者的嵌入碼(embedding,又稱 d-vector)。這段嵌入碼是由聲紋識別編碼器從一段來自目標說話者的無噪聲參考音頻編碼而成的。系統最終會根據這段嵌入碼,定向地分離出有噪聲時頻譜中目標說話者的聲音,效果如下。視頻中分別展示了兩段含有噪聲的輸入、目標說話者參考音頻、以及分離後的效果。

VoiceFilter 網絡(圖 2 藍色部分)由一個 8 層的卷積網絡、一個 1 層的 LSTM 循環網絡和一個 2 層的全連接網絡組成。

輸入信號的時頻譜經過卷積層後,參考音頻的嵌入碼會被逐幀拼接到卷積層的輸出上,一同輸入 LSTM 層,最終,網絡的輸出是一段與輸入時頻譜維度相同的掩碼(mask)。將輸出掩碼與輸入時頻譜相乘,即可得到輸出音頻的時頻譜。

圖 2:谷歌 VoiceFilter 的系統架構圖。

VoiceFilter 系統分別在公開數據集 LibriSpeech 和 VCTK 上進行了試驗。將訓練好的 VoiceFilter 網絡同時作用於多人環境與單人環境的測試集。在固定語音識別器不變的情況下,VoiceFilter 將多人環境下的語音識別詞錯率(Word Error Rate)從 55.9% 降至 23.4%,提升率超過 50%!在單人環境下,VoiceFilter 的詞錯率也維持在了正常波動範圍內:從 10.9% 變化到了 11.1%。而在 VCTK 數據集上,VoiceFilter 則同時降低了多人環境與單人環境下的詞錯率。

圖 3:實驗結果

此外,文中還給出了人聲分離領域常用的指標 SDR(source-to-distortion ratio)。SDR 衡量的是分離後的信號中,包含的目標信號能量與噪聲能量之比,以分貝爲單位,越高越好。相同的神經網絡架構下,VoiceFilter 的 SDR 能夠達到 17.9 分貝,高於置換不變性訓練方法下的 17.2 分貝。

聲紋識別是一項已經發展非常成熟的技術,在 Pixel 手機與 Google Home 上,均有聲紋識別系統的部署。這些設備中都有現成的目標說話者嵌入碼(d-vector),VoiceFilter 系統部署到這類產品中時,不需要用戶進行任何額外的交互。換言之,VoiceFilter 可以在沒有爲用戶帶來任何額外使用成本的前提下,實現無論用戶的語音命令來自何種環境,被幾個麥克風收音,都能在維持單人環境詞錯率不變的情況下,降低多人環境詞錯率。

  • 原文鏈接:https://arxiv.org/abs/1810.04826
  • 更多音頻樣本:https://google.github.io/speaker-id/publications/VoiceFilter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章