<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 一款語音口令識別系統(tǒng)的設計實現(xiàn)

          一款語音口令識別系統(tǒng)的設計實現(xiàn)

          作者: 時間:2014-03-17 來源:網(wǎng)絡 收藏

          引言

          本文引用地址:http://www.ex-cimer.com/article/234840.htm

          隨著計算機技術和信息技術的迅速發(fā)展,語音口令識別已經(jīng)成為了人機交互的一個重要方式之一。語音口令識別系統(tǒng)將根據(jù)人發(fā)出的聲音、音節(jié)或短語給出響應,如通過語音口令控制一些執(zhí)行機構、控制家用電器的運行或做出回答等。在數(shù)字信號處理芯片上已經(jīng)實現(xiàn)了語音口令識別系統(tǒng)或語音口令識別系統(tǒng)的部分功能,然而隨著嵌入式微處理器處理能力的大幅度提高,計算量大的語音口令識別算法已經(jīng)能夠通過嵌入式微處理器來完成,將語音口令識別系統(tǒng)與相結合,發(fā)揮系統(tǒng)的潛力,使系統(tǒng)能夠廣泛應用于便攜式設備中。

          采用隱馬爾克夫模型(Hidden Markov MODEL,HMM) 描述語音信號的非平穩(wěn)性和局部平穩(wěn)性,HMM中的狀態(tài)與語音信號的某個平穩(wěn)段相對應,平穩(wěn)段之間以轉移概率相聯(lián)系。由于HMM建模對語音信號長度和模型的混合度的要求都比較低,因此在現(xiàn)有的非特定人語音口令識別系統(tǒng)中,多采用狀態(tài)輸出具有連續(xù)概率分布的連續(xù)隱馬爾可夫模型(ConTInuous Density Hidden Markov MODEL,CDHMM)。

          論文給出一種基于的語音口令識別系統(tǒng)的設計方案,硬件系統(tǒng)的核心芯片是嵌入式微處理器,語音口令識別算法采用CDHMM。語音口令首先經(jīng)過預處理,提取MFCC(Mel-Frequency Ceptral Coefficients)特征參數(shù),然后建立此口令的CDHMM模型,把所有語音口令的模型放在模型庫中,在識別階段,通過概率輸出*分,取*分最大的一個作為識別出的口令。將系統(tǒng)與相結合,可以使語音口令識別系統(tǒng)廣泛應用于便攜式設備中。

          1 硬件電路的設計和工作原理

          基于嵌入式系統(tǒng)的語音口令識別系統(tǒng)需要有接收語音信號的輸入芯片配合麥克風實現(xiàn)將模擬語音信號轉換成數(shù)字信號的功能,然后由嵌入式微處理器對輸入的語音口令信號進行處理。完成語音口令信號輸入功能的芯片采用的是PHILIPS公司的低功耗芯片UDAl341TS,供電電源電壓為3V,該音頻處理芯片由模數(shù)/數(shù)模轉換(ADC)、控制邏輯電路、可編程增益放大器(PGA)和數(shù)字自動增益控制器(DAGC)以及數(shù)字信號處理器等部分組成,能進行數(shù)字語音處理。

          芯片UDAl341TS采用標準的內(nèi)部集成電路聲音總線IIS(Inter IC Sound Bus),該總線是由PHILIPS等公司共同提出的數(shù)字音頻總線協(xié)議,專門用于音頻設備之間的數(shù)據(jù)傳輸,目前很多音頻芯片和微處理器都提供了對IIS總線的支持。

          IIS總線有三根信號線,分別是位時鐘信號BCK(Bit Clock)、字選擇控制信號WS(Word Select)和串行數(shù)據(jù)信號Data,由主設備提供串行時鐘信號和字選擇控制信號,IIS總線的時序如圖1所示。

          ?

          ?

          WS也稱為幀時鐘信號,該信號的電平為低電平時,傳輸?shù)妮斎胍纛l數(shù)據(jù)信號是左聲道的音頻數(shù)據(jù)信號;信號WS的電平為高電平時,傳輸?shù)妮斎胍纛l數(shù)據(jù)信號是右聲道的音頻數(shù)據(jù)信號。BCK對應著輸入音頻數(shù)據(jù)信號的每一位音頻數(shù)據(jù),其頻率為2×采樣頻率×每個采樣值的位數(shù)。

          與BCK同步的串行音頻數(shù)據(jù)信號采用補碼的形式傳輸,傳輸順序是高位先傳輸。IIS總線格式的信號無論有多少位有效數(shù)據(jù),數(shù)據(jù)的最高位MSB總是出現(xiàn)在WS信號改變(也就是傳輸一幀數(shù)據(jù)信號開始)后的第2個串行數(shù)據(jù)信號SCLK脈沖位置。

          通過上述IIS總線能夠得到輸入的音頻數(shù)據(jù)信號,而其它的信號如自動增益控制、輸入數(shù)據(jù)格式的選擇和輸入增益的控制等控制信號通過稱為“L3” 形式的接口總線傳輸。為了減少引腳數(shù)和保持連線簡單,該接口總線采用串行數(shù)據(jù)傳輸方式,接口總線由3條信號線組成:時分復用的數(shù)據(jù)通道線L3DATA、模式控制線L3MODE和時鐘信號線L3CLOCK。模式控制線L3MODE為低電平時的傳輸模式為地址傳輸模式;為高電平時的傳輸模式為數(shù)據(jù)傳輸模式。

          語音口令識別系統(tǒng)的硬件電路的核心芯片是嵌入式微處理器Samsung S3C2440 AL,主頻為400MHz。三星公司推出的RISC微處理器S3C2440 AL具有低功耗、高性能等特點,可以廣泛應用于便攜式設備中。

          S3C2440AL具有一個IIS總線音頻編碼/解碼接口,語音口令識別系統(tǒng)的硬件電路如圖 2所示。其IIS總線控制器通過5根信號線與UDAl34lTS編解碼芯片相連。這些5根信號線分別是:系統(tǒng)時鐘信號CDCLK:位時鐘信號I2- SSCLK;字選擇控制信號I2SLRCK;串行數(shù)據(jù)輸入信號I2SSDI;串行數(shù)據(jù)輸出信號I2SDO。S3C2440 AL使用L3接口傳輸其他(如自動增益控制、輸入數(shù)據(jù)格式的選擇和輸入增益的控制等)控制信號。為了使系統(tǒng)間能夠更好地同步,S3C2440AL需要向芯片UDAl341TS提供CDCLK,該時鐘信號的頻率可以選擇采樣頻率的256倍、384倍或512倍。

          ?

          ?

          2 基于CDHMM的口令識別的軟件設計

          2.1 口令識別的軟件系統(tǒng)框圖

          語音口令識別的軟件系統(tǒng)分別由特征參數(shù)提取、語音模型庫和概率輸出*分三大模塊組成,如圖3所示:1)語音口令特征參數(shù)的提取,輸入不同的語音口令,首先要進行特征參數(shù)提取,采用Mel頻率參數(shù)作為CDHMM的建模參數(shù),Mel頻率參數(shù)是根據(jù)人耳的聽覺特性將語音信號的頻譜轉化為基于Mel頻率的非線性頻譜,然后轉換到倒譜域上。2)在訓練階段,對不同的語音口令建立CDHMM模型。3)在口令識別階段,通過概率輸出*分對待測語音口令做出識別。

          ?

          ?

          語音口令首先經(jīng)過預處理,提取MFCC特征參數(shù),然后建立此口令的CDHMM模型,把所有語音口令的模型放在模型庫中,在識別階段,通過概率輸出*分,取*分最大的一個作為識別出的口令。

          2.2 CDHMM算法

          HMM是一種雙重隨機過程,用概率統(tǒng)計的方法描述語音信號的產(chǎn)生及變化過程。HMM的模型參數(shù)為λ=(N,M,π,A,B),其中,N為模型中馬爾克夫鏈的狀態(tài)數(shù)目;M為每個狀態(tài)對應的可能的觀察數(shù)目;π為初始狀態(tài)概率矢量,π=(π1,…,πN);A為狀態(tài)轉移矩陣,A=(aij)N*N;B 為觀察概率矩陣,B=(bjk)N*N。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();