《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于TMS320C6678的語種識別并行算法設計與實現
基于TMS320C6678的語種識別并行算法設計與實現
來源:電子技術應用2012年第10期
吉立新,劉偉偉,李邵梅
國家數字交換系統工程技術研究中心,河南 鄭州450002
摘要: 針對語種識別在實際應用中的實時性需求,在分析語種識別算法原理和多核DSP任務并行的基礎上,設計了一種基于TMS320C6678的語種識別算法并行實現方法。該方法實現了任務級并行流水和核間高效通信。實驗結果表明,該方法可靠、有效,并且使該系統至少能夠完成132路的實時識別任務。
中圖分類號: TN302
文獻標識碼: A
文章編號: 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

     語種識別是計算機通過分析處理一個語音片段,判別其所屬語言種類的過程[1]。語種識別的任務在于快速準確地識別出語言的種類,自上世紀90年代以來,已經成為通信和信息領域一個新的學科增長點,在多語種信息服務、機器翻譯及軍事安全等領域都有著廣泛的應用前景[2]。語種識別走向實用化,不僅要有令人滿意的識別性能,其實時處理的效率也是必須要考慮的因素。因此,設計能夠實現多路實時處理的語種識別系統是語種識別邁出實用化的關鍵一步。

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

    本文的語種識別系統是基于區分性Model Pushing算法[4]進行構建的,并且對特征參數進行了fDWNAP[5-6]處理,因此系統的測試階段由特征提取模塊、fDWNAP模塊及對數似然得分模塊3個模塊構成,如圖1所示。

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

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

          由表2可以看出,相對于全高斯得分模型,Top 10得分模型系統性能有所下降,主要因為舍棄了其他得分低的高斯成分,而其中必定包含部分語種區分信息,但舍棄掉的這一部分所含的語種信息有限,所以性能下降在可接受范圍之內(相對下降小于5%)。該優化方法下模塊的運算量下降是顯而易見的,同樣耗時也會大幅下降。
    (4)算法優化前后系統實時性對比
    對經算法優化的系統耗時做如下測試,同樣以30 s的語音(8 000 Hz采樣,幀長25 ms,幀移10 ms)為例,用CCSv5的環境進行軟件仿真得到各模塊處理所花的時鐘周期數,然后按照TMS320C6678芯片的單個內核的工作主頻(1.25 GHz)計算得到處理時間,結果如表3所示。

        由以上分析可以看到,算法優化后的系統耗時由22.3 s減少至1.36 s,下降非常明顯,其中下降最多的是fDWNAP模塊和對數似然得分模塊。在整個系統中,經過算法優化, fDWNAP模塊耗時所占比例依舊最大,因此在多核任務并行設計時,需要將該模塊的任務進行分解。
3 基于TMS320C6678的語種識別算法并行設計
3.1 模塊間通信分析

    根據語種識別的系統結構,測試過程分為3個模塊,各模塊的算法都已經進行了相應的優化。這些模塊相互配合,通過控制信號完成數據流的交互。任務的控制流程主要是模塊的執行次序,任務分配在不同核上的模塊之間以傳遞消息的方式實現同步。模塊間數據的傳遞會造成相應的時間延遲,因此,控制流程的設計準則為最大化系統的處理能力。模塊間的數據流程主要是數據的傳輸方向,描述模塊與外部數據間的相互關系。相反,最小化模塊間的數據通信量則是數據流程的設計準則。
    語種識別系統算法各模塊間控制流程和數據流程的通信示意圖如圖2所示。該圖由數據層和控制層兩部分構成,控制信號的傳輸由虛線箭頭表示,數據的傳輸由實線箭頭表示。

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

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

     

 

        由表4可以看出,三個模塊中fDWNAP模塊耗時(0.227 s)最多,因此估算該系統的實時倍率至少為132(30/0.227)。
    為了驗證基于TMS320C6678平臺的語種識別系統性能,將采用Top 10優化后的算法與在VC++2010平臺中的識別性能進行對比。實驗語料保持不變,表5給出了基于兩種不同平臺的系統EER。
    實驗結果表明,基于TMS320C6678平臺的浮點軟件仿真結果和VC++2010平臺下的浮點計算結果完全一致,從而驗證了TMS320C6678平臺實現語種識別系統的正確性。
    本文針對語種識別系統的實時性需求,在分析語種識別算法原理和多核DSP任務并行的基礎上,分析了系統各模塊的運算量,根據各模塊的運算量對算法進行了優化。針對優化后算法的特點,設計了基于TMS320C6678平臺的語種識別系統。最后從實時性和識別性能兩個方面對系統性能進行了測試,結果驗證了算法在TMS320C6678中實現的正確性及優化的有效性。
參考文獻
[1] WONG K Y E.Automatic spoken language identification utilizing acoustic and phonetic speech information[D].Queensland:Queensland University of Technology,2004.
[2] 徐婷婷.語種識別中的若干問題研究[D].北京:北京郵電大學,2011.
[3] Texas Instrument.TMS320C6678 multicore fixed and floatingpoint digital signal processor[R].SPRS691C,2012.
[4] 劉偉偉,吉立新,李邵梅.基于區分性Model Pushing的語種識別方法[J].電子技術應用,2012,38(4):113-116.
[5] 劉偉偉,吉立新,李邵梅.基于區分加權干擾屬性投影的語種識別方法[J].中文信息學報,[已錄用未發表].
[6] Liu Weiwei,Ji Lixin,Li Shaomei.Robust cepstral feature compensation for language recognition[C].Guangzhou:Proc.of BEMI,2012:119-122.
[7] 徐穎.語種識別聲學建模方法研究[D].合肥:中國科學技術大學,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.





此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一级大片在线观看| 亚洲精品专区| 亚洲人成网站777色婷婷| 国产亚洲精品aa| 国产精品一区二区三区成人| 欧美性视频网站| 欧美午夜一区二区三区免费大片| 欧美精品一区在线| 欧美激情国产日韩| 欧美福利在线观看| 蜜桃av一区二区三区| 美女福利精品视频| 欧美jizzhd精品欧美巨大免费| 老色鬼精品视频在线观看播放| 久久亚洲欧洲| 久久综合国产精品| 女人香蕉久久**毛片精品| 欧美a级一区| 欧美精品亚洲二区| 欧美日韩专区在线| 国产精品乱码人人做人人爱| 国产精品视频免费| 国产日产欧美一区| 国产综合香蕉五月婷在线| 韩日成人av| 亚洲成色777777女色窝| 亚洲欧洲日产国产网站| 日韩亚洲国产欧美| 亚洲一区二区日本| 性欧美1819sex性高清| 久久gogo国模裸体人体| 亚洲电影专区| 99在线精品观看| 亚洲综合不卡| 久久国产精品亚洲va麻豆| 久久一区二区三区四区| 欧美电影在线观看完整版| 欧美日韩国产一中文字不卡| 国产精品爱久久久久久久| 国产日产亚洲精品系列| 一区在线免费观看| 91久久久亚洲精品| 亚洲一区二区成人在线观看| 欧美伊久线香蕉线新在线| 亚洲经典三级| 亚洲欧美卡通另类91av | 午夜一区二区三区在线观看| 久久国产66| 免费亚洲电影| 欧美视频免费| 国产亚洲一本大道中文在线| 亚洲国产高清aⅴ视频| 日韩视频在线观看免费| 亚洲欧美三级在线| 亚洲欧洲一区二区三区在线观看| 亚洲深夜福利| 久久久精品网| 欧美日韩精品一本二本三本| 国产情侣一区| 亚洲三级免费观看| 亚洲欧美综合v| 99re6这里只有精品| 欧美一区二区三区免费视| 免费在线亚洲欧美| 国产精品―色哟哟| 亚洲成色777777女色窝| 亚洲一区二区三区精品视频| 久久精品一区二区| 亚洲自拍三区| 欧美成人免费全部观看天天性色| 国产精品久久久久久久第一福利 | 亚洲国产高潮在线观看| 亚洲性线免费观看视频成熟| 久久夜色精品国产欧美乱极品| 欧美午夜不卡影院在线观看完整版免费| 国产一区91| 一区二区三区视频在线看| 亚洲黄色一区| 久久精品国产2020观看福利| 欧美日本一区二区视频在线观看| 国内精品视频在线播放| 中文在线一区| 一本久道久久综合狠狠爱| 久久一区激情| 国产日产欧美a一级在线| 99一区二区| 亚洲区国产区| 久久久久天天天天| 国产精品毛片大码女人| 亚洲麻豆一区| 亚洲人妖在线| 久久久久久一区| 国产精品久久久久毛片软件 | 麻豆成人小视频| 国产日韩一区在线| 中文欧美在线视频| 99热在线精品观看| 免费成人高清视频| 狠狠色2019综合网| 欧美一区二区三区播放老司机| 亚洲欧美一区二区三区久久| 欧美日韩亚洲一区三区 | 日韩视频免费观看高清完整版| 亚洲激情六月丁香| 狂野欧美一区| 国内揄拍国内精品久久| 亚洲欧美制服中文字幕| 午夜精品国产| 国产欧美日韩三级| 亚洲在线视频观看| 亚洲欧美日韩国产中文| 欧美亚一区二区| 亚洲天堂网在线观看| 亚洲一区在线免费| 欧美四级剧情无删版影片| 亚洲乱码国产乱码精品精98午夜| 亚洲精品视频二区| 欧美日本韩国一区二区三区| 亚洲精品九九| 一区二区欧美在线观看| 欧美日韩第一页| 99成人免费视频| 亚洲天堂激情| 国产精品久久久久天堂| 亚洲永久在线| 久久国产精品黑丝| 国产一区二区精品久久| 亚洲成色www久久网站| 浪潮色综合久久天堂| 亚洲高清一二三区| 99精品99| 欧美视频在线播放| 亚洲午夜女主播在线直播| 香蕉免费一区二区三区在线观看 | 国产综合色一区二区三区| 亚洲国产成人av| 欧美国产日韩亚洲一区| 日韩系列在线| 欧美一区二区日韩一区二区| 国产手机视频一区二区| 久久精品日韩欧美| 欧美国产视频一区二区| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲精品国产欧美| 欧美涩涩视频| 午夜精品福利视频| 另类春色校园亚洲| 日韩一区二区精品葵司在线| 午夜精品偷拍| 在线观看的日韩av| 一本色道久久综合亚洲精品婷婷 | 国内精品一区二区| 亚洲蜜桃精久久久久久久 | 国产精品免费久久久久久| 午夜日本精品| 免费成人高清视频| 一区二区免费在线播放| 久久爱www久久做| 亚洲国产精品成人综合| 亚洲午夜女主播在线直播| 国产日韩精品一区观看| 亚洲欧洲综合另类| 国产精品高潮呻吟| 久久精品国产免费观看| 欧美日韩精品一区二区天天拍小说| 亚洲一区中文| 免费短视频成人日韩| 在线亚洲一区| 久久青青草综合| 日韩亚洲在线| 久久频这里精品99香蕉| 99精品国产在热久久婷婷| 久久精品人人做人人爽| 亚洲靠逼com| 久久久久久精| 一本一本久久a久久精品综合妖精| 久久精品国产欧美激情| 亚洲乱码国产乱码精品精天堂| 久久不射中文字幕| 亚洲精品小视频| 久久久久久久综合色一本| 亚洲美女中文字幕| 久久亚洲捆绑美女| 这里是久久伊人| 欧美a级理论片| 性感少妇一区| 欧美性大战久久久久久久| 亚洲人成人77777线观看| 国产精品有限公司| 在线一区日本视频| 精品二区视频| 性欧美精品高清| 亚洲久久视频| 欧美mv日韩mv国产网站| 亚洲欧美日韩直播| 欧美日韩亚洲系列| 亚洲国产午夜| 国内精品视频666| 性欧美videos另类喷潮| 日韩午夜在线视频|