魏子怡
(山東省濰坊第一中學,山東 濰坊 261000)
語音識別是為一門新興的交叉性學科,2011年8月微軟亞洲研究院通過引入DNN以后,語音識別準確率得到大幅提高,進入飛速發展時期。
語音識別最初發展時期采用語音模型的方法進行識別,已經能夠實現初步的說話內容識別。例如云知聲、百度(度秘)和蘋果(Siri)等均能實現語音層面的在線人機交互;語種識別與說話人識別技術也已提出,目前已投入使用。
語音識別領域已顯示出強勁的生命力,其中語音轉換技術仍處于科技前沿,是一項創新性的科研項目,本實驗將因子分解方法應用在此領域,可解開語言交流的神秘面紗,使生活發生翻天覆地的變化。
當下的音頻主要通過錄音軟件,以一定的頻率對模擬信號進行采樣、編碼,將模擬信號通過數模轉換器轉換為數字信號,并進行一定的壓縮后進行存儲,得到音頻的波形圖,而電腦無法對波形圖進行進一步的處理,必須轉成向量中的數值形式的信息才能進一步處理。因此,需要利用Kaldi工具,將波形圖轉化為聲譜圖,聲譜圖以熱圖的形式將時間、頻率、聲音強度(數值用顏色的深淺加以呈現)展現到矩陣當中。
神經網絡是利用計算機模擬人腦思考過程對事物進行聚類與分類的一種算法,電腦可以按照事先設定好的聚類與分類層對所輸入的事物進行分類。 神經網絡中單個節點的工作原理是將輸入數據與權重之積的和輸入給激活函數,判斷信息是否能在節點中繼續運行。
傳統的機器學習系統主要使用淺層神經網絡。當一個神經網絡擁有3層以上的系統時,就可成為深度神經網絡。人腦的認知過程是一個深度多層的復雜過程,每深入一層就多一層抽象,深度神經網絡使計算機能夠更精確地模擬人腦的深度思考過程。
從古到今人們為了更好地生存,產生了蘊含信息由少到多,表達清晰度由低到高的交流方式,其中口語更加多變——人體發聲時,因為聲道各部結構不同,導致音色因人而異;氣流通過聲道時也會因摩擦而產生噪聲,胸腔和頭部也會產生共振,對音色產生影響。
聲音無論怎樣千差萬別,總離不開個性音色、表達內容和情感3個要素,而因子分解的方法恰好將音頻分解為以上3部分。于是作者立即考慮到,因子分解方法的提出恰恰是為語音轉換領域提供了一個全新的思路,若將這一方法應用于此,將是語音識別領域的一大可賀突破。
身份識別技術廣泛地存在于生活中,例如:密碼登錄技術、中國三代身份證的指紋驗證技術、DNA檢測技術,以及虹膜識別技術等。語音蘊含著豐富的身份信息,相應的語音識別技術也迅速崛起,音頻加密方法逐漸被攻破。因此,針對語音識別技術的保密工作也應該得到重視。而通過語音轉換可實現說話人身份的更改,從而可以保障重要人員的人身安全。
目前市場上有很多變聲軟件,如騰訊QQ的變聲模塊以及手機魔音變聲,但方法簡單,變聲后的聲音失真,而且要想真正模擬一個人的音色很難實現。若成功實現語音轉換,換聲的設想就能實現,其娛樂色彩也就更加濃厚。
以往語音轉換的研究主要對音頻信號進行直接處理,例如改變音頻的播放速度,進而改變聲音頻率及波長;或通過改變聲音的相位與共振峰信息以及將音頻的高頻降低、低頻升高來改變音色。隨后發展出語音模型、頻譜彎曲與單元挑選的方法。但以上方法大都保留了音頻的完整性,未能深一層次地觸及語音的本質特點。
本實驗前期主要通過國內外期刊論文對關鍵技術的研究進展、理論基礎和現實背景進行了解,尋找獨特的研究視角來查找數據。最終,本論文借鑒了清華大學CSLT實驗室發表的一篇關于“語音信號關于因子分解”的文章。
將因子分解方法應用于語音轉換將帶來一個全新的視角。其透徹直觀地將音頻劃分為三大部分:能表達說話人特征的Peaker部分、傳達交流內容的Phone部分、與交流的語境相關的Emotion部分,只要將語音以以上三部分呈現,便可隨心所欲地轉換。如將說話人1的Speaker部分替換為說話人2的Speaker部分。
因子分解不僅可以實現身份的轉換,還可以進一步實現先前未曾有的內容轉換、情感轉換,其在語音轉換領域的應用是一個里程碑式的創新。
4.1.1 傅里葉變換(Fourier Transform簡稱FT)
當得到一個波形圖的函數表達式X(t)時,可通過傅里葉變換:

將頻域的頻譜圖的函數表達式X(f)表示成X(t)的積分的形式,從而得到頻譜圖。
若將頻譜圖函數表達式轉化回波形圖函數表達式,則需要用到傅里葉變換逆變換(Inverse Fourier Transform簡稱IFT):

4.1.2 短時傅里葉變換(STFT)
通過傅里葉變換得到的頻譜圖不具有時間軸,無法反映出音頻隨時間的變化,所以無法分析語音。欲得到音頻的變化與時間的關系,則需要使用短時傅里葉變換。
首先規定矩形窗口函數ω(t),ω(-t)=ω(t),在波形圖函數表達式上截取音頻,窗口函數可移動截取,移動后的窗口函數記為ω(t-τ),得到采樣信號x′(t,τ)=x(t)ω(t-τ).再對采樣信號進行傅里葉變換,得到此段波形圖函數表達式的頻譜圖。像這般對整個波形圖函數表達式進行小時段的分割,繼而進行傅里葉變換,成為短時傅里葉變換(圖1)。
隨后將采樣信號函數表達成積分形式

由于t與τ同樣可以表示出音頻隨時間的變化,于是將X(f,τ)中的τ替換為t,X(f,t)為時頻圖的函數表達式

再利用短時傅里葉變換逆變換

可將時頻圖函數表達式轉換為波形圖函數表達式。
4.1.3 深度神經網絡因子分解
利用Kaldi工具將波形圖轉化為聲譜圖后,需要利用深度神經網絡進行因子分解。
深度神經網絡進行因子分解時,識別出的Phone譜作為下一層的輸入信息,分離出的Speaker譜再與Phone譜一同作為輸入信息輸入,分理出Emotion譜。此圖中的ASR,SRE,AER分別是系統的簡化形式,ASR(automatic speech recognition)代表自動說話人識別系統,SRE(speaker recognition)代表說話人識別系統,AER(automatic emotion recognition)代表自動情感識別系統。
將分離的3個聲譜圖重新組合(圖2),利用公式In(x)=In{f(q)}+In{g(s)}+In{h(e)}+e,將三個譜相加得到新的譜,即可得到一個恢復的聲譜圖。

圖1 短時傅里葉變換(右下角為時頻圖)

圖2 深度神經網絡分離Phone、Speaker、Emotion譜
利用Kaldi工具將音頻文件轉換為聲譜圖,再利用深度神經網絡將其分離為Speaker譜、Phone譜和Emotion譜。
然后利用Python代碼提取語音信號的幅度譜和相位譜,在Python讀取Speaker1,Phone2 和Emotion2的數據,分別存檔于矩陣ss1,ss2和ss3,分別標記為metrix_speaker,metrix_phone和metrix_emotion,并將其和標記為metrix,即metrix=ss1+ss2+ss3,最后將其轉換為音頻文件。
本實驗探究了基于因子分解的語音轉換實驗。利用深度神經網絡分離出3個聲譜圖時,由于提取特征時丟掉了一些無關特征,這樣影響到還原的音頻有一定的雜音,其中的權值參數或許仍需進一步進行調整,但本次試驗的整體效果比較理想,創新性地將新方法應用到了語音轉換領域。
除此之外,本實驗將3個譜重組時,Speaker譜與Phone譜有一定的粘連關系,特征與說話人1還是說話人2有關主要與Phone譜來自說話人1還是2有關,為解決該問題,接下來需要再多做幾組實驗,調節其中的一些參數,進而達到一個完美的效果。
作為因子分解方法的創新性應用實驗,本實驗結果非常可觀。雖然仍有需要改進之處,但是本實驗走出了語音識別領域的突破性的一步,結果的優化目前來看只是時間問題。接下來需要做的是通過深度學習繼續調整實驗中的參數,重復幾組不同的實驗:如相同性別的說話人、情緒相近的說話人等,挑戰細微差別下的語音轉換。