• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    MatLab環(huán)境下調(diào)用HTK的連續(xù)語音識(shí)別方法

    2014-12-31 00:00:00李理王冬霞
    電子世界 2014年20期

    【摘要】本文根據(jù)HTK(HMM Toolkit)的基本原理,在MatLab環(huán)境下通過調(diào)用HTK各命令實(shí)現(xiàn)小詞匯量連續(xù)語音識(shí)別。采用HTK工具包搭建語音的隱馬爾可夫模型(HMM),再利用MatLab循環(huán)編程開發(fā)進(jìn)行仿真實(shí)驗(yàn),避免了傳統(tǒng)地逐步運(yùn)行HTK各個(gè)命令的冗余操作,降低了操作復(fù)雜度。

    【關(guān)鍵詞】HTK;語音識(shí)別;隱馬爾可夫模型

    Abstract:According to the basic principle of HTK(HMM Toolkit),small vocabulary continuous speech was recognized based on HTK by MatLab programming in this thesis.This thesis used HTK to build HMM model and then used MatLab to program it to do speech recognition,thus it avoided the redundancy of operating single HTK command,and the complexity was reduced.as well.

    Key words:HTK;Speech Recognition;Hidden Markov Model

    一、引言

    語言是交流的最自然方式,它為人機(jī)交互提供了一種有效的方法。但目前人與機(jī)器的交互方式多以鍵盤和鼠標(biāo)為主,為了讓機(jī)器與人能夠更好地進(jìn)行交互,出現(xiàn)了基于語音識(shí)別的系統(tǒng)使人機(jī)對(duì)話成為可能。語音識(shí)別就是讓計(jì)算機(jī)通過識(shí)別和理解把人類的語音信號(hào)轉(zhuǎn)換為相應(yīng)的命令或者文本的一門技術(shù)。

    HTK(HMM ToolKit)[1][2]工具包是英國(guó)劍橋大學(xué)專門開發(fā)用于建立和處理隱馬爾可夫模型的實(shí)驗(yàn)工具包,廣泛應(yīng)用在語音識(shí)別領(lǐng)域,在語音合成和字符識(shí)別等其他領(lǐng)域也有所應(yīng)用。本文在MatLab平臺(tái)上利用HTK設(shè)計(jì)和建立了小詞匯量連續(xù)語音識(shí)別的實(shí)驗(yàn)平臺(tái)。

    二、HTK的介紹

    (一)HTK的基本原理

    HTK工具包有四個(gè)主要工具包:語音數(shù)據(jù)準(zhǔn)備,HMM訓(xùn)練工具,識(shí)別工具,數(shù)據(jù)分析工具。

    數(shù)據(jù)準(zhǔn)備工具:用Adobe Audition錄音軟件采集語音信號(hào),再完成建立語料庫,語法定義,字典定義,標(biāo)注數(shù)據(jù),提取特征等過程。語法定義是以特定的文法結(jié)構(gòu)對(duì)發(fā)音詞匯進(jìn)行限制生成符合發(fā)音語法的語句,用命令HParse和HBuild來實(shí)現(xiàn)。字典定義可根據(jù)實(shí)際要求來定義結(jié)構(gòu),如音素,音節(jié)等。本文采用無調(diào)音節(jié)對(duì)連續(xù)漢語進(jìn)行識(shí)別[3]。數(shù)據(jù)標(biāo)注利用命令HLEd來實(shí)現(xiàn)。特征參數(shù)利用HCopy來提取。常用的特征參數(shù)有線性預(yù)測(cè)系數(shù)(LPC)和梅爾頻率倒譜系數(shù)(MFCC)[4]。

    HMM訓(xùn)練工具:HMM訓(xùn)練在語音識(shí)別系統(tǒng)的搭建過程中發(fā)揮著重要作用,它的主要目的是訓(xùn)練得到HMM模型。本文使用命令HCompv估計(jì)出初始模型函數(shù)以及HERest重估參數(shù),從而完成單無調(diào)音節(jié)HMM模型的創(chuàng)建和訓(xùn)練。針對(duì)小詞匯量連續(xù)語音的音節(jié)存在上下文相關(guān)的關(guān)系,本文創(chuàng)建了三音子HMM模型對(duì)模型進(jìn)行訓(xùn)練和優(yōu)化,進(jìn)而提高了語音識(shí)別率。

    識(shí)別工具:命令HVite用于識(shí)別未知語音,該命令的算法是基于維特比算法。

    數(shù)據(jù)分析工具:命令HResults用于識(shí)別結(jié)果的分析。

    (二)音節(jié)模型訓(xùn)練

    本文首先建立了基于無調(diào)單音節(jié)的HMM模型[5],HMM使用從左到右無跳轉(zhuǎn)的結(jié)構(gòu),結(jié)構(gòu)如圖1所示。音節(jié)模型包括5個(gè)狀態(tài),即1個(gè)開始狀態(tài),3個(gè)發(fā)射狀態(tài)和1個(gè)結(jié)束狀態(tài)。

    為了與基于單音節(jié)的聲學(xué)模型訓(xùn)練方法相比較,本文創(chuàng)建了基于聲韻母的三音子HMM模型。三音子HMM模型也是采用從左到右的結(jié)構(gòu),音節(jié)模型狀態(tài)數(shù)也是5。三音子模型以單音節(jié)作為初始,再進(jìn)行重估。通過命令HLEd、HHEd、HERest等來實(shí)現(xiàn)三音子模型的建立。根據(jù)Baum Welch對(duì)三音子模型進(jìn)行訓(xùn)練時(shí),需要根據(jù)經(jīng)驗(yàn)設(shè)置一個(gè)閾值。當(dāng)模型對(duì)應(yīng)的樣本數(shù)大于閾值時(shí),訓(xùn)練后模型參數(shù)根據(jù)訓(xùn)練結(jié)果改變模型參數(shù);當(dāng)模型對(duì)應(yīng)的樣本數(shù)小于閾值時(shí),訓(xùn)練后的模型參數(shù)仍為初始的參數(shù)。閾值大小的設(shè)置會(huì)影響語音識(shí)別率的高低。

    圖1 HMM的拓?fù)浣Y(jié)構(gòu)

    三、HTK的調(diào)用

    Matlab調(diào)用HTK各命令可以通過dos語句或者system語句以及用MatLab語言編寫出HTK各命令運(yùn)行時(shí)所需的參數(shù)的得以實(shí)現(xiàn)。例如生成HTK可用的語音識(shí)別網(wǎng)絡(luò),Matlab語句可以表示為dos('Hparse %s output\\digit.net',htkParam.grammarFile),其中Hparse為HTK中生成識(shí)別網(wǎng)絡(luò)的命令,%s代表調(diào)用htkParam.grammarFile文件,該文件是事先定義好的語法文件,即漢語無調(diào)音節(jié)的集總。digit.net為生成的識(shí)別網(wǎng)絡(luò),生成后將保存在output文件夾下。

    Matlab調(diào)用HTK各命令的部分代碼如下:

    if printOpt,

    fprintf(‘ I.2:無調(diào)單音節(jié)的列表的生成 %s\n’,htkParam.phoneMlfFile);

    end

    fid = fopen('output\mkphones0.led','w');

    fprintf (fid,'EX\r\nIS sil sil\r\nDE sp\r\n');

    fclose (fid);

    cmd = sprintf('HLEd -l * -d %s -i output\\phones0.mlf output\\mkphones0.led

    %s',htkParam.pamFile,htkParam.sylMlfFile);

    dos(cmd);

    fid = fopen ('output\mkphones1.led','w');

    fprintf (fid,'EX\r\nIS sil sil\r\n');

    fclose (fid);

    cmd = sprintf ('HLEd -l * -d %s -i output\\phones1.mlf output\\mkphones1.led

    %s',htkParam.pamFile,htkParam.sylMlfFile);

    dos (cmd);

    該代碼的含義是首先建立mkphones0.led文件,并寫入內(nèi)容(腳本的最后一行須編輯為空行)

    EX

    IS sil sil

    DE sp

    通過調(diào)用HLEd命令生成無調(diào)音節(jié)列表,保存為phones0.mlf文件。

    同樣地,建立mkphones1.led文件,并寫入內(nèi)容

    EX

    IS sil sil

    通過調(diào)用HLEd命令生成無調(diào)音節(jié)列表,保存為phones1.mlf文件。生成的phones0.mlf和phones1.mlf區(qū)別在于后者的每個(gè)音節(jié)后面添加sp作為短暫的停頓。

    通過MatLab編程調(diào)用HTK各命令及設(shè)置HMM模型參數(shù)完成語音的訓(xùn)練和識(shí)別[6]。

    四、仿真實(shí)驗(yàn)

    測(cè)試在安靜的實(shí)驗(yàn)環(huán)境下進(jìn)行,采用CoolEdit Pro錄音軟件,采樣率為16KHz,量化為16bits。測(cè)試人員共十人,五男五女,分別來自不同省份,使用略帶各地方言的普通話。測(cè)試語音共50句,內(nèi)容為數(shù)字0~9隨機(jī)組成的數(shù)字串。

    實(shí)驗(yàn)1:提取特征參數(shù)時(shí)分別采用線性預(yù)測(cè)系數(shù)(LPC)和梅爾頻率倒譜系數(shù)(MFCC)的語音識(shí)別率比較。識(shí)別結(jié)果如表1所示。

    表1 不同特征參數(shù)的識(shí)別率(%)

    特征參數(shù) 識(shí)別率

    LPC 82.24

    MFCC 85.84

    分析表1可知,采用梅爾頻率倒譜系數(shù)進(jìn)行特征參數(shù)的提取時(shí)語音識(shí)別率比采用線性預(yù)測(cè)系數(shù)時(shí)的識(shí)別率高3.6%。因此,本文特征參數(shù)采用梅爾頻率倒譜系數(shù)。

    實(shí)驗(yàn)2:采用單音節(jié)模型建模與三音子模型建模時(shí)語音識(shí)別率的比較。識(shí)別結(jié)果如表2所示。Corr為詞的識(shí)別正確率,Acc為詞的識(shí)別準(zhǔn)確率,Correct指句子的識(shí)別正確率。

    表2 不同模型類型的識(shí)別率(%)

    模型類型 Corr Acc Correct

    單音節(jié)模型 78.24 76.49 54.55

    三音子模型 86.84 84.84 68.23

    分析表2可知,單音節(jié)模型的識(shí)別率要低于三音子模型,這是因?yàn)槿糇幽P涂紤]了音節(jié)間存在的協(xié)同發(fā)音的現(xiàn)象,優(yōu)化了HMM模型參數(shù),因此改善了語音識(shí)別率。

    實(shí)驗(yàn)3:HMM訓(xùn)練過程中設(shè)置不同閾值時(shí)的語音識(shí)別率比較。識(shí)別結(jié)果如表3所示。

    表3 不同閾值的識(shí)別率(%)

    閾值 50 100 150 200 300 500

    識(shí)別率 83.49 85.84 86.71 86.65 86.84 85.07

    分析表3可知,當(dāng)閾值較低時(shí),訓(xùn)練樣本數(shù)較少的模型也會(huì)繼續(xù)進(jìn)行下一步的訓(xùn)練,然而這些模型的訓(xùn)練樣本不足以使模型得到足夠的訓(xùn)練,這時(shí)并不能優(yōu)化模型的參數(shù);當(dāng)閾值為300時(shí),識(shí)別率最高;當(dāng)閾值繼續(xù)增加,部分模型的訓(xùn)練樣本可以使模型得到充分的訓(xùn)練,但是因?yàn)闃颖緮?shù)低于設(shè)定閾值而不能使模型得到優(yōu)化,因此此時(shí)識(shí)別率反而會(huì)有所下降。

    五、結(jié)束語

    本文利用MatLab語音處理工具箱結(jié)合HTK各命令實(shí)現(xiàn)了小詞匯量連續(xù)語音的識(shí)別。在實(shí)驗(yàn)中由于使用HTK各命令做每次循環(huán)實(shí)驗(yàn)操作比較復(fù)雜,利用MatLab循環(huán)編程調(diào)用HTK各命令避免了逐步操作的復(fù)雜度,有效地減少了操作步驟,降低了工作的冗余度。

    參考文獻(xiàn)

    [1]Steven.Young,G.Evermann,M.Gales.The HTK Book(for HTK Version 3.4)[M].Cambridge University Engineering Department,2009.

    [2]Kuldeep Kumar,R.K.Aggarwal.Hindi Speech Recognition System Using HTK[J].International Journal of Computing and Business Research,2011,2(2):1-12.

    [3]韓紀(jì)慶.語音信號(hào)處理[M].北京:清華大學(xué)出版社,2013.

    [4]趙力.語音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2010.

    [5]L.R.Rabiner.A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition[J].Proceedings of IEEE,1989,77(2):257-286.

    [6]張戈,嚴(yán)歡.基于HTK調(diào)用MatLab的語音識(shí)別的研究[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2010(09).

    作者簡(jiǎn)介:李理(1991—),女,湖南婁底人,碩士研究生在讀,主要研究方向:語音信號(hào)處理。

    西宁市| 秦皇岛市| 清远市| 疏附县| 滕州市| 黄梅县| 黑龙江省| 广饶县| 蒙城县| 龙州县| 诸暨市| 台州市| 泉州市| 太康县| 财经| 紫云| 图木舒克市| 大庆市| 舟山市| 静海县| 永年县| 军事| 微山县| 监利县| 梧州市| 陇川县| 环江| 丹棱县| 枝江市| 斗六市| 荥经县| 阜南县| 天津市| 雷山县| 万年县| 南通市| 平谷区| 桃源县| 新宾| 天长市| 九江市|