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