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