• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DSP嵌入式說話人識別系統(tǒng)的設(shè)計與實現(xiàn)

    DSP嵌入式說話人識別系統(tǒng)的設(shè)計與實現(xiàn)

    作者: 時間:2009-12-28 來源:網(wǎng)絡(luò) 收藏

    語音處理采用TI公司的TMS320C6713芯片,該芯片浮點運(yùn)算,最高時鐘頻率225 MHz,使用該芯片外部存儲器接口可對外部存儲器(SDRAM)數(shù)據(jù)傳輸和程序存儲器(FLASH ROM)進(jìn)行程序讀寫;依靠JTAG接口電路通過仿真器進(jìn)行仿真調(diào)試,與主機(jī)數(shù)據(jù)交換;通過片內(nèi)外設(shè)McBSP完成串行數(shù)據(jù)的接收和發(fā)送,實現(xiàn)對音頻處理模塊的控制等工作。
    FLASH ROM最大可提供512 KB空間,通常為前256 KB可用。SDRAM最大容量為16 MB,為該提供較大的數(shù)據(jù)存儲空間。CPLD為存儲器的擴(kuò)展實現(xiàn)邏輯編碼。電源為TPS54310芯片,可為提供3.3 V和1.26 V兩種電壓。
    1.2 選擇
    要訓(xùn)練10個人的語音,每個人的語音存放在FLASH ROM的不同位置。在訓(xùn)練的開始階段,系統(tǒng)需確定當(dāng)前訓(xùn)練者的身份,以便對訓(xùn)練完成后者模型參數(shù)存儲位置有準(zhǔn)確的判斷。對當(dāng)前訓(xùn)練者身份的選擇由系統(tǒng)中的4個Switch實現(xiàn)。若把每個Switch的開關(guān)兩種狀態(tài)看成是二進(jìn)制數(shù)的0,1,則最終可形成16種組合,代表16個人。該系統(tǒng)選取前10個組合。
    1.3 AIC23語音采集
    考慮到系統(tǒng)的實用性,語音的輸入由mic in接口輸入。語音采集若設(shè)為雙聲道,則采集的左右聲道數(shù)據(jù)差別不大,對沒有太大的幫助,而且采集到的語音會占用太大存儲器空間,故采用單聲道采樣;對于采樣精度要求,TLV320AIC23可實現(xiàn)8~96 kHz,16 b,20 b,24 b,32 b,的不同采樣,隨著采樣頻率的提高,采樣間隔將相應(yīng)的縮短,要求更大的內(nèi)存空間和更長的處理時間,實驗表明,采樣率由16 kHz下降到8 kHz,所造成的率的微乎其微,但是可以節(jié)省50%的動態(tài)存儲空間,并可減少大量的運(yùn)算。對于采樣位數(shù),16 b精度已能滿足該系統(tǒng)要求,故采樣精度設(shè)為8 kHz,16 b采樣。
    1.4 數(shù)據(jù)的存儲
    由TLV320AIC23獲得的語音信號的數(shù)據(jù),只有賦值給相應(yīng)的數(shù)組,才能在接下來的算法中有所應(yīng)用。為此在SDRAM中定義一片數(shù)組存儲區(qū)域。對于數(shù)組大小及類型的選擇基于以下兩點:
    (1)數(shù)組大小選擇。該系統(tǒng)算法中包含訓(xùn)練和兩個內(nèi)容。語音信號的訓(xùn)練需要大量的數(shù)據(jù)才能準(zhǔn)確的提取語音的特征參量。該系統(tǒng)采用8 kHz采樣率的10 s的語音信號,所需的數(shù)組空間大小為80 000個數(shù)據(jù)單位;語音信號的識別要求快速性,該系統(tǒng)采用時間較短的8 kHz 3 s語音信號,所需數(shù)組空間大小為30 000個數(shù)據(jù)單位,為了減少數(shù)據(jù)空間,系統(tǒng)設(shè)定為與訓(xùn)練數(shù)組共用前30 000個數(shù)據(jù)單位的空間。
    (2)數(shù)組類型為浮點型,由于設(shè)定的采樣格式是16 b采樣,而采樣后數(shù)據(jù)類型是Uint32,語音數(shù)據(jù)位于低16位,所以賦值過程中取低16位數(shù)據(jù)賦值給數(shù)組。
    1.5 模型參數(shù)存入與參數(shù)調(diào)出
    將模型參數(shù)存入FLASH ROM的目的是保存訓(xùn)練所得的參數(shù),以供識別時調(diào)用。訓(xùn)練可能用于多次識別,或者訓(xùn)練和識別可能處于不同的時間地點,所以,保存參數(shù)的存儲器選定為具有掉電時數(shù)據(jù)不丟失特點的FLASH ROM。每個者語音參數(shù)代表一個說話者身份,所以每個說話者模型參數(shù)應(yīng)存儲在FLASHROM中一個確定的位置。為此,該系統(tǒng)在FLASHROM中分配了10塊的區(qū)域,每個說話者模型參數(shù)占有一塊特定的區(qū)域。
    在FLASH ROM中存人數(shù)據(jù)格式為32 b無符號整數(shù)。而訓(xùn)練得到的是浮點型的數(shù)據(jù)。這就要求在數(shù)據(jù)存入之前將浮點數(shù)轉(zhuǎn)換為32 b無符號類型的整數(shù),假設(shè)要轉(zhuǎn)換的數(shù)據(jù)為float x[M][N]則轉(zhuǎn)換方法如下:
    (1)x[M][N]歸一化;
    (2)對x[M][N]乘以一常數(shù)K得到有符號整型的數(shù)組y[M][N],即:
    y[M][N]=x[M][N]×K (1)
    (3)屏蔽第32位符號位,得到32 b無符號類型的整數(shù)數(shù)組。方法如下:
    z[i][j]=y[i][j]0x7FFFFFFF (2)
    (4)將z[i][j]存入FLASH ROM。
    通過統(tǒng)計實驗數(shù)據(jù)發(fā)現(xiàn)歸一化后數(shù)據(jù)的范圍為10-5~1,故K選擇為108,既可以實現(xiàn)較大精度的轉(zhuǎn)化,又不會影響第31位的數(shù)值。轉(zhuǎn)換得到的有符號整型數(shù)組y[M][N]范圍為-108~108,在存儲器中正數(shù)為原碼表示,負(fù)數(shù)為補(bǔ)碼表示,通過計算發(fā)現(xiàn),該范圍的正數(shù)第31位為0,負(fù)數(shù)第31位為1,所以,上述第(3)步,將有符號數(shù)轉(zhuǎn)換為無符號數(shù)后,數(shù)值的正負(fù)改為使用第31位標(biāo)識。在識別階段,要將說話者的GMM參數(shù)依次從FLASH ROM中讀出,逐個與待識別者語音的MFCC參數(shù)比較,求最大似然值。參數(shù)調(diào)出過程與以上存入過程相反。
    linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 乌苏市| 淮南市| 南宁市| 临汾市| 景泰县| 常德市| 仁化县| 拉萨市| 读书| 犍为县| 白城市| 蒙城县| 论坛| 格尔木市| 富蕴县| 柏乡县| 古浪县| 涟源市| 文山县| 西华县| 乡城县| 恭城| 义乌市| 东兰县| 湖南省| 梧州市| 翁源县| 舞阳县| 罗甸县| 五家渠市| 吴川市| 淮阳县| 玛纳斯县| 巴里| 寿阳县| 岗巴县| 兴城市| 伊金霍洛旗| 民乐县| 临江市| 普安县|