紀(jì)春龍 鐘偉堅(jiān) 李天生 朱康錄 張 棟 劉華珠
(東莞理工學(xué)院 電子工程學(xué)院,廣東東莞 523808)
一種語(yǔ)音撥號(hào)手機(jī)通訊錄的設(shè)計(jì)
紀(jì)春龍 鐘偉堅(jiān) 李天生 朱康錄 張 棟 劉華珠
(東莞理工學(xué)院 電子工程學(xué)院,廣東東莞 523808)
以凌陽(yáng)16位單片機(jī)SPCE061A精簡(jiǎn)開(kāi)發(fā)板為核心,外擴(kuò)SPLC501液晶顯示模組,SPR4096存儲(chǔ)芯片模組以及4x4矩陣鍵盤構(gòu)建語(yǔ)音撥號(hào)手機(jī)通訊錄模型,實(shí)現(xiàn)輸入法的鍵入以及通訊錄條目的瀏覽、新增和搜索,并通過(guò)SPCE061A特有的語(yǔ)音識(shí)別功能實(shí)現(xiàn)通訊錄條目的語(yǔ)音撥號(hào)。
語(yǔ)音撥號(hào);手機(jī),通訊錄;SPCE061A;輸入法
當(dāng)今時(shí)代,手機(jī)是人們生活必不可少的通訊工具,接打電話是手機(jī)最基本的功能。傳統(tǒng)的手機(jī)通訊錄設(shè)計(jì),采用按鍵或觸摸屏進(jìn)行操作,在撥打電話時(shí)往往要在數(shù)目眾多的通訊錄中逐一查找指定的聯(lián)系人,十分繁瑣,耗費(fèi)很多時(shí)間。本系統(tǒng)采用的是語(yǔ)音識(shí)別技術(shù),通過(guò)語(yǔ)音向手機(jī)直接發(fā)出命令,促使其做出相應(yīng)回應(yīng),不但可以解決了手工操作的不便,同時(shí)也變得更為智能化和人性化。語(yǔ)音撥號(hào)是語(yǔ)音處理技術(shù)在結(jié)合手機(jī)應(yīng)用的過(guò)程中不斷深入的產(chǎn)物[1]。
本文使用凌陽(yáng)SPCE061A單片機(jī)作為開(kāi)發(fā)平臺(tái)[2],通過(guò)構(gòu)建手機(jī)通訊錄模型,采用特定發(fā)音人語(yǔ)音識(shí)別向系統(tǒng)錄入語(yǔ)音訓(xùn)練特征模型,系統(tǒng)匹配后得出識(shí)別結(jié)果,實(shí)現(xiàn)語(yǔ)音撥號(hào)功能。
1.1 ADC轉(zhuǎn)換器類型
ADC轉(zhuǎn)換器根據(jù)其轉(zhuǎn)換的速度與精度的劃分,大概可以分成兩類:一類是應(yīng)用于中速或低速、中等精度的數(shù)據(jù)采集儀器中。主要有逐次逼近型、積分型、壓頻變換型等。另一類是適用于高速情況下瞬態(tài)信號(hào)處理領(lǐng)域中。主要有分級(jí)型和流水線型。這次所用的是逐次逼近型的ADC轉(zhuǎn)換器。
1.2 逐次逼近型ADC轉(zhuǎn)換器工作原理
SAR ADC包括采樣保持電路、比較器、數(shù)模轉(zhuǎn)換器、逐次逼近寄存器和邏輯控制單元。模擬輸入電壓VIM由采樣保持電路采樣并保持,為實(shí)現(xiàn)二進(jìn)制搜索算法,首先由SAR LOGIC控制M位寄存器設(shè)置在中間刻度,即令最高有效位MSB為“1”電平而其余位均為“0”電平,此時(shí)數(shù)字模擬轉(zhuǎn)換器DAC輸出電壓VDAC為0.5 VREF,其中VREF為提供給ADC的基準(zhǔn)電壓。由比較器對(duì)VIM和VDAC進(jìn)行比較,若VIM>VDAC,則比較器輸出“1”電平,M位寄存器的MSB保持“1”電平;反之,若VIM<VDAC,則比較器輸出“0”電平,M位寄存器的MSB被置為“0”電平。一次比較結(jié)束后,MSB被置為相應(yīng)的電平,同時(shí)邏輯控制單元移至次高位并將其置“1”,其余位置“0”,進(jìn)行下一次比較,直至最低有效位LSB比較完畢。整個(gè)過(guò)程結(jié)束,即完成了一次模擬量到數(shù)字量的轉(zhuǎn)換,M位轉(zhuǎn)換結(jié)果存儲(chǔ)在寄存器內(nèi),并由此最終輸出所轉(zhuǎn)化模擬量的數(shù)字碼。
1.3 音頻輸入原理
利用硬件電路上8個(gè)10位ADC通道中一個(gè)專用于語(yǔ)音的輸入通道MIC-IM。模擬信號(hào)(輸入的語(yǔ)音信號(hào))先通過(guò)自動(dòng)增益控制器和放大器放大后,再進(jìn)行A/D轉(zhuǎn)換。當(dāng)A/D轉(zhuǎn)換結(jié)束后,轉(zhuǎn)換得出的數(shù)據(jù)將通過(guò)MIC-IM通道存儲(chǔ)到特定的儲(chǔ)存區(qū)中。
系統(tǒng)以SPCE061A為主控芯片,通過(guò)構(gòu)建數(shù)組通信結(jié)構(gòu),在其內(nèi)部FLASH中保存通訊錄內(nèi)容,同時(shí)還保存了語(yǔ)音識(shí)別模型,如圖1所示。SPCE061A通過(guò)掃描4*4獨(dú)立按鍵,實(shí)現(xiàn)了對(duì)液晶屏幕SPLC501操作界面的控制和顯示。同時(shí),SPR4096模組中保存了液晶所需顯示的字體,字符,數(shù)字及輸入法數(shù)據(jù)。主板上集成輸入電路模塊,通過(guò)該模塊實(shí)現(xiàn)語(yǔ)音撥號(hào)的功能。
圖1 系統(tǒng)硬件接口
構(gòu)建一個(gè)操作系統(tǒng),需要有一個(gè)可視化的人機(jī)互動(dòng)界面,這個(gè)界面可以通過(guò)菜單來(lái)實(shí)現(xiàn),如圖2所示,系統(tǒng)初始化后進(jìn)入菜單,菜單中有4個(gè)選項(xiàng),分別對(duì)應(yīng)瀏覽通訊錄條目、新增通訊錄、搜索通訊錄和語(yǔ)音撥號(hào)四個(gè)主要功能函數(shù),而瀏覽通訊錄條目又對(duì)應(yīng)一個(gè)子菜單,選擇當(dāng)中某一存入的聯(lián)系人便可進(jìn)入該聯(lián)系人的管理界面,分別有查看信息、刪除條目和設(shè)定語(yǔ)音撥號(hào)或者取消語(yǔ)音撥號(hào)三個(gè)選項(xiàng),如果語(yǔ)音撥號(hào)最大數(shù)量已滿,則只顯示前面兩個(gè)選項(xiàng)。同理,其他選項(xiàng)當(dāng)按鍵進(jìn)入時(shí),便可相應(yīng)地調(diào)用其子函數(shù),通過(guò)菜單的指引,使得系統(tǒng)的操作及功能的實(shí)現(xiàn)變得靈活方便。
圖2 菜單構(gòu)建
本設(shè)計(jì)中的通訊錄模型有兩大主體,一是通訊錄條目數(shù)據(jù)結(jié)構(gòu)的構(gòu)建[3],采用數(shù)據(jù)結(jié)構(gòu)中的雙鏈表構(gòu)建[4],這種結(jié)構(gòu)的特點(diǎn)是數(shù)據(jù)的插入、刪除和查詢等操作很方便,可以有效提高程序遍歷通訊錄的效率,容易實(shí)現(xiàn)條目按姓名排序存儲(chǔ);二是通訊錄索引的構(gòu)建,用來(lái)保存通訊錄的概要信息,便于定位通訊錄條目鏈表的首尾,以及快速查找語(yǔ)音撥號(hào)項(xiàng)目。如下:
通訊錄條目數(shù)據(jù)結(jié)構(gòu):
Typedef struct STR-PB{
Unsigned int Flag-Del;
Unsigned char Mame[16];
Unsigned char Tel-1[16];
Unsigned char Tel-2[16];
Unsigned char Email[25];
Unsigned char Other[20];
Unsigned int VoiceIdx;
sruct STR-PB*PrdItem;
struct STR-P B*MextItem;
}PHOMEBOOK;
通訊錄索引數(shù)據(jù)結(jié)構(gòu)
Typedef struct STR-PBIDX{
Unsigned int ItemMum;
PHOMEBOOK*FirstItem;
PHOMEBOOK*Las tItem;
Unsigned int Voice-Mum;
PHOMEBOOK*Voice-PBAddr[PB-MAX-VOICE];
}PHO MEBOOK-IDX;
數(shù)據(jù)結(jié)構(gòu)以節(jié)點(diǎn)的方式編排在雙鏈表當(dāng)中,每個(gè)數(shù)據(jù)節(jié)點(diǎn)都有兩個(gè)指針,分別指向直接前驅(qū)(對(duì)應(yīng)上面的struct STR-P B*PreItem和PHOMEBOOK*FirstItem)和直接后繼(對(duì)應(yīng)上面的struct STR-P B*MextItem和PHOMEBOOK*Las tItem),通訊錄條目數(shù)據(jù)結(jié)構(gòu)保存了相關(guān)聯(lián)系人的重要信息,而通訊錄索引數(shù)據(jù)結(jié)構(gòu)為快速地進(jìn)行語(yǔ)音撥號(hào)提供方便的指引。
語(yǔ)音撥號(hào)是由語(yǔ)音識(shí)別函數(shù)庫(kù)實(shí)現(xiàn)。語(yǔ)音識(shí)別是一種多維模式識(shí)別系統(tǒng),可分為特定發(fā)音人識(shí)別和非特定發(fā)音人識(shí)別兩種[5]??紤]到特定發(fā)音人識(shí)別原理較為簡(jiǎn)單,且識(shí)別率高,容易在單片機(jī)上實(shí)現(xiàn),故選擇前者。與非特定發(fā)音人識(shí)別不同的是,特定發(fā)音人識(shí)別必須先有一個(gè)“訓(xùn)練”的過(guò)程,如圖3所示。在訓(xùn)練階段,特定發(fā)音人對(duì)61單片機(jī)錄入一定語(yǔ)音,單片機(jī)對(duì)采集到的語(yǔ)音樣本進(jìn)行分析和處理,從中提取出語(yǔ)音特征信息,建立一個(gè)語(yǔ)音特征模型。其次是識(shí)別階段,單片機(jī)仍然對(duì)采集到的語(yǔ)音樣本進(jìn)行同樣的分析和處理,提取出語(yǔ)音的特征信息,然后將這個(gè)特征信息與已有的語(yǔ)音特征模型進(jìn)行對(duì)比,如果二者達(dá)到了一定的匹配度,則輸入的語(yǔ)音被識(shí)別,反之,不能識(shí)別。
凌陽(yáng)語(yǔ)音識(shí)別函數(shù)庫(kù)包含訓(xùn)練、識(shí)別、語(yǔ)音特征模型的導(dǎo)入、導(dǎo)出等功能函數(shù)。
圖3 語(yǔ)音識(shí)別過(guò)程示意圖
語(yǔ)音撥號(hào)模塊由訓(xùn)練和識(shí)別兩部分組成。訓(xùn)練部分和識(shí)別部分的程序流程如下(如圖4,圖5所示):
本方案的軟件系統(tǒng)還包含下列模塊:
按鍵掃描:掃描4×4鍵盤,以逐行掃描方式,在TMB-12 8Hz中斷服務(wù)程序中進(jìn)行,用于獲取鍵值。
SPLC501液晶模塊[6]:包括LCD顯示驅(qū)動(dòng)和漢字顯示兩部分。驅(qū)動(dòng)程序是為了方便液晶與SPCE061A的接口配置、基本的數(shù)據(jù)傳輸和提供數(shù)據(jù)處理子函數(shù)等,而漢字顯示則是在驅(qū)動(dòng)程序的基礎(chǔ)上實(shí)現(xiàn)漢字的位圖顯示,當(dāng)然也可實(shí)現(xiàn)圖形顯示功能,使用凌陽(yáng)提供的DM Tool字模提取工具,可以進(jìn)行文字取模和圖片取模。
SPR4096模塊[7]:存儲(chǔ)LCD顯示字庫(kù)和輸入法數(shù)據(jù),通過(guò)驅(qū)動(dòng)程序進(jìn)行讀取、擦除和寫入訪問(wèn)。
內(nèi)部Flash擦寫模塊:用于存儲(chǔ)通訊錄條目、索引等,當(dāng)對(duì)內(nèi)部數(shù)據(jù)修改時(shí),以頁(yè)為單位進(jìn)行擦除操作。
文字輸入模塊:通過(guò)4×4鍵盤輸入漢字(拼音輸入法)、字符、數(shù)字和英文等,并在LCD上顯示出來(lái),以便于用戶編輯通訊錄條目和搜索條目。
上述功能模塊組成了單向調(diào)用結(jié)構(gòu),各模塊之間的相互關(guān)系如圖6所示。
圖4 語(yǔ)音訓(xùn)練流程
圖5 語(yǔ)音識(shí)別流程
圖6 各模塊之間的調(diào)用關(guān)系
首先,使用Rewriter軟件向SPR4096模組燒寫漢字庫(kù)和輸入法數(shù)據(jù),注意模組需提供3V穩(wěn)壓電源,燒寫方式可選用在線調(diào)試器PROBE接口或者EZ-PROBE接口;其次,使用u'nSP集成開(kāi)發(fā)環(huán)境IDE完成各模塊的編譯與綜合,生成工程文件,并下載到向SPCE061A芯片中,連接系統(tǒng)各模塊硬件;最后檢查無(wú)誤后,上電開(kāi)機(jī),系統(tǒng)運(yùn)行后會(huì)相應(yīng)地在SPLC501液晶上顯示操作菜單,使用4x4矩陣按鍵可方便地對(duì)菜單實(shí)行操作。
經(jīng)過(guò)多次的實(shí)驗(yàn)調(diào)試和改進(jìn),本語(yǔ)音撥號(hào)通訊錄系統(tǒng)運(yùn)行穩(wěn)定,能源損耗低,語(yǔ)音識(shí)別快速,準(zhǔn)確率高,在嘈雜的環(huán)境中依然有比較好的識(shí)別效果。當(dāng)然,理想的語(yǔ)音撥號(hào)效果需在語(yǔ)音訓(xùn)練的過(guò)程中,注意以下三方面:
1)在語(yǔ)音訓(xùn)練的過(guò)程中,需要把握聲音的強(qiáng)度,聲音過(guò)小,不易提取語(yǔ)音特征模型,聲音過(guò)大,則易導(dǎo)致失真;
2)語(yǔ)音訓(xùn)練每次的時(shí)間限制在5秒內(nèi),超出則無(wú)法錄入,或記為下一次語(yǔ)音輸入,最好在訓(xùn)練時(shí)的前后預(yù)留一段時(shí)間,有助于準(zhǔn)確提取語(yǔ)音特征模型;
3)語(yǔ)音訓(xùn)練需在安靜的環(huán)境中實(shí)行,并且兩次訓(xùn)練聲音應(yīng)大體一致,否則會(huì)出現(xiàn)語(yǔ)音訓(xùn)練失敗。
圖7 實(shí)物調(diào)試和成品展示
基于凌陽(yáng)SPCE061A單片機(jī)的強(qiáng)大處理能力,利用其豐富的庫(kù)函數(shù)[8],構(gòu)造出一個(gè)手機(jī)通訊錄模型,實(shí)現(xiàn)基本的通訊錄操作及語(yǔ)音撥號(hào)功能,如圖7所示。該系統(tǒng)菜單界面友好,操作簡(jiǎn)單,可特定發(fā)音人語(yǔ)音識(shí)別,多次試驗(yàn)證明其識(shí)別結(jié)果較好,雖然測(cè)試過(guò)程中發(fā)音人的語(yǔ)氣強(qiáng)弱和環(huán)境干擾會(huì)影響系統(tǒng)的靈敏度,但其依然具有較強(qiáng)的適應(yīng)能力和穩(wěn)定性,并且特定人發(fā)音具有較強(qiáng)的保密性,能有效防止他人說(shuō)話的干擾或者控制,這在未來(lái)將會(huì)有一定地應(yīng)用前景。
[1] 沙占友,唱春來(lái),李春明.語(yǔ)音處理技術(shù)及其應(yīng)用[J].電子測(cè)量技術(shù),2000(2):35-37.
[2] 陳海宴,呂江濤,李瑞.凌陽(yáng)16位單片機(jī)經(jīng)典實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2011.
[3] 車愛(ài)靜,文環(huán)明,張艷.基于凌陽(yáng)SPCE061A單片機(jī)的語(yǔ)音控制系統(tǒng)[J].電腦開(kāi)放與應(yīng)用,2006,19(10):49-51.
[4] 王立柱.C/C++與數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2003.
[5] 鄧中亮.韋志瑜.一種名片式手機(jī)通訊錄的存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)[J].科技咨詢導(dǎo)報(bào),2007(7):85.
[6] 凌陽(yáng)大學(xué)計(jì)劃網(wǎng)站.SPLC501液晶模組產(chǎn)品說(shuō)明[EB/OL].[2012-9-2]http://www.unsp.com.cn.
[7] 凌陽(yáng)大學(xué)計(jì)劃網(wǎng)站.SPR模組產(chǎn)品說(shuō)明[EB/OL].[2012-9-2]http://www.unsp.com.cn.
[8] 何欽銘,顏暉.C語(yǔ)言程序設(shè)計(jì)[M].北京:高等教育出版社,2007.
Design of a Voice Dialing Mobile Address Book
JIChun.long ZHONG Wei.jian LITian.shen ZHU Kuan.lu ZHANG Dong LIU Hua.zhu
(College of Electronic Engineering,Dongguan University of Technology,Dongguan 523808,China)
Based on 16-bitMCU,SPCE061A of Sunplus,a voice dialingmobile address book is designed,which includes SPLC501 LCD,SPR4096 memory and 4*4 keyboard.Input type and browse,add and search address book entry are realized,by the special voice recognition function of SPCE061A,address book entry can be also changed by voice dialing.
voice dialing;mobile phone;address book;SPCE061A;input method
TP368
A
1009-0312(2014)01-0012-05
2013-10-23
2012年度東莞理工學(xué)院大學(xué)生創(chuàng)新實(shí)驗(yàn)項(xiàng)目(1181912014)。
紀(jì)春龍(1993—),男,廣東揭陽(yáng)人,主要從事電子信息工程研究。