《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于TMS320C6678的語(yǔ)種識(shí)別并行算法設(shè)計(jì)與實(shí)現(xiàn)
基于TMS320C6678的語(yǔ)種識(shí)別并行算法設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2012年第10期
吉立新,劉偉偉,李邵梅
國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南 鄭州450002
摘要: 針對(duì)語(yǔ)種識(shí)別在實(shí)際應(yīng)用中的實(shí)時(shí)性需求,在分析語(yǔ)種識(shí)別算法原理和多核DSP任務(wù)并行的基礎(chǔ)上,設(shè)計(jì)了一種基于TMS320C6678的語(yǔ)種識(shí)別算法并行實(shí)現(xiàn)方法。該方法實(shí)現(xiàn)了任務(wù)級(jí)并行流水和核間高效通信。實(shí)驗(yàn)結(jié)果表明,該方法可靠、有效,并且使該系統(tǒng)至少能夠完成132路的實(shí)時(shí)識(shí)別任務(wù)。
中圖分類(lèi)號(hào): TN302
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)10-0037-04
Parallel design and implementation of language recognition based on TMS320C6678
Ji Lixin,Liu Weiwei,Li Shaomei
National Digital Switching System Engineering & Technological R&D Center, Zhengzhou 450002,China
Abstract: Aimming at the real-time requirement in practical application of the language recognition, based on the analysis of language recognition and parallel task in multicore DSP, this paper designs a method of language recognition algorithm parallel implementation based on TMS320C6678. This method implements task-level parallel pipeline and efficient inter-core communication. Experimental results show that the method is reliable and effective, and the language recognition system based on TMS320C6678 is able to fulfill the 132-access recognition tasks at least.
Key words : language recognition;multicore DSP;TMS320C6678;parallel processing

     語(yǔ)種識(shí)別是計(jì)算機(jī)通過(guò)分析處理一個(gè)語(yǔ)音片段,判別其所屬語(yǔ)言種類(lèi)的過(guò)程[1]。語(yǔ)種識(shí)別的任務(wù)在于快速準(zhǔn)確地識(shí)別出語(yǔ)言的種類(lèi),自上世紀(jì)90年代以來(lái),已經(jīng)成為通信和信息領(lǐng)域一個(gè)新的學(xué)科增長(zhǎng)點(diǎn),在多語(yǔ)種信息服務(wù)、機(jī)器翻譯及軍事安全等領(lǐng)域都有著廣泛的應(yīng)用前景[2]。語(yǔ)種識(shí)別走向?qū)嵱没粌H要有令人滿(mǎn)意的識(shí)別性能,其實(shí)時(shí)處理的效率也是必須要考慮的因素。因此,設(shè)計(jì)能夠?qū)崿F(xiàn)多路實(shí)時(shí)處理的語(yǔ)種識(shí)別系統(tǒng)是語(yǔ)種識(shí)別邁出實(shí)用化的關(guān)鍵一步。

    本文針對(duì)語(yǔ)種識(shí)別系統(tǒng)算法的特點(diǎn),設(shè)計(jì)了一種基于TI多核處理器TMS320C6678的語(yǔ)種識(shí)別并行實(shí)現(xiàn)方法,實(shí)現(xiàn)了任務(wù)級(jí)的并行流水處理和核間的高效通信。
1 平臺(tái)介紹
    TMS320C6678是基于TI公司最新DSP系列器件 TMS320C66x、采用8個(gè)1.25 GHz DSP內(nèi)核構(gòu)建而成的業(yè)界首款10 GHz DSP,可在10 W功耗下實(shí)現(xiàn)160 GFLOP(Giga-Floating Point Operations per Second)浮點(diǎn)計(jì)算性能[3]。不僅能整合多個(gè) DSP 以縮小板級(jí)空間并降低成本,同時(shí)還能減少整體的功耗要求,充分滿(mǎn)足現(xiàn)代數(shù)字信號(hào)處理日益增長(zhǎng)的需求。
    本文語(yǔ)種識(shí)別系統(tǒng)的開(kāi)發(fā)在TI公司的最新DSP集成開(kāi)發(fā)環(huán)境CCSv5(Code Composer Studio)中基于浮點(diǎn)運(yùn)算設(shè)計(jì)完成。
2 基于TMS320C6678的語(yǔ)種識(shí)別算法優(yōu)化
2.1 語(yǔ)種識(shí)別算法分解

    本文的語(yǔ)種識(shí)別系統(tǒng)是基于區(qū)分性Model Pushing算法[4]進(jìn)行構(gòu)建的,并且對(duì)特征參數(shù)進(jìn)行了fDWNAP[5-6]處理,因此系統(tǒng)的測(cè)試階段由特征提取模塊、fDWNAP模塊及對(duì)數(shù)似然得分模塊3個(gè)模塊構(gòu)成,如圖1所示。

        (1)特征提取模塊
    特征提取模塊的任務(wù)包括語(yǔ)音信號(hào)預(yù)處理、MFCC提取、RASTA濾波、SDC擴(kuò)展、VAD檢測(cè)、CMS處理、高斯化等過(guò)程,該模塊結(jié)束即輸出56維的特征參數(shù),其需要存儲(chǔ)的參數(shù)包括漢明窗和梅爾濾波器組總共不到2 KB。
    (2)fDWNAP模塊
    該模塊的工作是對(duì)所提取的56維特征參數(shù)進(jìn)行處理,以去除與語(yǔ)種無(wú)關(guān)的各種干擾信息,達(dá)到凈化語(yǔ)種特征參數(shù)的目的。如參考文獻(xiàn)[6]介紹,該模塊首先將特征參數(shù)映射至SVM的高維空間,然后利用訓(xùn)練得到的投影矩陣計(jì)算映射后的參數(shù)中所包含的干擾信息,再將干擾信息映射至特征空間,從而進(jìn)行去除。該模塊中事先訓(xùn)練得到的投影矩陣P=I-wwT,wwT是對(duì)稱(chēng)矩陣,因此存儲(chǔ)wwT需要7 MB的存儲(chǔ)空間。另外,K-L變換矩陣D是對(duì)角矩陣,需要112 KB的存儲(chǔ)空間。
    (3)對(duì)數(shù)似然得分模塊
    如參考文獻(xiàn)[4]所述,本模塊主要任務(wù)是利用訓(xùn)練得到的各語(yǔ)種GMM模型對(duì)語(yǔ)音特征參數(shù)計(jì)算對(duì)數(shù)似然得分進(jìn)行輸出的判決。
    本模塊需要存儲(chǔ)訓(xùn)練階段得到的各目標(biāo)語(yǔ)種的GMM模型及非目標(biāo)語(yǔ)種的GMM模型,即針對(duì)每個(gè)語(yǔ)種需要存儲(chǔ)2個(gè)GMM模型。所有的GMM模型只是均值矢量不同,高斯混元權(quán)重及協(xié)方差矩陣都是共享UBM模型的。以L(fǎng)個(gè)語(yǔ)種為例,需要存儲(chǔ)2L個(gè)均值矢量,即需要224L KB的存儲(chǔ)空間,共享的高斯混元權(quán)重需要2 KB的存儲(chǔ)空間,協(xié)方差矩陣由于是對(duì)角化的只需要112 KB的存儲(chǔ)空間。
2.2 算法實(shí)時(shí)性分析
    首先對(duì)各模塊的運(yùn)算實(shí)時(shí)性進(jìn)行分析。以30 s的語(yǔ)音(8 000 Hz采樣,幀長(zhǎng)25 ms,幀移10 ms)為例,后端模型使用單個(gè)語(yǔ)種模型,利用CCSv5的環(huán)境進(jìn)行軟件仿真得到各模塊處理所花的時(shí)鐘周期數(shù),然后按照TMS320C6678芯片的單個(gè)內(nèi)核的工作主頻(1.25 GHz)計(jì)算得到處理時(shí)間,結(jié)果如表1所示。

        由表1可知,整個(gè)語(yǔ)種識(shí)別系統(tǒng)測(cè)試階段,在算法代碼未經(jīng)任何優(yōu)化的情況下,一段30 s的語(yǔ)音在單個(gè)TMS320C66x CPU內(nèi)核上的處理時(shí)間約為22.3 s,結(jié)果非常不理想,并且特征提取模塊和對(duì)數(shù)似然得分模塊耗時(shí)較多。
    為此,本文從兩個(gè)方面對(duì)代碼進(jìn)行了優(yōu)化:一是算法本身的約減,二是算法基于TMS320C6678平臺(tái)的優(yōu)化。
2.3 算法優(yōu)化
    (1)算法約減
    計(jì)算過(guò)程的優(yōu)化主要對(duì)語(yǔ)種識(shí)別系統(tǒng)中對(duì)數(shù)似然得分模塊的算法做約減。對(duì)數(shù)似然得分過(guò)程就是利用已經(jīng)訓(xùn)練好的各語(yǔ)種GMM模型對(duì)輸入的語(yǔ)音特征進(jìn)行似然得分的計(jì)算,語(yǔ)種數(shù)越多,則該模塊的耗時(shí)越多。利用Top n的方法,對(duì)每個(gè)模型選取得分最高的10個(gè)高斯用來(lái)計(jì)算對(duì)數(shù)似然得分。由于區(qū)分性Model Pushing模型是由SVM訓(xùn)練得到的支持向量重構(gòu)而來(lái),而支持向量由GMM-UBM模型自適應(yīng)得到,因此,區(qū)分性Model Pushing模型與GMM-UBM模型的各高斯分量之間有著很強(qiáng)的對(duì)應(yīng)關(guān)系。
    上述介紹說(shuō)明,區(qū)分性Model Pushing模型與GMM-UBM模型有著很強(qiáng)的對(duì)應(yīng)關(guān)系,可近似認(rèn)為對(duì)同一個(gè)特征向量它們得分最大的高斯混元一致[7]。針對(duì)擁有512個(gè)高斯混元的GMM,似然得分的計(jì)算結(jié)果必定僅僅集中于很少的幾個(gè)高斯混元,大部分的高斯混元得分都會(huì)非常小以致可以忽略。因此,考慮將得分小的高斯混元結(jié)果忽略不計(jì),只計(jì)算得分大的高斯混元。鑒于fDWNAP模塊包含特征向量對(duì)GMM-UBM計(jì)算后驗(yàn)概率的部分,可利用該部分的結(jié)果選取Top 10的高斯混元用于后端對(duì)數(shù)似然得分的計(jì)算。
    (2)基于TMS320C6678平臺(tái)的算法優(yōu)化
    基于平臺(tái)的優(yōu)化主要是通過(guò)選擇CCSv5提供的編譯優(yōu)化參數(shù)來(lái)實(shí)現(xiàn)。通過(guò)不斷的參數(shù)選擇、搭配,獲得最理想的參數(shù)優(yōu)化方式,提高代碼中循環(huán)運(yùn)算的性能,使用軟件流水調(diào)度技術(shù)提高代碼的并行執(zhí)行效率。
    除此之外,特征提取階段的FFT和fDWNAP的矩陣運(yùn)算等算法采用DSPlib中優(yōu)化的庫(kù)函數(shù)進(jìn)行替代,利用優(yōu)化的庫(kù)函數(shù)可以極大地提升代碼的運(yùn)行速度。
    (3)算法優(yōu)化前后識(shí)別性能對(duì)比
    首先檢驗(yàn)Top 10算法對(duì)系統(tǒng)識(shí)別性能的影響。在測(cè)試集中模型使用Top 10 的區(qū)分性Model Pushing,前端特征參數(shù)保持不變,在VC++2010的環(huán)境下測(cè)試系統(tǒng)性能。實(shí)驗(yàn)所用語(yǔ)料庫(kù)為實(shí)驗(yàn)室采集的電話(huà)信道通話(huà)語(yǔ)音,含漢語(yǔ)普通話(huà)、日語(yǔ)和英語(yǔ)3個(gè)語(yǔ)種,測(cè)試集包含漢語(yǔ)1 000段、日語(yǔ)450段及英語(yǔ)750段,共2 200段30 s的語(yǔ)音和3 000段10 s的語(yǔ)音(各語(yǔ)種1 000段)。系統(tǒng)性能用等錯(cuò)誤率EER(Equal Error Rate)[2]衡量,實(shí)驗(yàn)結(jié)果如表2所示。

          由表2可以看出,相對(duì)于全高斯得分模型,Top 10得分模型系統(tǒng)性能有所下降,主要因?yàn)樯釛壛似渌梅值偷母咚钩煞郑渲斜囟ò糠终Z(yǔ)種區(qū)分信息,但舍棄掉的這一部分所含的語(yǔ)種信息有限,所以性能下降在可接受范圍之內(nèi)(相對(duì)下降小于5%)。該優(yōu)化方法下模塊的運(yùn)算量下降是顯而易見(jiàn)的,同樣耗時(shí)也會(huì)大幅下降。
    (4)算法優(yōu)化前后系統(tǒng)實(shí)時(shí)性對(duì)比
    對(duì)經(jīng)算法優(yōu)化的系統(tǒng)耗時(shí)做如下測(cè)試,同樣以30 s的語(yǔ)音(8 000 Hz采樣,幀長(zhǎng)25 ms,幀移10 ms)為例,用CCSv5的環(huán)境進(jìn)行軟件仿真得到各模塊處理所花的時(shí)鐘周期數(shù),然后按照TMS320C6678芯片的單個(gè)內(nèi)核的工作主頻(1.25 GHz)計(jì)算得到處理時(shí)間,結(jié)果如表3所示。

        由以上分析可以看到,算法優(yōu)化后的系統(tǒng)耗時(shí)由22.3 s減少至1.36 s,下降非常明顯,其中下降最多的是fDWNAP模塊和對(duì)數(shù)似然得分模塊。在整個(gè)系統(tǒng)中,經(jīng)過(guò)算法優(yōu)化, fDWNAP模塊耗時(shí)所占比例依舊最大,因此在多核任務(wù)并行設(shè)計(jì)時(shí),需要將該模塊的任務(wù)進(jìn)行分解。
3 基于TMS320C6678的語(yǔ)種識(shí)別算法并行設(shè)計(jì)
3.1 模塊間通信分析

    根據(jù)語(yǔ)種識(shí)別的系統(tǒng)結(jié)構(gòu),測(cè)試過(guò)程分為3個(gè)模塊,各模塊的算法都已經(jīng)進(jìn)行了相應(yīng)的優(yōu)化。這些模塊相互配合,通過(guò)控制信號(hào)完成數(shù)據(jù)流的交互。任務(wù)的控制流程主要是模塊的執(zhí)行次序,任務(wù)分配在不同核上的模塊之間以傳遞消息的方式實(shí)現(xiàn)同步。模塊間數(shù)據(jù)的傳遞會(huì)造成相應(yīng)的時(shí)間延遲,因此,控制流程的設(shè)計(jì)準(zhǔn)則為最大化系統(tǒng)的處理能力。模塊間的數(shù)據(jù)流程主要是數(shù)據(jù)的傳輸方向,描述模塊與外部數(shù)據(jù)間的相互關(guān)系。相反,最小化模塊間的數(shù)據(jù)通信量則是數(shù)據(jù)流程的設(shè)計(jì)準(zhǔn)則。
    語(yǔ)種識(shí)別系統(tǒng)算法各模塊間控制流程和數(shù)據(jù)流程的通信示意圖如圖2所示。該圖由數(shù)據(jù)層和控制層兩部分構(gòu)成,控制信號(hào)的傳輸由虛線(xiàn)箭頭表示,數(shù)據(jù)的傳輸由實(shí)線(xiàn)箭頭表示。

3.2 模塊任務(wù)的核映射
    為了充分利用所有內(nèi)核CPU的計(jì)算資源以最大限度地提高系統(tǒng)處理速度,根據(jù)算法優(yōu)化前后的系統(tǒng)實(shí)時(shí)性測(cè)試結(jié)果及各模塊運(yùn)算量分析,將fDWNAP模塊的矩陣乘法任務(wù)分配到多個(gè)核并行執(zhí)行。
    因本文的語(yǔ)種識(shí)別系統(tǒng)適合于數(shù)據(jù)流模式的任務(wù)并行方式,將整個(gè)系統(tǒng)的運(yùn)算任務(wù)適當(dāng)?shù)胤峙浣o各個(gè)內(nèi)核,實(shí)現(xiàn)任務(wù)級(jí)的并行流水。由于fDWNAP模塊計(jì)算復(fù)雜度大,制約了整個(gè)系統(tǒng)任務(wù)級(jí)流水的處理速度。為了充分發(fā)揮TMS320C6678的性能優(yōu)勢(shì),將該模塊任務(wù)映射到多個(gè)核進(jìn)行處理。該模塊首先需要計(jì)算特征矢量對(duì)應(yīng)的自適應(yīng)GSV;然后通過(guò)投影矩陣計(jì)算SVM特征域的干擾空間,這一部分的大矩陣乘法占據(jù)了整個(gè)模塊的絕大部分運(yùn)算量;最后還需要將干擾空間返回映射到特征域,并在特征域去除干擾。整個(gè)模塊80%以上的運(yùn)算量都集中在大矩陣的乘法上,故采用將大矩陣拆為小矩陣分配到多個(gè)核上并行運(yùn)算,將其他任務(wù)集中在一個(gè)核上進(jìn)行處理。在該模塊內(nèi)還是一個(gè)任務(wù)級(jí)的流水處理方式,矩陣相乘部分是核級(jí)相同的并行流水處理方式。
4 基于TMS320C6678的語(yǔ)種識(shí)別算法實(shí)現(xiàn)
4.1 語(yǔ)種識(shí)別算法在TMS320C6678中的實(shí)現(xiàn)

    根據(jù)設(shè)計(jì)思路,將本文提出的語(yǔ)種識(shí)別算法在CCSv5上進(jìn)行軟件仿真。其中,利用SYS/BIOS[8]提供核間任務(wù)調(diào)度,利用IPC[9]實(shí)現(xiàn)核間同步和通信。
    啟動(dòng)系統(tǒng),完成所有核的初始化后,首先調(diào)用IPC_start函數(shù)讓各核進(jìn)入同步等待狀態(tài),然后各核上的程序才能開(kāi)始執(zhí)行。從共享存儲(chǔ)器劃出MSM_IN和MSM_OUT 2塊存儲(chǔ)區(qū),MSM_IN存儲(chǔ)K-L變換矩陣和各語(yǔ)種GMM模型,MSM_OUT存儲(chǔ)判決輸出結(jié)果。投影矩陣數(shù)據(jù)存儲(chǔ)在外接DDR3存儲(chǔ)器中的位置信息事先存在Core1中。Core1將投影矩陣數(shù)據(jù)分成5份,通過(guò)Notify_sendEvent函數(shù)將5份數(shù)據(jù)的地址發(fā)送到Core2、Core3、Core4、Core5和Core6。Core2、Core3、Core4、Core5和Core6上的子矩陣乘法任務(wù)一直處于懸掛狀態(tài),直到Core1發(fā)送過(guò)來(lái)數(shù)據(jù)地址,矩陣乘法任務(wù)才開(kāi)始并行執(zhí)行。各核分別根據(jù)數(shù)據(jù)地址從外接DDR3讀取數(shù)據(jù)與Core1傳遞的數(shù)據(jù)計(jì)算干擾因子向量,計(jì)算完畢再利用MessageQ_put函數(shù)將干擾因子向量數(shù)據(jù)的Message寫(xiě)入到Core1建立的消息隊(duì)列上。Core1利用MessageQ_get函數(shù)從消息隊(duì)列讀取Message,從Message中獲取干擾因子向量數(shù)據(jù);然后計(jì)算補(bǔ)償后的特征向量;接著Core1利用MessageQ_put函數(shù)將補(bǔ)償?shù)奶卣飨蛄繑?shù)據(jù)的Message寫(xiě)入到Core7建立的消息隊(duì)列上,Core7上的判決任務(wù)開(kāi)始執(zhí)行,最后將執(zhí)行結(jié)果的數(shù)據(jù)寫(xiě)入MSM_OUT。
4.2 實(shí)驗(yàn)及結(jié)果分析
    根據(jù)本文語(yǔ)種識(shí)別算法的TMS320C6678任務(wù)并行設(shè)計(jì)方案,本節(jié)將給出CCSv5平臺(tái)下浮點(diǎn)算法的軟件仿真結(jié)果,并進(jìn)行分析驗(yàn)證。
    按照3.2節(jié)的描述,將fDWNAP模塊設(shè)計(jì)為并行處理,同樣以30 s的語(yǔ)音為例,采用3個(gè)語(yǔ)種的模型測(cè)試整個(gè)系統(tǒng)在TMS320C6678上的實(shí)時(shí)性能。3個(gè)部分的運(yùn)算處理時(shí)間結(jié)果如表4所示。

     

 

        由表4可以看出,三個(gè)模塊中fDWNAP模塊耗時(shí)(0.227 s)最多,因此估算該系統(tǒng)的實(shí)時(shí)倍率至少為132(30/0.227)。
    為了驗(yàn)證基于TMS320C6678平臺(tái)的語(yǔ)種識(shí)別系統(tǒng)性能,將采用Top 10優(yōu)化后的算法與在VC++2010平臺(tái)中的識(shí)別性能進(jìn)行對(duì)比。實(shí)驗(yàn)語(yǔ)料保持不變,表5給出了基于兩種不同平臺(tái)的系統(tǒng)EER。
    實(shí)驗(yàn)結(jié)果表明,基于TMS320C6678平臺(tái)的浮點(diǎn)軟件仿真結(jié)果和VC++2010平臺(tái)下的浮點(diǎn)計(jì)算結(jié)果完全一致,從而驗(yàn)證了TMS320C6678平臺(tái)實(shí)現(xiàn)語(yǔ)種識(shí)別系統(tǒng)的正確性。
    本文針對(duì)語(yǔ)種識(shí)別系統(tǒng)的實(shí)時(shí)性需求,在分析語(yǔ)種識(shí)別算法原理和多核DSP任務(wù)并行的基礎(chǔ)上,分析了系統(tǒng)各模塊的運(yùn)算量,根據(jù)各模塊的運(yùn)算量對(duì)算法進(jìn)行了優(yōu)化。針對(duì)優(yōu)化后算法的特點(diǎn),設(shè)計(jì)了基于TMS320C6678平臺(tái)的語(yǔ)種識(shí)別系統(tǒng)。最后從實(shí)時(shí)性和識(shí)別性能兩個(gè)方面對(duì)系統(tǒng)性能進(jìn)行了測(cè)試,結(jié)果驗(yàn)證了算法在TMS320C6678中實(shí)現(xiàn)的正確性及優(yōu)化的有效性。
參考文獻(xiàn)
[1] WONG K Y E.Automatic spoken language identification utilizing acoustic and phonetic speech information[D].Queensland:Queensland University of Technology,2004.
[2] 徐婷婷.語(yǔ)種識(shí)別中的若干問(wèn)題研究[D].北京:北京郵電大學(xué),2011.
[3] Texas Instrument.TMS320C6678 multicore fixed and floatingpoint digital signal processor[R].SPRS691C,2012.
[4] 劉偉偉,吉立新,李邵梅.基于區(qū)分性Model Pushing的語(yǔ)種識(shí)別方法[J].電子技術(shù)應(yīng)用,2012,38(4):113-116.
[5] 劉偉偉,吉立新,李邵梅.基于區(qū)分加權(quán)干擾屬性投影的語(yǔ)種識(shí)別方法[J].中文信息學(xué)報(bào),[已錄用未發(fā)表].
[6] Liu Weiwei,Ji Lixin,Li Shaomei.Robust cepstral feature compensation for language recognition[C].Guangzhou:Proc.of BEMI,2012:119-122.
[7] 徐穎.語(yǔ)種識(shí)別聲學(xué)建模方法研究[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2011.
[8] Texas Instrument.SYS/BIOS inter-processor communication(IPC) and I/O user’s guide[R].SPRUGO6C,2010.
[9] Texas Instrument.TI SYS/BIOS v6.33 real-time operating system user’s guide[R].SPRUEX3K,2011.





此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。