基于USB存儲(chǔ)技術(shù)的電子語(yǔ)音記錄系統(tǒng)的設(shè)計(jì)方案
由于SPCE061A的MIC-IN通道內(nèi)部做了AGC自動(dòng)增益和濾波處理,語(yǔ)音的采集只需一個(gè)駐極話筒和少量的外圍阻容電路即可。相關(guān)電路如圖3所示。本文引用地址:http://www.ex-cimer.com/article/202611.htm
軟件方面,凌陽(yáng)SPCE061A提供了一組專(zhuān)用的API函數(shù)來(lái)支持語(yǔ)音識(shí)別功能。這組API函數(shù)的功能、C語(yǔ)言調(diào)用格式、參數(shù)和返回值分別表述如下:
(1)訓(xùn)練函數(shù):Train(int WordID,int TrainMode),用于特定人語(yǔ)音識(shí)別的模型訓(xùn)練。
C語(yǔ)言調(diào)用格式:int BSR_Train(int WordID,int TrainMode)
參數(shù):WordID 命令序號(hào),范圍從0x100到0x105,并且對(duì)于每組訓(xùn)練語(yǔ)句都是唯一的。
TrainMode:訓(xùn)練次數(shù),要求使用者在應(yīng)用之前訓(xùn)練一遍或兩遍。
返回值:訓(xùn)練成功返回0;沒(méi)有聲音返回-1;訓(xùn)練需要更多的語(yǔ)音數(shù)據(jù)返回-2;環(huán)境太吵返回-3;數(shù)據(jù)庫(kù)滿返回-4;兩次輸入命令不同返回-5;序號(hào)超出范圍返回-6。
(2)語(yǔ)音識(shí)別器初始化函數(shù):InitRecognizer(int AudioSource),用于語(yǔ)音識(shí)別器初始化。
C語(yǔ)言調(diào)用格式:void BSR_InitRecognizer(int AudioSource)
參數(shù):定義語(yǔ)音輸入來(lái)源。BSR_MIC通過(guò)MIC語(yǔ)音輸入。
BSR_LINE_IN是LINE_IN電壓模擬量輸入。
返回值:無(wú)。
(3)獲取識(shí)別結(jié)果函數(shù):GetResult(void)用于完成語(yǔ)音識(shí)別,并返回語(yǔ)音識(shí)別結(jié)果。
C語(yǔ)言調(diào)用格式:int BSR_GetResult(void)
參數(shù):無(wú)。
返回值:無(wú)命令識(shí)別出來(lái)返回0;識(shí)別器停止、未初始化或識(shí)別未激活返回-1;識(shí)別不合格返回-2;識(shí)別出命令返回命令的序號(hào)[2]。
3 USB主機(jī)接口
USB主機(jī)接口是整個(gè)系統(tǒng)的核心。它由USB主機(jī)接口芯片和USB協(xié)議以及FAT文件系統(tǒng)等構(gòu)成。本文主要介紹USB主機(jī)接口芯片的功能和電路設(shè)計(jì)。
USB主機(jī)接口芯片采用的是Cypress公司的SL811HS,它是一款嵌入式的USB主、從控制器芯片,它可以實(shí)現(xiàn)USB主機(jī)結(jié)構(gòu)中的總線接口層的功能。其功能模塊框圖如圖4所示。SL811HS內(nèi)部的串行接口引擎實(shí)現(xiàn)了主機(jī)與總線上數(shù)據(jù)的并串轉(zhuǎn)換任務(wù)。USB主機(jī)的端點(diǎn)也是這個(gè)芯片上的部分寄存器,主機(jī)通過(guò)向這些端點(diǎn)寫(xiě)數(shù)據(jù),就可以將這些數(shù)據(jù)直接轉(zhuǎn)換為USB總線上的差模二進(jìn)制數(shù)據(jù),或者接收總線上的差模二進(jìn)制數(shù)據(jù),并存入端點(diǎn)寄存器,供主機(jī)取用[3]。
CPU對(duì)SL811HS的狀態(tài)進(jìn)行檢測(cè)和控制的操作都是基于寄存器實(shí)現(xiàn)的,因此從硬件的角度來(lái)看,系統(tǒng)軟件的編程就是對(duì)SL811HS的一系列寄存器和緩沖區(qū)的讀/寫(xiě)訪問(wèn)。
由于系統(tǒng)只實(shí)現(xiàn)USB主機(jī)的功能,所以將控制SL811HS的主/從機(jī)工作方式的M/S管腳直接接地,使USB接口工作在主機(jī)方式。其中SL811HS的A0功能較為靈活,它為低電平時(shí)表示數(shù)據(jù)線上的數(shù)據(jù)是SL811HS的RAM空間的地址指針。而緊接著置位A0實(shí)現(xiàn)讀寫(xiě)指定地址的RAM中數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)的傳輸。SL811HS支持地址自增模式,即可以將連續(xù)地址單元中的內(nèi)容讀出傳送,而不用再次寫(xiě)入地址指針,從而大大的提升數(shù)據(jù)傳輸?shù)挠行?。圖5為SL811HS的外圍電路及引腳定義。
4系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要完成對(duì)語(yǔ)音的識(shí)別,并將識(shí)別的結(jié)果通過(guò)文件系統(tǒng)層提供的文件操作函數(shù)寫(xiě)入到U盤(pán)。而U盤(pán)在接入到系統(tǒng)時(shí)需要完成對(duì)USB設(shè)備的枚舉,在確定為存儲(chǔ)設(shè)備后,又要進(jìn)行海量存儲(chǔ)設(shè)備的枚舉,以完成對(duì)U盤(pán)的各參數(shù)的提取。本文重點(diǎn)介紹系統(tǒng)的主設(shè)計(jì)流程。
評(píng)論