卓嘎+邊巴旺堆
摘 要: 目前藏語語音基音檢測算法相關研究較少,藏語語音基音檢測是藏語語音處理過程中的重要環節,其準確性直接影響到系統的性能。介紹中心消波和自相關函數的算法原理及基音檢測算法,設計藏語語音基音檢測流程,利用Matlab進行編程和仿真。通過實驗表明該算法結構簡單、運算量小,結果較準確,可用于信噪比較低環境下藏語語音輔音的基音估值檢測。
關鍵詞:基音檢測; 藏語語音; 自相關算法; Matlab
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2015)10?0020?03
0 引 言
語音信號處理是一門交叉學科,研究內容涉及到各種語言的語音與計算機處理技術、數字信號處理等很多知識,是目前很熱門的研究領域。這門技術對藏語言的語音合成、語音識別、語音壓縮編碼和語音分析具有重要意義?;魴z測作為藏語語音處理的關鍵環節直接影響整個語音處理系統的性能[1]。
基音檢測是根據濁音語音的周期性進行周期或頻率的估算,目前基音頻率算法有很多種,但是還沒有一種適合各種語音環境的統一算法[2?5]。本文采用中心消波和自相關函數相結合的算法,通過Matlab編程實現了藏語語音基音的估算。自相關函數算法是利用濁音語音信號的準周期性和出現的最大值,提取自相關函數的第一個峰值點的位置進行頻率估算[6]。
1 中心消波自相關函數算法
1.1 語音短時自相關函數
語音信號中,濁音波形具有一定的周期性,通過自相關函數計算,其波形在時域上具有較好的相似性[7?8],周期信號的特點是:對于確定的信號,具有對稱性和最大值,在某個周期內對應周期值取樣點上的自相關函數值最大,相鄰最大值間的距離為估算的基音周期,以此來估計周期信號的周期值。因此,可以根據語音信號短時穩定性的特點,采用短時自相關函數進行語音基音頻率估值計算,其計算公式如下:
[Rnk=m=-∞+∞xmxm-khkn-m]
式中:x為離散語音序列,序列x(m)x(m-k)經過一個沖激響應為hk(n-m)的數字濾波器濾波得到短時自相關函數Rn(k)。
1.2 中心消波
根據自相關函數的特點,語音的短時自相關波形是周期性的波形圖,但是只有少數的波峰反映了基音周期,因此,在進行基音頻率估算前可以采用中心消波算法進行適當的信息壓縮,突出基音周期信息。中心消波法[9?10]就是將語音信號的序列電平先進行60%~70%的消波,在進行自相關計算,其公式如下:
[fx=x-xL, x>xL0, -xL≤x≤xLx+xL, x 式中:xL為消波電平;f(x)分為消波后的語音序列。通過中心消波后的語音序列經自相關函數計算后其波形的基音峰值更加尖銳,可以降低倍頻或半頻錯誤。 2 Matlab算法設計 中心消波自相關函數基音頻率估值流程圖如圖1所示,由7大部分組成: (1) 原始語音:提取一段藏語語音。 (2) 提取合適的濁音語音段:語音信號中只有濁音具有周期性,因此對提取的語音段要進行濁音提取,本程序中用人工方式將一段藏語語音段的濁音部分用wavread函數提取出來。 (3) 預處理:為選取的語音進行預加重處理,加重高頻部分,去除輻射影響,用x1=filter([1-0.937 5],1,x1)實現,提高語音的高頻分辨率。 (4) 分幀加窗:根據語音的短時穩定性對預處理后的語音進行分幀加窗,在Matlab中用Enframe函數可以實現不同窗函數的分幀。 (5) 中心消波:本流程里設定的中心消波電平為語音最大幅值的70%。 (6) 自相關函數計算:對中心消波后的語音序列進行自相關計算。 (7) 基音頻率估值:根據語音自相關函數波形的周期性,提取其最大值的位置n,計算[nfs]獲得基音周期或頻率[11?12]。在實際的仿真中發現由于第一個峰值點滯后,對n值進行一定的處理。 圖1 中心消波自相關函數基音檢測流程圖 3 基音檢測及Matlab仿真 Matlab仿真程序包括兩個部分,首先在主程序里讀取藏語語音信號,提取濁音信號,然后進行預處理和分幀,其代碼如下: 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); 其次,調用一個自定義的xwin_one.m函數,其功能是對上述處理過的語音信號進行中心消波、自相關函數計算、基音頻率估算和仿真繪圖,代碼內容如下: 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樣點 x(i)=x(i)/m; end figure(1); subplot(2,1,a);plot(x,′k′);title(′矩形窗語音波形′);xlabel(′樣點數′);ylabel(′幅度′);
%進行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
%計算和繪制中心消波之后的自相關函數計算
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(′矩形窗中心消波自相關函數′);xlabel(′延時k′);ylabel(′R(k)′)
仿真結果如圖2所示,實驗中提取了藏語輔音“
圖2 中心消波自相關函數基音頻率估算仿真圖
4 結 語
基音頻率是藏語語音處理技術中重要的表征參數,精確估算基音頻率對分析藏語語音信息具有重要意義。本文用中心消波自相關函數算法進行藏語語音的基音檢測,結果表明該算法結構簡單、運算量小,結果較準確,可用于藏語語音輔音的基音估值檢測。但是對于藏語單音節、雙音節、多音節的基音檢測是否可用該算法有待進一步研究。
參考文獻
[1] 李積遜.藏語語音基音周期檢測[J].青海師范大學學報:自然科學版,2008(4):42?44.
[2] 趙祎,張盛,林孝康.一種改進的基音周期提取算法[J].數據采集與處理,2014(2):304?308.
[3] 馬莎莎,戴曙光,穆平安.基于短時能量的循環AMDF基音檢測算法[J].計算機仿真,2014,31(7):278?282.
[4] 駱嬌艷,孫祥娥.基于Matlab的基音檢測分析[J].電腦知識與技術,2014(18):4293?4295.
[5] 焦蓓.語音信號的基音檢測法研究[D].湘潭:湘潭大學,2013.
[6] 沈瑜,黨建武,王陽萍,等.加權短時自相關函數的基音周期估計算法[J].計算機工程與應用,2012,48(35):1?6.
[7] 馬效敏,鄭文思,陳琪.自相關基頻提取算法的Matlab實現[J].西北民族大學學報:自然科學版,2010,31(4):54?58.
[8] 蔡萍.基于短時平均幅度差函數的帶噪語音端點檢測算法[J].河南工程學院學報:自然科學版,2014,26(3):26?29.
[9] 劉何來.低信噪比下語音頻率參數估計[D].荊州:長江大學,2013.
[10] 孫燕,姜占才.中心消波自相關法語音基音檢測[J].青海師范大學學報:自然科學版,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.