卓嘎+邊巴旺堆
摘 要: 目前藏語語音基音檢測(cè)算法相關(guān)研究較少,藏語語音基音檢測(cè)是藏語語音處理過程中的重要環(huán)節(jié),其準(zhǔn)確性直接影響到系統(tǒng)的性能。介紹中心消波和自相關(guān)函數(shù)的算法原理及基音檢測(cè)算法,設(shè)計(jì)藏語語音基音檢測(cè)流程,利用Matlab進(jìn)行編程和仿真。通過實(shí)驗(yàn)表明該算法結(jié)構(gòu)簡單、運(yùn)算量小,結(jié)果較準(zhǔn)確,可用于信噪比較低環(huán)境下藏語語音輔音的基音估值檢測(cè)。
關(guān)鍵詞:基音檢測(cè); 藏語語音; 自相關(guān)算法; Matlab
中圖分類號(hào): TN911?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)10?0020?03
0 引 言
語音信號(hào)處理是一門交叉學(xué)科,研究內(nèi)容涉及到各種語言的語音與計(jì)算機(jī)處理技術(shù)、數(shù)字信號(hào)處理等很多知識(shí),是目前很熱門的研究領(lǐng)域。這門技術(shù)對(duì)藏語言的語音合成、語音識(shí)別、語音壓縮編碼和語音分析具有重要意義?;魴z測(cè)作為藏語語音處理的關(guān)鍵環(huán)節(jié)直接影響整個(gè)語音處理系統(tǒng)的性能[1]。
基音檢測(cè)是根據(jù)濁音語音的周期性進(jìn)行周期或頻率的估算,目前基音頻率算法有很多種,但是還沒有一種適合各種語音環(huán)境的統(tǒng)一算法[2?5]。本文采用中心消波和自相關(guān)函數(shù)相結(jié)合的算法,通過Matlab編程實(shí)現(xiàn)了藏語語音基音的估算。自相關(guān)函數(shù)算法是利用濁音語音信號(hào)的準(zhǔn)周期性和出現(xiàn)的最大值,提取自相關(guān)函數(shù)的第一個(gè)峰值點(diǎn)的位置進(jìn)行頻率估算[6]。
1 中心消波自相關(guān)函數(shù)算法
1.1 語音短時(shí)自相關(guān)函數(shù)
語音信號(hào)中,濁音波形具有一定的周期性,通過自相關(guān)函數(shù)計(jì)算,其波形在時(shí)域上具有較好的相似性[7?8],周期信號(hào)的特點(diǎn)是:對(duì)于確定的信號(hào),具有對(duì)稱性和最大值,在某個(gè)周期內(nèi)對(duì)應(yīng)周期值取樣點(diǎn)上的自相關(guān)函數(shù)值最大,相鄰最大值間的距離為估算的基音周期,以此來估計(jì)周期信號(hào)的周期值。因此,可以根據(jù)語音信號(hào)短時(shí)穩(wěn)定性的特點(diǎn),采用短時(shí)自相關(guān)函數(shù)進(jìn)行語音基音頻率估值計(jì)算,其計(jì)算公式如下:
[Rnk=m=-∞+∞xmxm-khkn-m]
式中:x為離散語音序列,序列x(m)x(m-k)經(jīng)過一個(gè)沖激響應(yīng)為hk(n-m)的數(shù)字濾波器濾波得到短時(shí)自相關(guān)函數(shù)Rn(k)。
1.2 中心消波
根據(jù)自相關(guān)函數(shù)的特點(diǎn),語音的短時(shí)自相關(guān)波形是周期性的波形圖,但是只有少數(shù)的波峰反映了基音周期,因此,在進(jìn)行基音頻率估算前可以采用中心消波算法進(jìn)行適當(dāng)?shù)男畔嚎s,突出基音周期信息。中心消波法[9?10]就是將語音信號(hào)的序列電平先進(jìn)行60%~70%的消波,在進(jìn)行自相關(guān)計(jì)算,其公式如下:
[fx=x-xL, x>xL0, -xL≤x≤xLx+xL, x 式中:xL為消波電平;f(x)分為消波后的語音序列。通過中心消波后的語音序列經(jīng)自相關(guān)函數(shù)計(jì)算后其波形的基音峰值更加尖銳,可以降低倍頻或半頻錯(cuò)誤。 2 Matlab算法設(shè)計(jì) 中心消波自相關(guān)函數(shù)基音頻率估值流程圖如圖1所示,由7大部分組成: (1) 原始語音:提取一段藏語語音。 (2) 提取合適的濁音語音段:語音信號(hào)中只有濁音具有周期性,因此對(duì)提取的語音段要進(jìn)行濁音提取,本程序中用人工方式將一段藏語語音段的濁音部分用wavread函數(shù)提取出來。 (3) 預(yù)處理:為選取的語音進(jìn)行預(yù)加重處理,加重高頻部分,去除輻射影響,用x1=filter([1-0.937 5],1,x1)實(shí)現(xiàn),提高語音的高頻分辨率。 (4) 分幀加窗:根據(jù)語音的短時(shí)穩(wěn)定性對(duì)預(yù)處理后的語音進(jìn)行分幀加窗,在Matlab中用Enframe函數(shù)可以實(shí)現(xiàn)不同窗函數(shù)的分幀。 (5) 中心消波:本流程里設(shè)定的中心消波電平為語音最大幅值的70%。 (6) 自相關(guān)函數(shù)計(jì)算:對(duì)中心消波后的語音序列進(jìn)行自相關(guān)計(jì)算。 (7) 基音頻率估值:根據(jù)語音自相關(guān)函數(shù)波形的周期性,提取其最大值的位置n,計(jì)算[nfs]獲得基音周期或頻率[11?12]。在實(shí)際的仿真中發(fā)現(xiàn)由于第一個(gè)峰值點(diǎn)滯后,對(duì)n值進(jìn)行一定的處理。 圖1 中心消波自相關(guān)函數(shù)基音檢測(cè)流程圖 3 基音檢測(cè)及Matlab仿真 Matlab仿真程序包括兩個(gè)部分,首先在主程序里讀取藏語語音信號(hào),提取濁音信號(hào),然后進(jìn)行預(yù)處理和分幀,其代碼如下: clear all; [x1,fs,nbits]=wavread(′d:\waves\tb1?4.wav′,[26800 40000]); x1=filter([1?0.9375],1,x1); N=1764;step=110; x2=enframe(x1,boxcar(N),step); x=x2(1,:); xwin_one(x,1,fs); 其次,調(diào)用一個(gè)自定義的xwin_one.m函數(shù),其功能是對(duì)上述處理過的語音信號(hào)進(jìn)行中心消波、自相關(guān)函數(shù)計(jì)算、基音頻率估算和仿真繪圖,代碼內(nèi)容如下: function y=xwin_one(x,a,fs) L=length(x); m1=max(x);n1=min(x); m=m1(1);n=n1(1); for i=1:L %歸一化取出的x樣點(diǎn) x(i)=x(i)/m; end figure(1); subplot(2,1,a);plot(x,′k′);title(′矩形窗語音波形′);xlabel(′樣點(diǎn)數(shù)′);ylabel(′幅度′);
%進(jìn)行x的中心消波和繪圖
coeff=0.7;
th0=m*coeff;
for k=1:L
if x(k)> th0
x(k)=x(k)?th0;
elseif x(k)<=(?th0)
x(k)=x(k)+th0;
else
x(k)=0;
end
end
mm=max(x);
m=mm(1);
for i=1:L
x(i)=x(i)/m;
end
%計(jì)算和繪制中心消波之后的自相關(guān)函數(shù)計(jì)算
for k=1:L
summ=0;
for m=1:L?k+1
summ=summ+x(m)*x(m+k?1);
end
W(k)=summ;
end
p=W(10:L);
[Rmax Rn]=max(p)
Rn=Rn+10
Tc=Rn/fs %中心消波之后基音周期
Fc=1/Tc
figure(1);
subplot(2,1,a+1);plot(W);title(′矩形窗中心消波自相關(guān)函數(shù)′);xlabel(′延時(shí)k′);ylabel(′R(k)′)
仿真結(jié)果如圖2所示,實(shí)驗(yàn)中提取了藏語輔音“
圖2 中心消波自相關(guān)函數(shù)基音頻率估算仿真圖
4 結(jié) 語
基音頻率是藏語語音處理技術(shù)中重要的表征參數(shù),精確估算基音頻率對(duì)分析藏語語音信息具有重要意義。本文用中心消波自相關(guān)函數(shù)算法進(jìn)行藏語語音的基音檢測(cè),結(jié)果表明該算法結(jié)構(gòu)簡單、運(yùn)算量小,結(jié)果較準(zhǔn)確,可用于藏語語音輔音的基音估值檢測(cè)。但是對(duì)于藏語單音節(jié)、雙音節(jié)、多音節(jié)的基音檢測(cè)是否可用該算法有待進(jìn)一步研究。
參考文獻(xiàn)
[1] 李積遜.藏語語音基音周期檢測(cè)[J].青海師范大學(xué)學(xué)報(bào):自然科學(xué)版,2008(4):42?44.
[2] 趙祎,張盛,林孝康.一種改進(jìn)的基音周期提取算法[J].數(shù)據(jù)采集與處理,2014(2):304?308.
[3] 馬莎莎,戴曙光,穆平安.基于短時(shí)能量的循環(huán)AMDF基音檢測(cè)算法[J].計(jì)算機(jī)仿真,2014,31(7):278?282.
[4] 駱?gòu)善G,孫祥娥.基于Matlab的基音檢測(cè)分析[J].電腦知識(shí)與技術(shù),2014(18):4293?4295.
[5] 焦蓓.語音信號(hào)的基音檢測(cè)法研究[D].湘潭:湘潭大學(xué),2013.
[6] 沈瑜,黨建武,王陽萍,等.加權(quán)短時(shí)自相關(guān)函數(shù)的基音周期估計(jì)算法[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(35):1?6.
[7] 馬效敏,鄭文思,陳琪.自相關(guān)基頻提取算法的Matlab實(shí)現(xiàn)[J].西北民族大學(xué)學(xué)報(bào):自然科學(xué)版,2010,31(4):54?58.
[8] 蔡萍.基于短時(shí)平均幅度差函數(shù)的帶噪語音端點(diǎn)檢測(cè)算法[J].河南工程學(xué)院學(xué)報(bào):自然科學(xué)版,2014,26(3):26?29.
[9] 劉何來.低信噪比下語音頻率參數(shù)估計(jì)[D].荊州:長江大學(xué),2013.
[10] 孫燕,姜占才.中心消波自相關(guān)法語音基音檢測(cè)[J].青海師范大學(xué)學(xué)報(bào):自然科學(xué)版,2009(2):32?35.
[11] KANG Guang?yu, GUO Shi?ze. Improving AMDF for pitch period detection [C]// Proceedings of 2009 9th International Conference on Electronic Measurement & Instruments. Beijing: IEEE Beijing Section & Chinese Institute of Electronics, 2009, 4: 283?286.
[12] GUO Hai?yan, SHAO Xi. An improved phase?space voicing?state classification for co?channel speech based on pitch detection [C]// Proceedings of 2008 9th International Conference on Signal Processing. Beijing: IEEE Beijing Section, 2008: 680?683.