賀國(guó)秀等



摘 要:本文旨在設(shè)計(jì)一個(gè)基于單片機(jī)的語音提醒系統(tǒng)。該系統(tǒng)以STC89C51單片機(jī)為核心,分為語音存儲(chǔ)與回放模塊、按鍵控制模塊和LED屏幕顯示模塊,同時(shí)擴(kuò)展一個(gè)256KB的外部RAM存儲(chǔ)器用于存儲(chǔ)大容量的語音信息。該設(shè)計(jì)簡(jiǎn)單易行,高效實(shí)用,在特定場(chǎng)合取得了良好的效果。
關(guān)鍵詞:語音提醒;單片機(jī);語音信號(hào)處理
中文分類號(hào): TP311 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào):2095-2163(2015)01-
Abstract: This paper aims to design a voice reminder system based on MCU. Using the STC89C51 as the microcontroller core, the system divides into voice storage and playback module, key control module and LED screen display module, while extending an external RAM memory of 256KB, used to store large-capacity voice information. The design is simple, efficient and practical, which achieves good results in certain situations.
Key words: Voice Remainder; MCU; Voice Signal Processing
0引 言
隨著社會(huì)經(jīng)濟(jì)的飛速發(fā)展,信息與計(jì)算機(jī)技術(shù)的不斷進(jìn)步,嵌入式技術(shù)與通信技術(shù)也相應(yīng)得到了長(zhǎng)足進(jìn)展。具體地,基于嵌入式的數(shù)字化語音信號(hào)處理即已成為信息科學(xué)高科技應(yīng)用領(lǐng)域的關(guān)注熱點(diǎn)。傳統(tǒng)的語音存儲(chǔ)與回放系統(tǒng)則因其處理速度慢、存儲(chǔ)容量小、音效差、傳輸距離有限等受到了巨大的挑戰(zhàn)。而在實(shí)際工作中,卻由于其傳輸過程中存在的語音丟失、失真以及在專門場(chǎng)所難于固定播報(bào)的局限性,使之尚未獲取預(yù)期的溝通效果。針對(duì)這一現(xiàn)象,即迫切需要一種在相關(guān)場(chǎng)合固定的、體積較小的、功能強(qiáng)大的數(shù)字化語音提醒系統(tǒng)。本文將圍繞此一問題展開研究
1 系統(tǒng)設(shè)計(jì)原理
現(xiàn)在市場(chǎng)上語音芯片種類繁多,但由于其缺乏靈活性、難以滿足用戶在不同場(chǎng)合的要求,故選用以微處理器控制芯片為核心的語音存儲(chǔ)與回放系統(tǒng)。系統(tǒng)采用STC89C51單片機(jī)作為控制芯片、麥克風(fēng)(microphone,MIC)和NE5532組成的放大電路,其中帶通濾波器和A/D模數(shù)轉(zhuǎn)換器則負(fù)責(zé)語音信號(hào)采集,D/A轉(zhuǎn)換器和揚(yáng)聲器將負(fù)責(zé)語音回放,外部存儲(chǔ)器負(fù)責(zé)語音存儲(chǔ)[1],而LED點(diǎn)陣顯示屏即負(fù)責(zé)顯示提示信息,另有單片機(jī)自帶鍵盤可負(fù)責(zé)控制語音錄入和回放。
當(dāng)按下錄入鍵,語音信號(hào)由MIC錄入,經(jīng)過放大和濾波后,送入A/D轉(zhuǎn)換器轉(zhuǎn)換為語音數(shù)字信號(hào),在單片機(jī)的控制下,就將語音數(shù)字信號(hào)存儲(chǔ)在外部存儲(chǔ)器中。當(dāng)按下回放鍵,單片機(jī)提取相應(yīng)的數(shù)字信號(hào),再經(jīng)D/A轉(zhuǎn)換為模擬信號(hào),而經(jīng)濾波和功率放大后,將由揚(yáng)聲器輸出,同時(shí)屏幕在單片機(jī)控制下,顯示語音信息的編號(hào)。
2結(jié)構(gòu)分析
本系統(tǒng)的基本思想是用A/D轉(zhuǎn)換器將語音模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)進(jìn)行存儲(chǔ),待接受命令后,再將數(shù)字信號(hào)通過D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬信號(hào)經(jīng)揚(yáng)聲器輸出。本系統(tǒng)設(shè)計(jì)結(jié)構(gòu)如圖1所示。
3 模塊設(shè)計(jì)
3.1語音存儲(chǔ)與控制模塊
本系統(tǒng)以STC89C51單片機(jī)為核心控制芯片進(jìn)行控制,負(fù)責(zé)錄音、放音、對(duì)于中斷命令的響應(yīng)和對(duì)外部存儲(chǔ)器RAM進(jìn)行讀寫操作。控制芯片控制協(xié)調(diào)各部分電路,將語音模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并存儲(chǔ)到外部存儲(chǔ)器;當(dāng)收到回放請(qǐng)求,則調(diào)出數(shù)字信號(hào)并轉(zhuǎn)換為模擬信號(hào)輸出。
存儲(chǔ)器采用隨機(jī)存儲(chǔ)器RAM。這是一種存儲(chǔ)單元的內(nèi)容可按需隨意取出或存入,且存取的速度與存儲(chǔ)單元的位置無關(guān)的存儲(chǔ)器,因此選取此外部存儲(chǔ)芯片就大大提高了系統(tǒng)的靈活性。
由上所述,語音存儲(chǔ)與回放裝置的流程圖如圖2和圖3所示。
3.2按鍵控制模塊
在單片機(jī)控制系統(tǒng)中,通過按鍵實(shí)現(xiàn)控制功能是常規(guī)選擇。本系統(tǒng)由于涉及到多個(gè)用戶的語音存儲(chǔ),因此引入按鍵來對(duì)各個(gè)用戶加以區(qū)分。按鍵的控制流程大致分為兩個(gè)方面:消除按鍵抖動(dòng)和按鍵響應(yīng)。其中,對(duì)按鍵控制的重要環(huán)節(jié)是去抖動(dòng),即消除按下和抬起瞬間的抖動(dòng),而消除抖動(dòng)后面臨的更大問題就是解決按鍵的響應(yīng)問題。下面將對(duì)其展開具體分析。
3.2.1 處理按鍵抖動(dòng)
在該環(huán)節(jié)中,按鍵抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性來決定,一般為5~10 ms[2]。去抖動(dòng)的方法有很多種,如使用R-S觸發(fā)器等的硬件方法和運(yùn)用不同算法的軟件方法等。硬件方法會(huì)增加成本和體積;而軟件方法消除抖動(dòng)則是檢測(cè)到有觸發(fā)后,將延時(shí)一段時(shí)間后再檢測(cè)觸發(fā)狀態(tài),如果與之前的一樣,則認(rèn)為有按鍵按下,這種方法的使用更為普遍。現(xiàn)在常應(yīng)用加固定軟件延時(shí)來去抖動(dòng)。具體方法就是在有按鍵按下時(shí),利用軟件延時(shí)10ms或稍長(zhǎng)的時(shí)間后再次檢測(cè)按鍵是否按下,實(shí)際上就是避開了按鍵按下時(shí)的抖動(dòng)時(shí)間[3]。
3.2.2 處理按鍵響應(yīng)
本系統(tǒng)選用的鍵盤形式為編碼式鍵盤。采用線反轉(zhuǎn)法(或者稱為行列翻轉(zhuǎn)法)對(duì)鍵盤進(jìn)行處理。實(shí)現(xiàn)方法為:
(1)初始化鍵盤狀態(tài),行全部輸出0,列全部輸出1,如果有鍵按下,則相應(yīng)的列讀回來的值應(yīng)該為低,即按鍵列的位置已經(jīng)確定。
(2)將行列反過來,把行作為輸入,列作為輸出,如果按鍵仍然被按下,則相應(yīng)的行的值應(yīng)該為低,即確定了行的位置[4]。
按鍵控制流程如圖4所示。
3.3 LED屏幕顯示模塊
LED點(diǎn)陣顯示屏具有運(yùn)行可靠安全、節(jié)能、成本低和使用方便等特點(diǎn)[5],故本設(shè)計(jì)通過單片機(jī)芯片控制行列驅(qū)動(dòng)電路在LED顯示屏上展現(xiàn)提示信息。LED顯示屏的硬件圖如圖5所示。
4軟件部分的實(shí)現(xiàn)
通過以上的研究與設(shè)計(jì),對(duì)整個(gè)系統(tǒng)進(jìn)行整合和調(diào)試。具體的程序流程圖如圖6所示。
系統(tǒng)啟動(dòng)后,由鍵盤的相應(yīng)按鍵表示有關(guān)人的請(qǐng)求錄音,同時(shí)在LED顯示屏上顯示相關(guān)提示信息,接著語音錄制與存儲(chǔ)模塊啟動(dòng)。錄制完成后存入擴(kuò)展的存儲(chǔ)器中。請(qǐng)求放音之前需先通過鍵盤的相關(guān)按鍵選擇語音信息,同時(shí)在LED屏幕上顯示提示信息,而后語音回放模塊啟動(dòng),就將相應(yīng)的語音播放出來。
5 結(jié)束語
本項(xiàng)目以STC89C51單片機(jī)為控制中心,結(jié)合語音存儲(chǔ)與回放模塊、按鍵控制模塊和LED屏幕顯示模塊,實(shí)現(xiàn)了語音提醒系統(tǒng),經(jīng)過多次實(shí)驗(yàn)和調(diào)試,具有良好的穩(wěn)定性和用戶友好性。設(shè)計(jì)成果降低了管理工作失誤,同時(shí)顯著提高了管理工作效率與溝通水平,因而本研究具有重要的現(xiàn)實(shí)意義及應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]李斌,梁龍學(xué).基于單片機(jī)的語音存儲(chǔ)與回放系統(tǒng)[J].甘肅科技縱橫,2011,01:18-20.
[2]王春武,李巖,孟祥英,尹冬梅.C51中對(duì)按鍵的處理方法[J].吉林師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2007(4):86-87.
[3]胡泊.衛(wèi)浴產(chǎn)品工作狀態(tài)自動(dòng)控制系統(tǒng)研究[D].武漢:華中科技大學(xué),2008.
[4] 倪原,楊高興,李智.全自動(dòng)梯度凝膠膠片制作裝置控制系統(tǒng)設(shè)計(jì)[J]. 西安工業(yè)大學(xué)學(xué)報(bào),2009(4):357-360.
[5]韓團(tuán)軍.基于單片機(jī)的LED點(diǎn)陣顯示控制的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011(5):180-182.