- 相關(guān)推薦
基于DSP的聲控電子記事本的設(shè)計(jì)與實(shí)現(xiàn)
摘要:一種基于DSP芯片的語(yǔ)音識(shí)別和數(shù)字錄音系統(tǒng)。在該系統(tǒng)中,DSP(單片ADSP2185)完成語(yǔ)音識(shí)別和數(shù)字錄音功能,MCU完成用戶(hù)界面處理。該系統(tǒng)可以實(shí)現(xiàn)語(yǔ)音名片(電路號(hào)碼、工作單位、地址等)存儲(chǔ)及聲控查詢(xún)、記事錄音及聲控回放、日歷、簡(jiǎn)單計(jì)算器等功能。關(guān)鍵詞:ADSP2185語(yǔ)音識(shí)別數(shù)字錄音
語(yǔ)音識(shí)別及語(yǔ)音編解碼技術(shù)經(jīng)過(guò)幾十年的發(fā)展,已經(jīng)日趨成熟,步入實(shí)用化階段。語(yǔ)音識(shí)別技術(shù)已開(kāi)始應(yīng)用于電話(huà)查詢(xún)服務(wù)、智能玩具、PDA、家用電器、通信、工業(yè)控制、語(yǔ)言學(xué)習(xí)等應(yīng)用領(lǐng)域;其于碼激勵(lì)線(xiàn)性預(yù)測(cè)(CELP)技術(shù)的語(yǔ)音編解碼算法也因其音質(zhì)好,壓縮比大而在通信和數(shù)字錄音設(shè)備中獲得了廣泛應(yīng)用。
語(yǔ)音輸入方式與手寫(xiě)輸入方式相比,具有操作簡(jiǎn)便、查找方便、識(shí)別準(zhǔn)確率高等優(yōu)點(diǎn)。省去了大量的輸入時(shí)間,降低了信息檢索的復(fù)雜度。本文所介紹的聲控電子記事本系統(tǒng)將語(yǔ)音識(shí)別和語(yǔ)音編解碼在同一片DSP芯片上實(shí)現(xiàn),用語(yǔ)音方式代替其它方式進(jìn)行信息輸入,提高了系統(tǒng)的靈活性。
1系統(tǒng)功能
·可存200張語(yǔ)音名片,每張語(yǔ)音名片包含四條信息:姓名、電話(huà)號(hào)碼、工作單位、備注;聲控查找語(yǔ)音名片信息,用戶(hù)只需口述所要查找人的姓名,即可獲得電話(huà)號(hào)碼、工作單位、備注等信息,同時(shí)電話(huà)號(hào)碼顯示在液晶顯示屏上。
·具有雙音多頻(DTMF)撥號(hào)功能,用戶(hù)用聲控查找到電話(huà)號(hào)碼并顯示在液晶屏上之后,只需輕觸一個(gè)撥號(hào)鍵,即可通過(guò)普通電話(huà)機(jī)的話(huà)筒實(shí)現(xiàn)快速自動(dòng)撥號(hào)。
·數(shù)字錄音,每段錄音加語(yǔ)音標(biāo)識(shí);聲控放音,在放音時(shí)只需口述所要語(yǔ)音段的語(yǔ)音標(biāo)識(shí)即可自動(dòng)找到該段錄音并加放,累計(jì)錄音時(shí)間達(dá)兩個(gè)半小時(shí)以上。
·具有方便的編輯功能,增加、刪除語(yǔ)音名片,增加、刪除數(shù)字錄音段。
2系統(tǒng)構(gòu)成
本文所介紹的聲控電子記事本系統(tǒng),是在定點(diǎn)16位DSP芯片上實(shí)現(xiàn)的,它包含特定人孤立詞語(yǔ)音識(shí)別算法和代數(shù)碼本激勵(lì)線(xiàn)性預(yù)測(cè)(ACELP)語(yǔ)音編解碼算法數(shù)(MFCC)為語(yǔ)音特征、以動(dòng)態(tài)時(shí)間規(guī)劃(DTW)為模板匹配算法,對(duì)于普通詞條,識(shí)別率達(dá)到了99%以上。用于“錄音”功能的ACELP算法是該碼率下性能優(yōu)異的編解碼算法,雖然算法復(fù)雜度較高,但共重建語(yǔ)音質(zhì)量的平均主觀評(píng)測(cè)分?jǐn)?shù)(MOS分)達(dá)到了4.0,非常接近于壓縮前的分?jǐn)?shù)4.3。
如圖1所示,系統(tǒng)由MCU實(shí)現(xiàn)總線(xiàn)控制,接受外部鍵盤(pán)輸入,并在液晶屏上顯示信息。在本系統(tǒng)中,語(yǔ)音充當(dāng)大部分人機(jī)界面的角色,盡量省去復(fù)雜的鍵盤(pán)操作,而且用語(yǔ)音提示或語(yǔ)音回放代替一部門(mén)液晶文字提示。由于語(yǔ)音要經(jīng)過(guò)DSP處理,所以MCU需要與DSP經(jīng)常交換信息,以便實(shí)現(xiàn)友好的操作界面。
2.1DSP
DSP(ADSP2185)是整個(gè)硬件系統(tǒng)的信號(hào)處理中心,完成語(yǔ)音識(shí)別、訓(xùn)練、編解碼,進(jìn)行片內(nèi)RAM及外部FLASH存儲(chǔ)芯片的數(shù)據(jù)管理與調(diào)度,并向主控芯片MCU提供簡(jiǎn)潔的命令與反饋信息。ADSP2185是AnalogDevices公司的產(chǎn)品,其主要性能如下:
·運(yùn)算速度為50MIPS,且均為高效的單周期指令。
·提供了80Kbyte的片內(nèi)RAM,其中32Kbyte為數(shù)據(jù)RAM,48Kbyte為程序RAM。
·最大可支持4Mbyte的外部存儲(chǔ)區(qū),用于存儲(chǔ)數(shù)據(jù)或程序。
·提供對(duì)字節(jié)存儲(chǔ)區(qū)(BM)與片內(nèi)RAM區(qū)之間的DMA方式支持。
·提供兩上可編程、全雙工、自動(dòng)進(jìn)行收發(fā)緩沖區(qū)操作的串行口。
2.2MCU
MCU(KS57C2316)是SAMSUNG公司生產(chǎn)的性?xún)r(jià)比較高的一種CMOS四位單片機(jī),可以一次性編程,適于小批量生產(chǎn),被廣泛地應(yīng)用于家用電器的控制,它具有強(qiáng)大的I/O功能。其主要性能如下:
·ROM為16K×8bit;RAM為512×4bit
·40個(gè)I/O引腳
·多至16位數(shù)字LCD顯示
——32個(gè)段,4個(gè)公共端引腳
這些性能保證了系統(tǒng)主控能力,而且能夠提供靈活的外部接口,適于做進(jìn)一步的改進(jìn)和改造。計(jì)算器等附加功能可以直接由MCU完成。
2.3數(shù)據(jù)FLASH存儲(chǔ)器
數(shù)據(jù)FLASH存儲(chǔ)器KM29U64000是SAMSUNG公司的產(chǎn)品,它可在3伏電壓下低功耗工作,存貯量大、價(jià)位低、速度快、存儲(chǔ)數(shù)據(jù)掉電后可保持而不會(huì)丟失。其主要性能指標(biāo)如下:
·存儲(chǔ)單元陣列為(8M+256K)×8bit;數(shù)據(jù)寄存器(512+16)×8bit
·頁(yè)寫(xiě)入為(512+16)Byte;塊擦除為(8K+256)Byte
·命令/地址/數(shù)據(jù)復(fù)用I/O端口
·可靠的CMOSFloating-Gate技術(shù),耐受一百萬(wàn)次寫(xiě)入/擦除,數(shù)據(jù)維持時(shí)間為10年
·命令寄存器操作
2.4其它器件
本系統(tǒng)還采用了AnalogDevices公司的Codec(A/D、D/A變換器)AD73311L,SST的FLASH存儲(chǔ)器SST29LE010(128K×8bit)存儲(chǔ)DSP程序及運(yùn)算數(shù)據(jù)。
3系統(tǒng)內(nèi)主要芯片的互連互控
3.1MCU與DSP
MCU與DSP采用串行口相連,傳送MCU對(duì)DSP的命令字與DSP對(duì)于MCU的反饋?zhàn)帧SP串口1用于語(yǔ)音輸入和輸出,串口2用于與MCU相連。由于DSP的串口收發(fā)方式與MCU的串口不一致,所以MCU用I/O口模擬串口與DSP相連。為了保證數(shù)據(jù)傳送的穩(wěn)定性,MCU采用中斷方式接收。每次數(shù)據(jù)傳送一般不止一個(gè)字節(jié),所以采用打包方式傳送。
3.2DSP與數(shù)據(jù)FLASH存儲(chǔ)器
DSP與數(shù)據(jù)存儲(chǔ)器的接口如圖2所示。DSP的數(shù)據(jù)總線(xiàn)中的8位連到FLASH存儲(chǔ)器的總線(xiàn)上;用DSP的讀寫(xiě)控制線(xiàn)WR和RD控制FLASH芯片的讀寫(xiě);用DSP的I/O口FL0控制FLASH存貯器的CE(片選)端,以保證DSP在進(jìn)行其它總線(xiàn)操作時(shí)不會(huì)對(duì)該FLASH芯片產(chǎn)生誤操作;用DSP的另一個(gè)I/O口PF3連到FLASH芯片的“忙/閑”信號(hào)線(xiàn)上,監(jiān)視其工作狀態(tài);分別把兩個(gè)地址線(xiàn)A8和A9連到FLASH芯片的兩個(gè)鎖存控制CLE和ALE上,以便控制總線(xiàn)的狀態(tài)。
3.3DSP與程序FLASH存儲(chǔ)器
ADSP2185的Byte存儲(chǔ)區(qū)是一個(gè)8位寬的外部雙向存儲(chǔ)空間,可用于存儲(chǔ)程序與數(shù)據(jù)。整個(gè)Byte存儲(chǔ)區(qū)的4Mbyte的存儲(chǔ)空間由256個(gè)16K×8的頁(yè)面組成。Byte存儲(chǔ)區(qū)只能通過(guò)BDMA方式進(jìn)行訪(fǎng)問(wèn)。在使用BDMA方式工作時(shí)用A0~A13作為低端地址,用D16~D18作為擴(kuò)展的高端地址,聯(lián)合使用實(shí)現(xiàn)4Mbyte的外部尋址能力。D8~D15作為數(shù)據(jù)總線(xiàn),BMS、RD、WR分別用于控制存儲(chǔ)器的片選以及讀寫(xiě)操作信號(hào)。DSP與程序FLASH存儲(chǔ)器的接口如圖3所示。
值得提出的是,ADSP2185的開(kāi)發(fā)系統(tǒng)提供了“重載”功能的支持。其基本思路是,當(dāng)片內(nèi)RAM(程序RAM或數(shù)據(jù)RAM)不夠用時(shí),可以由主程序?qū)⑺枳映绦騽?dòng)態(tài)調(diào)入。子程序在程序FLASH存貯器中,在需要運(yùn)行時(shí)才將其調(diào)入DSP的RAM區(qū)。這樣就相當(dāng)于用軟件調(diào)入方法擴(kuò)大了DSP的RAM區(qū)。這一性能為本系統(tǒng)的設(shè)計(jì)提供了方便,這是因?yàn)檎Z(yǔ)音識(shí)別和編解碼程序都較長(zhǎng),不可能同時(shí)裝入DSP的RAM區(qū)。因此,系統(tǒng)軟件設(shè)計(jì)中必須利用這一點(diǎn)進(jìn)行程序動(dòng)態(tài)輸入。
4系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)采用動(dòng)態(tài)程序調(diào)入的辦法擴(kuò)充可利用硬件資源,在一個(gè)芯片上實(shí)現(xiàn)了幾個(gè)復(fù)雜算法的協(xié)同工作;在程序結(jié)構(gòu)上,采用了C語(yǔ)言和匯編語(yǔ)言混合編程,充分利用了DSP的運(yùn)算速度,并兼顧了程序的靈活性;軟件系統(tǒng)采用清晰的層次結(jié)構(gòu)和明確的模塊劃分,便于局部修改和升級(jí);系統(tǒng)還根據(jù)不同功能所規(guī)定的各種參數(shù)的組合和從屬關(guān)系精心設(shè)計(jì)了存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),并將數(shù)據(jù)存儲(chǔ)、刪除、查找等程序模塊做了合理的封裝,供上層程序調(diào)用。
4.1系統(tǒng)軟件模塊的構(gòu)成
系統(tǒng)的軟件設(shè)計(jì)包含MCU軟件設(shè)計(jì)和DSP軟件設(shè)計(jì)兩部分。MCU軟件主要是時(shí)鐘日歷、電源監(jiān)測(cè)控制、科學(xué)計(jì)算、鍵盤(pán)掃描、LCD顯示驅(qū)動(dòng)、與DSP通信等程序,如圖4所示。
DSP的軟件,主要包含五大功能模塊:系統(tǒng)基本IO、FALSH管理、語(yǔ)音、G.723.1編碼、G.723譯碼,如圖5所示。分為6層,上面3層是C語(yǔ)言編寫(xiě),用以增強(qiáng)程序的靈活性;下面3層用匯編語(yǔ)言編寫(xiě),主要是算法、系統(tǒng)設(shè)置和外圍器件控制。
5應(yīng)用前景
我們研制成功的聲控電子記事本系統(tǒng),是未來(lái)SPDA(SpeechPersonalDigitalAssistant:語(yǔ)音個(gè)人數(shù)字助理)的雛型。它集成了語(yǔ)音識(shí)別、語(yǔ)音壓縮編解碼、語(yǔ)音信號(hào)處理器DSP和大容量FLASH存儲(chǔ)器的數(shù)據(jù)管理等技術(shù),該系統(tǒng)所運(yùn)用的技術(shù)可應(yīng)用于語(yǔ)音撥號(hào)電話(huà)機(jī)、語(yǔ)音撥號(hào)+語(yǔ)音錄音電話(huà)機(jī)、電話(huà)機(jī)伴侶(語(yǔ)音撥號(hào)、報(bào)號(hào)、答錄)、PDA、隨聲聽(tīng)、語(yǔ)音玩具、聲紋鎖、語(yǔ)音門(mén)戶(hù)等。
【基于DSP的聲控電子記事本的設(shè)計(jì)與實(shí)現(xiàn)】相關(guān)文章:
基于DSP的上網(wǎng)方案的軟硬件設(shè)計(jì)與實(shí)現(xiàn)08-06
基于DSP的擴(kuò)頻電臺(tái)基帶模塊的設(shè)計(jì)與實(shí)現(xiàn)08-06
基于DSP的移動(dòng)機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)08-06
基于USB與DSP的指紋識(shí)別系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)08-06
基于定點(diǎn)DSP的軟件鎖相環(huán)的設(shè)計(jì)和實(shí)現(xiàn)08-06
基于DSP與CPLD的I2C總線(xiàn)接口的設(shè)計(jì)與實(shí)現(xiàn)08-06
DNP3.0在基于DSP的FTU中的實(shí)現(xiàn)08-06