深度學習在音頻信號處理領域中的進展(截止至2019年5月)


最近在arXiv上看到一篇關於深度學習在音頻信號處理中的進展的文章,感覺寫的不錯,所以根據自己的理解和大家分享一下。如果有些地方博主理解的不對,或者解釋不清,可以在下面評論,博主會一一回復。

論文鏈接:Deep Learning for Audio Signal Processing


摘要

這篇文章是奧爾堡大學,Google等幾個研究機構的一篇關於深度學習在音頻信號處理中的進展的綜述。這篇文章主要從語音(Speech)、音樂(Music)和環境聲(Environmental Sounds)三個領域出發,分析它們之間的相似點和不同點,以及一些跨領域的通用方法描述。具體而言,作者在音頻特徵表示(log-mel spectra, raw waveforms)和網絡模型(CNN, RNN, CRNN)進行了詳細的分析,對每個領域的技術演進以及深度學習應用場景進行了大概的描述。最後,作者總結了深度學習在音頻信號處理領域一些關鍵問題和未來的研究方向。


綜述

目前爲止,深度學習一共經歷了三次浪潮:1)1957年的感知算法的提出;2)1986年反向傳播算法的提出;3)2012年深度學習在圖像識別領域上的成功突破,使得深度學習的發展呈現的蓬勃的景象,並廣泛應用在其他領域,比如基因組學、量子化學、自然語言處理,推薦系統等。相比於圖像處理領域,聲音信號處理領域是深度學習成功應用的又一個大方向,尤其是語音識別,很多大公司都在做這個方向。和圖像不同,聲音信號是一維的序列數據,儘管可以通過像FFT這樣的頻域轉換算法轉換爲二維頻譜,但是它的兩個維度也是有特定的含義(縱軸表示頻率,橫軸表示時間幀),不能直接採用圖像的形式進行處理,需要有領域內特定的處理方法。


問題描述

根據任務目標的類型可以劃分爲不同的任務類型,圖一所示。首先,目標可以是一個全局的單標籤,可以每個時間幀都有一個標籤,也可以是一個自有長度的序列。其次,每個標籤可以爲一個單一的類別,可以爲多個類別,也可以是一個數值。

圖一 聲音信號分析任務可以劃分爲兩個屬性:預測的標籤數量(左),標籤的類型(右)

預測一個全局的單標籤的任務稱爲序列分類(Sequence Classification),這個標籤可以爲一個語言,說話人,音樂鍵或者聲音場景等。當目標爲多個類別的集合時,稱爲多標籤序列分類(Multi-label Sequence Classification)。當目標是一個連續的數值時,稱爲序列迴歸(sequence regression)。實際上,迴歸任務通常是可以離散化並且轉化爲分類任務,比如,連續座標的定位任務是一個迴歸任務,但是當把定位區間劃分爲幾個範圍,就可以當做分類任務來處理。

聲音特徵

在音頻信號處理領域,構建適當的特徵表示和分類模型通常被作爲兩個分離的問題。這種做法的一個缺點是人工構建的特徵可能對於目標任務可能不是最優的。深度神經網絡具有自動提取特徵的能力,因此可以將上述兩個問題進行聯合優化。例如,在語音識別中,Mohamed [1] 等人認爲深度神經網絡的低層提取一些適應說話人的特徵,而高層提取類別間的判別信息。

過去幾十年裏,MFCC曾被廣泛使用在音頻分析任務中。MFCC提取步驟:使用FFT提取幅度譜,應用Mel濾波進行Mel頻域的轉換,使用log進行非線性變換,使用DCT進行係數特徵的提取。然而,因爲DCT變換會損失聲音的結構信息,因此在深度模型中表現的並不是很好,目前使用最多的特徵是log-mel spectrogram或者constant Q spectrogram,後者通常應用在音樂信息檢索任務中。關於兩者的相似點和不同點,博主會在另一篇博客詳細介紹,這裏就不過多贅述。

爲了不依賴人工設計的固定的濾波器(比如Mel濾波),一些研究關注於可學習的濾波器。這裏解釋一下濾波器爲什麼可以設計成可學習的?我們要知道,對聲音進行濾波的實質就是對其進行不同的權重加成,這些權重完全可以由神經網絡來學出來,不需要人共設計。更進一步,我們拋棄FFT變換,Mel濾波(可學習)這些步驟,直接讓神經網絡對聲音序列(raw waveform)進行特徵學習,完全摒棄了之前所有的特徵工程的操作。儘管使用聲音序列作爲神經網絡的輸入有大量的工作,也取得了不錯的效果,但是它也存在問題,這個我們後面再講。

聲音模型

給定聲音表示,我們可以使用很多模型對其進行分析,包括MLP,CNN,RNN及其他們的變種網絡。

對於MLP,一般輸入的一維的係數向量,比如展平的MFCC等。MLP每次學習都是針對全局的特徵;

對於CNN,可輸入的特徵類型很多。輸入是一維的聲音序列,可以使用1-D CNN進行學習,輸入是二維的頻譜圖,可以使用2-D CNN進行學習。CNN的主要特點是可以進行局部特徵提取,學習局部特徵的關聯性,比如相鄰幀的關係,相鄰特徵(頻率維度)的關係等。另外,CNN的權重共享的網絡結構使得它的參數量很小,模型複雜度低。

對於RNN,主要是時間幀上的短時和長時的相關性(依賴性)進行建模。RNN主要對那些時間上相關性較強的序列數據有很好的效果,比如語音的前後邏輯是一個很重要的信息。通常,RNN和CNN會結合來使用,先通過CNN來進行高維特徵的提取,再使用RNN對時間相關性進行建模。儘管RNN在一些任務上表現很好,但是也存在一些問題,因爲RNN的長時依賴性,使得其很容易出現梯度消失的問題。同時,在GPU優化上也不如CNN,因此訓練速度通常會有些慢。

實際上,聲音相關的很多任務是序列到序列的轉換,而通常這些任務的複雜性比較大,傳統的方法是將其拆分成一個個的子任務進行處理。比如,語音識別是一個語音序列到文字序列的轉換過程,通常需要將其拆分成聲學,發音,語言建模等子任務。深度模型具有很強的建模能力(容量),很多研究關注於構建直接將輸入序列映射爲輸出序列的端到端模型,也就是目前的Sequence-to-Sequence模型。目前的大多數Sequence-to-Sequence模型都是基於CTC以及注意力機制的,比較有代表性的是Google提出的listen, attend and spell(LAS)模型。

另外,GAN在音頻信號處理上也有很多應用,比如語音增強的SEGAN,生成聲音的WaveNet以及一些聲源分離、音樂樂器轉換領域的GAN結構。

之前我們談到的大部分聲音特徵都是幅度譜或者幅度譜轉化的特徵。但是在有些領域中,聲音的相位譜也是一個很重要的特徵,比如聲音合成。實際上,相位譜可以通過Griffin-Lim算法來轉化,但是這些估計的相位不足以獲得很好的合成性能。換個思路,我們可以通過神經網絡對幅度譜和相位譜同時進行學習,也可以直接使用FFT的複數矩陣進行學習(Bengio在2017年提出過一個Deep Complex Networks),當然也可以直接對聲音序列進行學習。

數據

深度學習的表徵能力需要龐大的數據來支撐。對於聲音處理領域,語音相關的開源數據集很多,尤其是英文的;音樂相關的也有很多開源數據集,比如Million Song Dataset和MusicNet;環境聲相關的數據集最大的就是AudioSet了,超過200萬個音頻片段,但是基本都是Weakly-label的。因此,我們實際使用中,數據還是很有限的,尤其是對與環境聲來說。下面是我整理的關於語音、音樂和環境聲的大部分開源數據鏈接地址:

Speech Recognition : https://catalog.ldc.upenn.edu

Music Information Retrieval : https://labrosa.ee.columbia.edu/millionsong/

Environmental Sound Classification : http://www.cs.tut.fi/~heittolt/datasets

遷移學習是一個比較高效的方法,指的是在大數據集上進行模型預訓練,然後在目標領域進行微調適應。數據增強或者數據生成是另一個能夠解決或者緩解數據有限的問題的方法。數據增強主要是根據現有數據進行參數化的調整從而生成新的數據,典型的數據增強方法是Time Stretch和Pitch Shift,分別在時間維度和頻率維度進行操作。數據生成可以通過GAN或者自動編碼器等生成模型進行數據的生成。除此之外,還可以通過數據的混合以及對應標籤的混合來生成虛擬數據,提高模型魯棒性 [3]。


應用

語音識別

語音識別指的是將語音信號轉化爲文字序列,它是所有基於語音交互的基礎。對於語音識別而言,高斯混合模型(GMM)和馬爾科夫模型(HMM)曾佔據了幾十年的發展歷史。這些模型有很多優點,最重要的就是他們可以進行數學描述,研究人員可以有理有據的推導出適用某個方向的可行性辦法。大約在1990年左右,判別模型獲得了比基於最大似然估計的方法(GMM)更好的性能。尤其在2012年以後,深度學習在語音識別領域獲得了很大的發展,CNN,RNN,CRNN等結構在語音識別性能上取得了一次次的突破。隨着研究的深入,已經硬件設備的不斷更新,一些端到端模型取得了state of the art的性能,比較有代表性的是之前提到的sequence-to-sequence模型(CTC,LAS)。隨着語音識別性能的不斷提升,工業界也產出了很多應用成果,比如虛擬助手:Google Home, Amazon Alexa and Microsoft Cortana;語音轉錄:YouTube的字幕生成等。

音樂信息檢索

和語音不同,音樂通常包含很廣泛的聲源信息,並且在不同音樂源之間存在這複雜的依賴關係。音樂相關任務通常包含低級分析(起始和偏移檢測,基頻估計),節奏分析(節拍跟蹤,儀表識別,下拍跟蹤,速度估計),諧波分析(鍵檢測,旋律提取,和絃估計), 高級分析(樂器檢測,樂器分離,轉錄,結構分割,藝術家識別,類型分類,情緒分類)和高級比較(封面歌曲識別,音樂相似性估計,分數對齊)。上述這些任務通常通過人工設計算法,提取特徵並且關聯一個淺層的分類器。爲了增強模型表徵能力,獲得更好的性能,上述任務可以通過深度神經網絡單獨訓練或者聯合訓練。音樂相關的應用也很多,比如歌曲檢索,樂器檢索等。

環境聲識別

有關環境聲的任務主要有三類:聲音場景識別、聲音事件檢測和標註。其中,聲音場景分類就是將一段音頻預測爲某一個聲音類別,是經典的分類任務;聲音事件檢測主要評估一段聲音流某一類或者某幾類聲音在時間維度上的起始點和終止點;聲音標註和分類任務相似,主要是預測多個聲音類別的活動性,具體而言,給你一段聲音,讓你判斷這段聲音包含哪些聲音類別,這些判斷可能會包含更加細粒度的分類,比如判斷發動機聲音是汽車發動機還是摩托車發動機。環境聲相關的應用包括聲音監控,多媒體信息檢索,可穿戴設備等。

定位和跟蹤

利用多通道信號可以對聲源位置進行跟蹤和定位。跟蹤和定位的主要設備條件是麥克風陣列,通常包含線性陣列、環形陣列和球形陣列等。麥克風陣列採集的信號一般是多通道的(和陣元數量相關)。傳統定位方法可分爲基於到達時延、基於空間譜估計和基於波束成型的方法。比如,MUSIC算法是一種基於空間譜估計的定位算法,它通過計算不同通道的協方差矩陣,對協方差矩陣進行特徵分解,構造信號子空間和噪聲子空間,然後進行空間譜的構建,最後進行譜峯搜索,確定聲源位置。對於深度學習而言,是通過神經網絡學習輸入特徵到輸出聲源位置的一個映射關係。通常輸入特徵可以選擇幅度譜、相位譜以及相關矩陣等,網絡結構可視情況選擇MLP、CNN、CRNN等。定位和跟蹤相關的應用包括監控、智能家居、智能會議室等。

聲源分離

指的是在多聲源混合的信號中提取單一的目標聲源。主要應用在一些魯棒聲音識別的預處理以及音樂編輯和重譜。

聲音增強

通常爲語音增強,指的是通過減小噪聲來提高語音質量。主要技術是去噪自編碼器、CNN、RNN、GAN(SEGAN)等。

生成模型

根據數據集中的聲音屬性特徵來生成新的數據,要求這些數據不能和原始數據集一樣、要具有多樣性並且訓練和生成時間要很小,理想情況下是實時的。


總結和展望

特徵

MFCC是聲音處理領域最常見的聲音特徵,但是MFCC在深度模型中性能不是很好。log-mel spectrogram是目前基於深度模型的最常用的特徵,其次是複數譜和聲音序列。聲音序列避免了人工提取特徵的步驟,這應該充分利用深度模型的特徵學習能力,提取更強的表徵特徵。然而,直接使用聲音序列對於模型的訓練成本提出了更高的要求,另外對數據本身也有要求(其中一點就是數據量要大),在實際應用中也難以實現。實際上,目前大部分聲音相關的任務的最好的系統是基於log-mel spectrogram的。

作者也列舉了幾個開放的研究問題:

  • Mel spectrogram 是不是聲音相關任務中最好的特徵表示?
  • 什麼情況下使用聲音序列更好?
  • 是否可以通過帶有可學習參數的spectrogram使性能更好?
  • 如果我們從聲音序列中學習特徵,那麼這個特徵是不是在任務中能夠具有很好的泛化性?

模型

在語音識別、音樂信息檢索和環境聲識別領域中,深度學習都取代了傳統的方法。在這些領域中,CNN、RNN和CRNN都取得了很好的效果,但是哪一種更好沒有明確的定論。這兩種或者三種網絡根據其結構對輸入數據進行不同形式的建模,比如CNN主要是局部特徵的提取,RNN主要是時間維度相關性的學習,CRNN則是結合了兩個網絡的特徵。

關於模型的開放研究問題:

  • 在什麼設定下,哪一種網絡性能更好?

數據要求

除了語音識別領域,其他聲音相關的任務都面臨開放數據集小的問題。前面也提高過幾個數據集,比如環境聲的AudioSet,有200萬個聲音片段,但是這些聲音都是weakly label的,實際上很難使用。在計算機視覺領域,針對特定領域開放數據集小的問題,可以通過ImageNet預訓練模型,然後在目標領域進行適應性的調整。但是在聲音處理領域,這樣大型的預訓練數據集是沒有的。

數據方面的開放研究問題:

  • 音頻領域的等效問題是什麼?
  • 能否構建一個包含語音、音樂、環境聲的大型聲音數據集用於遷移學習,以解決很多領域的分類問題?
  • 預訓練模型如何使用少量數據適應新任務,比如新的語言、新的音樂風格、新的聲音場景等?

除此之外,在計算複雜度(成本)模型的可解釋性也應該得到更多的關注。


參考文獻

[1] A. Mohamed, G. Hinton, and G. Penn, “Understanding how Deep Belief Networks Perform Acoustic Modelling,” in ICASSP, 2012.

[2] C. Trabelsi, O. Bilaniuk, Y. Zhang, D. Serdyuk, S. Subramanian, J. F. Santos, S. Mehri, N. Rostamzadeh, Y. Bengio, and C. J. Pal, “Deep complex networks,” arXiv:1705.09792, 2017.

[3] Y. Tokozume, Y. Ushiku, and T. Harada, “Learning from between-class examples for deep sound recognition,” in ICLR, 2018.

[4] H. Purwins, B. Li, T. Virtanen, J. Schlüter, S. Chang, T. Sainath, "Deep learning for audio signal processing", arXiv:1905.00078, 2019.

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