木合塔爾·沙地克,布合力齊姑麗·瓦斯力, 李 曉
(1. 新疆教育管理信息中心,新疆 烏魯木齊 830049; 2. 新疆教育學(xué)院 數(shù)學(xué)學(xué)院,新疆 烏魯木齊 830043; 3. 中國科學(xué)院 新疆理化技術(shù)研究所,新疆 烏魯木齊 830011)
面向維吾爾語關(guān)鍵詞檢索的等寬切詞算法和基于清濁音結(jié)構(gòu)的切詞算法實現(xiàn)與對比分析
木合塔爾·沙地克1,布合力齊姑麗·瓦斯力2, 李 曉3
(1. 新疆教育管理信息中心,新疆 烏魯木齊 830049; 2. 新疆教育學(xué)院 數(shù)學(xué)學(xué)院,新疆 烏魯木齊 830043; 3. 中國科學(xué)院 新疆理化技術(shù)研究所,新疆 烏魯木齊 830011)
該文提出了面向維吾爾語關(guān)鍵詞檢索的兩種切詞算法,并給出MATLAB實現(xiàn)的算法代碼及詳細(xì)說明;在同等條件下對兩種算法的切詞效果和關(guān)鍵詞識別效率進(jìn)行對比分析;提出兩種算法的優(yōu)化方法和構(gòu)想。
維吾爾語;敏感詞檢索;切詞;廣播新聞
維吾爾語屬于阿爾泰語突厥語族,其語言特點與漢語大不相同,因為維吾爾語是黏著語言,而漢語不是。現(xiàn)代維吾爾語有32個音素(每個音素用一個字母來表示),其中八個元音均為濁音,24個輔音中,14個音素為濁音,10個音素為清音[1]。我們在“維吾爾語廣播新聞敏感詞檢索系統(tǒng)的研究”[2]中,對維吾爾語音素進(jìn)行聲學(xué)特征分析,提出面向維吾爾語敏感詞檢索的兩種切詞算法:等寬切詞算法和基于維吾爾語單詞清濁音結(jié)構(gòu)的(不等寬)切詞算法。這兩種算法均可用于維吾爾語關(guān)鍵詞檢索。
等寬切詞算法基本思想來源于分幀原理,即以敏感詞長度(采樣點)為詞長,以幀長為詞移,對廣播新聞?wù)Z音文件進(jìn)行單詞切分,如圖1所示。
基于清濁音結(jié)構(gòu)的切詞算法基本原理是:根據(jù)敏感詞清濁音結(jié)構(gòu),以敏感詞音素數(shù)為詞長,以音素為詞移,對廣播新聞?wù)Z音文件進(jìn)行單詞切分,不符敏感詞清濁音結(jié)構(gòu)的語音段視為垃圾語音,如圖2所示(圖左:敏感詞清濁音波形,圖右:有效切詞結(jié)果)。
本文分析所用的語音文件和敏感詞均來自于新疆人民廣播電臺新疆新聞在線維吾爾語網(wǎng)站“新聞60分”節(jié)目的不同的語音段。語音文件內(nèi)容為kiyin ot ?chüriwilindi,其時長:1.366秒,采樣點:10 931,頻率: 8 000,位數(shù): 16,單聲道;敏感詞內(nèi)容為ot,其時長:0.15秒,采樣點:1 201,其他參數(shù)與上面語音文件一致。算法詞長:1 201,詞移:200。
圖1 等寬單詞切分算法示意圖
圖2 基于清濁音結(jié)構(gòu)的切詞算法示意圖
本文首先分別對兩種算法切詞結(jié)果進(jìn)行分析,然后對兩種算法關(guān)鍵詞檢索結(jié)果進(jìn)行對比研究,最后提出優(yōu)化思路。
等寬切詞是用可移動的有限長度窗口進(jìn)行加權(quán)的方法實現(xiàn)的,就是用一定的窗函數(shù)w(n)來乘s(n),從而形成加窗語音信號[3]。窗函數(shù)w(n)的選擇(形狀和長度),對語音識別的影響很大,為此應(yīng)選擇合適的窗,使其參數(shù)更好地反映語音信號的變化特性。設(shè)該加權(quán)方法用T[]表示,它可以是線性的或非線性的,可以是時不變的或者時變的,所有切詞語音段經(jīng)處理后便可以得到時間序列,用Qn表示[3],如式(1)所示。
(1)
本文用矩形窗來進(jìn)行單詞切分:
下面是等寬切詞算法Matlab實現(xiàn)代碼及詳細(xì)說明[4-7]。
function dkseg(x,nt,deltaN);
%等寬切詞算法
%x——廣播新聞?wù)Z音文件
%nt——關(guān)鍵詞長度
%deltaN——詞移
nx=length(x); % --- 取廣播新聞?wù)Z音長度
j=1;
for i=1:deltaN:nx % --- 切詞
a=i; % --- 確定切詞起始點
b=i+nt; % --- 確定切詞終止點
if b>nx
b=nx;
end
seg=x(a:b); % --- 切詞語音片段
filename=[′seg_′ int2str(j)]; % --- 保存名稱
save(filename,′seg′,′-ASCII′, ′-double′); % --- 存儲切詞語音片段
test.case{j}=filename; % --- 結(jié)構(gòu)數(shù)組中存放切詞語音片段名稱
test.begin{j}=int2str(a); % --- 結(jié)構(gòu)數(shù)組中存放切詞起始點信息
test.end{j}=int2str(b); % --- 結(jié)構(gòu)數(shù)組中存放切詞終止點信息
if b==nx
test.info=int2str(j);
break;
end
j=j+1;
end
save(′seg_test′,′test′); % --- 存儲切詞語音片段結(jié)構(gòu)數(shù)組
該算法將語音文件等分重疊的50個單詞,運(yùn)行所用時間為0.12秒左右,圖3是語音文件波形(第一行)和用等寬切詞算法對語音文件進(jìn)行切詞的前八個單詞的波形圖(第二、三行)。
圖3 等寬切詞算法切詞結(jié)果圖(前八個單詞)
圖3中可以看到,第一個單詞區(qū)間為1~1 200,第二單詞區(qū)間為200~1 400,第三單詞區(qū)間為400~1 600等,是連續(xù)重疊的等寬語音塊。等寬切詞算法切詞數(shù)多,基本覆蓋所有語音,提供足夠的候選,提高正識率,反而會增加存儲空間的開銷并所需檢索時間較長。
基于清濁音結(jié)構(gòu)的切詞算法是基于幀的統(tǒng)計,即是一組多元高斯分布X=[x1,x2,x3,x4,x5],其五個參數(shù)分別為x1:語音信號短時能量;x2:語音信號短時過零率;x3:單位采樣延遲的短時自相關(guān)系數(shù);x4:p階線性預(yù)測的第一個預(yù)測系數(shù);x5:p階線性預(yù)測的預(yù)測誤差歸一化能量。X被稱為特征向量,用于基于幀的清、濁音檢測。五個參數(shù)是根據(jù)它們區(qū)分清、濁音的能力來確定的[8-10]。下面是基于清濁音的切詞算法Matlab實現(xiàn)代碼及詳細(xì)說明[4-7]。
function vuseg(x, nt , m_mgcvu, N)
%基于清濁音的切詞算法
%x——廣播新聞?wù)Z音文件
%nt——關(guān)鍵詞長度
% m_mgcvu——關(guān)鍵詞清濁音結(jié)構(gòu)
%N——幀長
Sx=voiunvoi(x,N,0.1,0.3);
m_dian=[0];
m_lenSx=length(Sx);
for i=1:m_lenSx-1
if Sx(i) ~= Sx(i+1)
m_dian=[m_dian, i]; %轉(zhuǎn)折終點下標(biāo)
end
end
m_dian=[m_dian, m_lenSx]; %轉(zhuǎn)折終點下標(biāo)
m_phoneme=[];
m_lenDian=length(m_dian);
for i=2:m_lenDian
m_phoneme=[m_phoneme Sx(m_dian(i))];
end
if m_phoneme(1) == m_mgcvu(1)
m_start=1;
else
m_start=2;
end
delete(′seg_*.*′);
m_loop=0;
m_lenMgcvu=length(m_mgcvu);
m_lenPhoneme=length(m_phoneme);
m_lenPercent1=round(nt /2); %容錯下線
m_lenPercent2=round(nt * 2); %容錯上線
clear test;
for i=m_start:2:m_lenPhoneme
m_begin=m_dian(i)+1;
if i+m_lenMgcvu > m_lenDian
break;
else
m_end=m_dian(i+m_lenMgcvu);
end
%如果切詞長度小于或大于關(guān)鍵詞長度50%視為垃圾語音
if m_end - m_begin < m_lenPercent1 || m_end - m_begin > m_lenPercent2
continue;
end
m_loop=m_loop+1;
seg=x(m_begin:m_end);
filename=[′seg_′ int2str(m_loop)]; % --- 保存名稱
save(filename,′seg′,′-ASCII′, ′-double′); % --- 存儲切詞語音片段
test.case{m_loop}=filename; % --- 結(jié)構(gòu)數(shù)組中存放切詞語音片段名稱
test.begin{m_loop}=int2str(m_begin); % --- 結(jié)構(gòu)數(shù)組中存放切詞起始點信息
test.end{m_loop}=int2str(m_end); % --- 結(jié)構(gòu)數(shù)組中存放切詞終止點信息
end
test.info=int2str(m_loop);
save(′seg_test′,′test′); % --- 存儲切詞語音片段結(jié)構(gòu)數(shù)組
該算法將語音文件分為三個有效單詞(若不考慮敏感詞清濁音結(jié)構(gòu)和敏感詞長度比例限制條件,可分為12個單詞,其中九個單詞清濁音結(jié)構(gòu)不符要求或切詞長度小于敏感詞長度的50%,把它們視為垃圾語音),所用時間為0.016秒左右。圖4是語音文件波形(第一行)和用基于清濁音結(jié)構(gòu)的切詞算法對語音文件進(jìn)行切詞的三個單詞的波形圖(第二行)。
圖4中可以看到,第一個單詞區(qū)間為502~2 409,第二單詞區(qū)間為2 410~4 774,第三單詞區(qū)間為6 153~10 931,是不連續(xù)、不重疊、不等寬的語音塊?;谇鍧嵋艚Y(jié)構(gòu)的切詞算法切詞數(shù)少,占用空間小,提高檢索速度,但忽略的垃圾語音較多,可選的候選有限,反而提高誤警率。
圖4 基于清濁音結(jié)構(gòu)的切詞算法切詞結(jié)果圖
從切詞角度對比,基于清濁音結(jié)構(gòu)的切詞算法運(yùn)行速度比等寬切詞算法快7~8倍,切詞數(shù)量小16~17倍。同等條件下兩種算法切詞結(jié)果對比,如表1所示。
表1 同等條件下兩種算法切詞結(jié)果對比
從實際檢索結(jié)果來看,等寬切詞算法檢索所用時間為6秒左右,基于清濁音結(jié)構(gòu)的切詞算法檢索所用時間1秒多一點。等寬切詞算法的正確率遠(yuǎn)遠(yuǎn)高于基于清濁音結(jié)構(gòu)的切詞算法,這也符合我們預(yù)先估計的結(jié)果。
基于清濁音結(jié)構(gòu)的切詞算法的關(guān)鍵是關(guān)鍵詞清濁音結(jié)構(gòu)的確定。如果關(guān)鍵詞清濁音組成結(jié)構(gòu)均勻,即清濁音交替出現(xiàn),其識別效率比等寬切詞算法高;如果關(guān)鍵詞清濁音組成結(jié)構(gòu)不均勻,其正確率低于等寬切詞算法。另外,在基于清濁音結(jié)構(gòu)的切詞算法中,我們把維吾爾語音素粗分清濁音兩種,其實維吾爾語音素可分為:塞音、擦音、鼻音、邊音、擅音等[1-2, 8]。如果算法充分考慮這些特征因素,將會提高算法識別效率。
用加窗函數(shù)對信號進(jìn)行等寬切詞實際上是用一個窗截取信號。本文等寬切詞算法用的加窗函數(shù)為矩形窗。因兩個信號的時域相乘,在頻域相卷積,矩形窗頻譜高頻成分將影響語音信號的高頻部分[3]。一般在語音識別的前端處理中,用高頻分量幅度較小的窗形,以避免這些影響。如漢明(Hamming)窗的帶寬是矩形窗的兩倍,但帶外衰減卻比矩形窗大得多。根據(jù)切詞處理的要求,以不影響或減少影響處理需要的語音特性為標(biāo)準(zhǔn)來選擇窗形較為適宜。如果我們選用漢明窗來進(jìn)行單詞切分,也許會提高算法效率。
[1] 哈力克·尼亞孜. 基礎(chǔ)維吾爾語[M], 新疆大學(xué)出版社.
[2] 木合塔爾·沙地克. 維吾爾語廣播新聞敏感詞檢索系統(tǒng)的研究[D].中國科學(xué)院大學(xué):新疆理化技術(shù)研究所, 2013.
[3] 王炳錫,屈丹,彭煊等.實用語音識別基礎(chǔ).北京:國防工業(yè)出版社,2005.
[4] Thierry Dutoit , Ferran Marqu'es. Applied Signal Processing A MATLABTM Based Proof of Concept[M]. Springer Science Business Media, LLC 2009.
[5] 張雪英, 數(shù)字語音處理及MATLAB仿真[M], 電子工業(yè)出版社, 2010.
[6] Brian Hahn, Dan Valentine. Essential Matlab For Engineers and Scientists[M]. Academic Press, 2010.
[7] 史峰,鄭森,陳冰等. MATLAB函數(shù)速查手冊[M]. 中國鐵道出版社, 2011.
[8] 木合塔爾·沙地克, 布合力齊姑麗·瓦斯力, 李曉. 基于維吾爾語單詞清、濁音組成結(jié)構(gòu)特征的連續(xù)語音單詞切分算法[J]. 西北師范大學(xué)學(xué)報(自然科學(xué)版), 已錄用.
[9] John R Deller, Jr., John H L. Hansen, John G Proakis. Discrete-Time Processing of Speech Signals[M]. IEEE Press, NY 2000.
[10] Lawrence R Rabiner, Ronald W Schafer. Theory and Applications of Digital Speech Processing[M]. Publishing House of Electronics Industry, 2011.
Implementation and Comparative Analyses of Mono-space Based and Voiced/Unvoiced Phoneme Based Word Segmentation of Uyghur for Keyword Search
Muhetaer Shadike1, Buheliqiguli Wasili2, LI Xiao3
(1. Xinjiang Education Management Information Center, Urumchi, Xinjiang 830049, China; 2. Xinjiang Education Institute, Urumchi,Xinjiang 830043,China; 3. Xinjiang Institute of Physics & Chemistry CAS, Urumchi, Xinjiang 830011, China)
In this paper we introduce two word segmentation methods for Uyghur key word search. They are realized in MATLAB code, and their performances are investigated on the same condition. At last gives some idea for optimizations.
Uyghur; sensitive word spotting; word segmentation; broadcast news
木合塔爾·沙地克(1973—),博士,主要研究領(lǐng)域為多語種文字語音識別技術(shù)。E?mail:muhtar_xjedu@163.com布合力齊姑麗·瓦斯力(1981—),碩士,主要研究領(lǐng)域為概率論與數(shù)理統(tǒng)計、數(shù)學(xué)模型等。E?mail:2397300750@qq.com李曉(1957—),研究員,博士生導(dǎo)師,主要研究領(lǐng)域為民族語言文字信息處理和識別。E?mail:xiaoli@ms.xjb.a(chǎn)c.cn
1003-0077(2016)02-0207-06
2013-10-17 定稿日期: 2014-04-10
新疆自治區(qū)高校科研計劃項目(XJEDU2012S46);新疆多語種信息技術(shù)重點實驗室項目(049807)
TP391
A