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

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 語(yǔ)音識(shí)別及其定點(diǎn)DSP實(shí)現(xiàn)

          語(yǔ)音識(shí)別及其定點(diǎn)DSP實(shí)現(xiàn)

          作者: 時(shí)間:2010-08-30 來(lái)源:網(wǎng)絡(luò) 收藏

          3.3 變量的維護(hù)

            在高級(jí)語(yǔ)言中,有全局變量與局部變量存儲(chǔ)的區(qū)別,但在程序中,所有聲明的變量在鏈接時(shí)都會(huì)分給數(shù)據(jù)空間。所以如果按照高級(jí)語(yǔ)言那樣定義局部變量,就會(huì)浪費(fèi)大量的存儲(chǔ)空間,這對(duì)數(shù)據(jù)空間較為緊張的定點(diǎn)來(lái)說(shuō),顯然是不合理的。為了節(jié)省存儲(chǔ)空間,在編寫(xiě)DSP程序時(shí),最好維護(hù)好一張變量表。每進(jìn)入一個(gè)DSP子模塊時(shí),不要急于分配新的局部變量,應(yīng)優(yōu)先使用已分配但不用的變量。只有在不夠時(shí)才分配新的局部變量。

            3.4 循環(huán)嵌套的處理

            語(yǔ)音識(shí)別算法的實(shí)現(xiàn),有許多是在循環(huán)中實(shí)現(xiàn)的。對(duì)于循環(huán)的處理,需要注意以下幾個(gè)問(wèn)題:

            (1)ADSP2100系列DSP芯片中,循環(huán)嵌套最多不能超過(guò)4重,否則就會(huì)發(fā)生堆棧溢出,導(dǎo)致程序不能正確執(zhí)行。但在語(yǔ)音識(shí)別的DSP程序中,包括中斷在內(nèi)的嵌套程序往往超過(guò)4重。這時(shí)不能使用DSP提供的do…unTIl…指令,只能自己設(shè)計(jì)出一些循環(huán)變量,自己維護(hù)這些變量。由于這時(shí)沒(méi)有使用DSP的循環(huán)堆棧,所以也不會(huì)導(dǎo)致堆棧溢出。另外,如果采用jump指令從循環(huán)指令中跳出,則必須維護(hù)好PC,LOOP和CNTR三個(gè)堆棧的指針。

            (2)盡量減少循環(huán)體內(nèi)的指令數(shù)。在多重循環(huán)的內(nèi)部,減少指令數(shù)有利于降低程序的執(zhí)行次數(shù)。這樣有利于減少程序的執(zhí)行時(shí)間、提高操作的實(shí)時(shí)性。

            3.5 采用模塊化的程序設(shè)計(jì)方法

            在語(yǔ)音識(shí)別算法的實(shí)現(xiàn)中,為了便于程序的設(shè)計(jì)和調(diào)試,采用了模塊化的程序設(shè)計(jì)方法。以語(yǔ)音識(shí)別的基本過(guò)程為依據(jù)進(jìn)行模塊劃分,每個(gè)模塊再劃分為若干個(gè)子模塊,然后以模塊為單元進(jìn)行編程和調(diào)試。在編寫(xiě)程序之前,首先用高級(jí)語(yǔ)言對(duì)每個(gè)模塊進(jìn)行算法仿真,在此基礎(chǔ)上再進(jìn)行匯編程序的編寫(xiě)。在調(diào)試時(shí),可以采用高級(jí)語(yǔ)言與匯編語(yǔ)言對(duì)比的調(diào)試方式,這樣可以通過(guò)跟蹤高級(jí)語(yǔ)言與匯編語(yǔ)言的中間狀態(tài),來(lái)驗(yàn)證匯編語(yǔ)言的正確性,并及時(shí)的發(fā)現(xiàn)和修改錯(cuò)誤,縮短編程周期。另外,在程序的編寫(xiě)過(guò)程中,應(yīng)在關(guān)鍵的部分加上必要的注釋與說(shuō)明,以增強(qiáng)程序的可讀性。

            在總調(diào)時(shí),需要在各模塊中設(shè)置好相應(yīng)的人口參數(shù)與出口參數(shù),維護(hù)好堆棧指針與中間變量等。

            3.6 利用C語(yǔ)言與匯編語(yǔ)言的混合編程

            現(xiàn)在,大多數(shù)的DSP芯片都支持匯編語(yǔ)言與C或C++語(yǔ)言的混合編程,ADSP2181也不例外。用C語(yǔ)言開(kāi)發(fā)DSP程序具有縮短開(kāi)發(fā)周期、降低程序復(fù)雜度的優(yōu)點(diǎn),但是,程序的執(zhí)行效率卻不高,會(huì)增加額外的機(jī)器周期,不利于程序的實(shí)時(shí)實(shí)現(xiàn)。為此,在用C語(yǔ)言編寫(xiě)語(yǔ)音識(shí)別算法時(shí),我們采用了定點(diǎn)化處理技術(shù)。ADSP2181是16位定點(diǎn)處理器,定點(diǎn)化處理應(yīng)注意以下幾個(gè)問(wèn)題:

            (1)ADSP2181支持小數(shù)和整數(shù)兩種運(yùn)算方式,在計(jì)算時(shí)應(yīng)選擇小數(shù)方式,使計(jì)算結(jié)果的絕對(duì)值都小于1;

            (2)用雙字定點(diǎn)運(yùn)算庫(kù)代替C語(yǔ)言的浮點(diǎn)庫(kù),提高運(yùn)算精度;

            (3)注意在每次乘加運(yùn)算之后進(jìn)行飽和操作,防止結(jié)果的上溢和下溢;

            (4)循環(huán)處理后的一組數(shù)據(jù)可能有不同的指數(shù),要進(jìn)行歸一化處理,以便后續(xù)定點(diǎn)操作對(duì)指數(shù)和尾數(shù)部分分別處理。

            4 結(jié) 語(yǔ)

            用定點(diǎn)DSP芯片構(gòu)成的語(yǔ)音識(shí)別系統(tǒng)有著廣泛的應(yīng)用前景,在編寫(xiě)語(yǔ)音識(shí)別算法時(shí),對(duì)其進(jìn)行定點(diǎn)化處理以及一些原則和方法對(duì)其他類(lèi)似的算法也有著現(xiàn)實(shí)指導(dǎo)意義。在實(shí)際應(yīng)用中,應(yīng)注意根據(jù)DSP芯片的特點(diǎn),對(duì)算法進(jìn)行優(yōu)化,使得DSP芯片的性能得到充分的發(fā)揮。


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: DSP

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁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); })();