基于小波變換和自相關(guān)函數(shù)的基音頻率檢測算法
0 引言
基音周期(Pitch)是指發(fā)濁音時聲帶振動所引起的周期運動的時間間隔,而基音頻率是基音周期的倒數(shù)。由于基音周期只具有準周期性,所有只能采用短時平均方法估計該周期,這個過程也稱為基音檢測(Pitch De—tection)。在對說話人確認和辨認研究中,基音頻率是一個重要的參數(shù),因此準確檢測基音頻率有著十分重要的意義。
到目前為止,基音檢測的方法主要有短時自相關(guān)函數(shù)法、平均幅度差函數(shù)法、倒譜解卷積法、Hil—be;t—Huang變換法等。但尚未找到一個完善的可以適用于不同語音狀況和環(huán)境的基音檢測算法。近幾年,小波分析理論發(fā)展迅速。它已經(jīng)被廣泛地應(yīng)用到信號處理中。這里利用小波變換的濾波特性對信號進行預(yù)處理,然后利用自相關(guān)函數(shù)法檢測語音的基音頻率,該方法利用小波濾波特性有效剔除了高頻共振峰和噪音的影響,估計基音頻率準確性高,穩(wěn)定性好,運算速度較快。實驗結(jié)果表明,此方法是一種有效的基音頻率檢測算法。
1 小波變換及其濾波特征
在多分辨分析中,塔式正交分解L。(R)空間:
對ν f∈L (R),設(shè)f在Vj上的投影系數(shù)為Cj,k,在wj上的投影系數(shù)為Dj,k(j=J,J一1,…,一J),于是,f有以下分解式:
在式(2)中,第一和式在小波空間中,它表示信號的細節(jié)部分(即高頻部分),Dj,k就是對應(yīng)于小波函數(shù)φj,k的小波系數(shù);第二和式在尺度空間中(即低頻部分),它反映了信號的本征部分,C-j,k就是對應(yīng)于尺度函數(shù)φ-j,k的尺度系數(shù)。
這里語音信號使用的采樣頻率是11 025 Hz,因此原始語音信號頻帶為0~5 512.5 Hz,如圖1所示,原始語音信號s2d0f占據(jù)頻帶為0~5 512.5 Hz,經(jīng)小波濾波器組濾波后,Sd23f占據(jù)頻帶0~689 Hz,S爭f就是需要的低頻信號,因為語音基音頻率變化范圍從老年男性的50 Hz到兒童和女性的450 Hz,所以這部分的信號將用于估計語音的基音頻率。
2 自相關(guān)函數(shù)估計基音周期
經(jīng)過小波變換后得到低頻語音信號記為:as,用長度為36 ms的矩陣窗對語音信號as進行分幀,記第i幀信號為Fi;定義Fi的自相關(guān)函數(shù)(ACF)R(k)為:
其中:N是幀F(xiàn)i的長度;k=0,1,…,N一1;mod是取模運算。
自相關(guān)函數(shù)在基音頻率的整數(shù)倍位置上出現(xiàn)峰值,通過檢測其峰值的位置就可以提取基音頻率值,通常取第一極大值點為基音頻率點。如圖2所示,圖中顯示某一幀采樣頻率fs=11025 Hz語音信號的自相關(guān)函數(shù)曲線,曲線的第一個峰值點x=74,y=4.342,則可以計算出該幀的基音頻率廠fb=fs/74=148.9 Hz。
自相關(guān)函數(shù)估計語音基音頻率一般使用矩形窗,窗長至少大于2個基音周期,語音最小基音頻率為60 Hz,即16.7 ms,所以窗長使用36 ms是合適的。當單獨使用自相關(guān)函數(shù)估計基音頻率時,易受共振峰和噪音的影響,如圖3所示,語音信號在小波變換前的自相關(guān)函數(shù)曲線不平滑,給檢測其峰值點造成困難;圖2就是語音信號在小波變換后的自相關(guān)函數(shù)曲線,曲線平滑,容易檢測其峰值點。
[!--empirenews.page--]
3 算法流程圖
算法過程如下:
(1)采集語音信號。人的語音信號頻率都在6 kHz以內(nèi),根據(jù)Nyqtfist采樣定理,fs=11 025 Hz。把采集得到的語音信號記為X;
(2)基音頻率變化范圍大,從老年男性的50 Hz到兒童和女性的450 Hz。因此使用小波變換進行濾波時,要把50~500 Hz的語音信號加強,把高于500 Hz的語音信號減弱,以去除共振峰和高頻噪音的影響;
(3)同一個人在不同情態(tài)下發(fā)音的基音周期也不同,加之基音周期還受單詞發(fā)音音調(diào)的影響,因此基音檢測實際上是估計短時語音的平均周期。采用L點的矩形窗來截取信號,進行短時分析,一般取窗口的長度為36 ms,幀重疊18 ms;
(4)利用自相關(guān)函數(shù)估計第i幀語音信號的基音
周期fpi。若fpi的頻率范圍超出了[60 Hz,500 Hz],則判斷該幀為清音幀,聲帶不振動,fpi,置為O Hz。
算法流程圖如圖4所示:
4 實 驗
首先通過一個真實的語音數(shù)據(jù)來說明第3節(jié)算法的有效性,然后將其與傳統(tǒng)的自相關(guān)函數(shù)法的結(jié)果進行比較。
在圖5中,圖5(a)為作者(男性)讀“馬到成功”的語音信號波形,fs=1l 025 Hz,用普通麥克風(fēng)在自然環(huán)境下錄制,時長為2 s。選擇db4小波基,對原始語音信號進行二進小波變換,取小波變換后第三層的低頻部分信號,該低頻信號如圖5(b)所示。用幀長為36 ms的矩形窗把圖5(a)中原始信號分成165幀,并用自相關(guān)函數(shù)估計每一幀的基音頻率,基音頻率的變化曲線如圖5(c)所示。同樣地把圖5(b)中經(jīng)小波變換后所得的低頻語音信號分成165幀,然后用自相關(guān)函數(shù)估計每一幀的基音頻率,基音頻率的變化曲線如圖5(d)所示。[!--empirenews.page--]
從圖5(c)可以看到,用自相關(guān)函數(shù)法在A,B,C三幀判斷錯誤,使基音頻率軌跡估計值偏離了正常的軌跡(通常偏離到正常值的2倍或1/2倍),這就是基音軌跡的“野點”。圖5(d)是文中提出的算法的計算結(jié)果,很好地去除了這些野點,提高了檢測的準確率。
5 結(jié) 語
自相關(guān)函數(shù)法是一種簡單,計算速度快的基音頻率估計算法。但該方法易受噪音和共振峰的影響,為了提高自相關(guān)函數(shù)法檢測基音頻率的準確性,在此使用小波變換對語音信號進行預(yù)處理,一定程度上消除了高頻噪音和共振峰的影響,能夠準確反映語音段中基音頻率的變化,得到比較真實的基音頻率曲線。
傳統(tǒng)的小波變換的基頻檢測,通過對語音信號進行3個連續(xù)尺度上的小波變換,比較相鄰兩尺度下的極值點位置是否一致,來確定聲門閉合時刻,進而求得基音頻率。由于需要進行多次小波變換及極值搜索和判定,計算量大,實時性不好。這里只需要在固定的尺度下做1次小波變換,然后用自相關(guān)函數(shù)法檢測基音頻率,計算量小,實時性較好。