李琛宇
遼寧錦州渤海大學工學院
基于單片機的語音實時采集系統設計
李琛宇
遼寧錦州渤海大學工學院
通過ISD4004芯片的特性,運用型號為STC89C52的單片機ISD4004芯片進行控制最終完成語音實時采集系統,這個語音采集系統能夠存儲并且回放數字化語音。通過最后的結果可以得出本文設計的語音采集系統具有友好的界面,同時易操作等優點,在很多的商業領域中都能夠應用該基于單片機的語音實時采集系統。
STC89C52單片機 語音實時采集 ISD4004
傳統意義上的數字語音合成在實現以及設計的過程中都非常地繁瑣,第一步是針對于語音而創建數學模型,通過自適應差分脈沖編碼進行調制的操作,從而形成數字量,接著再把數字量寫到EPROM存儲器里面,其次是進行電路板的設計,其中的裝配主要涉及到了A/D轉換器、音頻放大器以及邏輯接口電路等。數量龐大的元器件,制作時間漫長,同時體積巨大的產品,所投入的資金成本高,語音識別中背景所造成的噪聲很大,另外更換音源也不是很方便。為了處理這種尷尬的局面,提出的方案,總結如下:
語音信號的步驟先是通過預處理,其中該過程中包括了A/ D轉換,生成的信號是離散的數字信號,接著就頻譜分析,將語音中的信號提取出來,并且將語音信號用參數化的形式表示,一般情況下,特征矩陣的形成因素需要特征矢量,接著比較數據庫中的模式與該模式,最終識別的判斷與否是由決策實現的,同時獲得判決的結果。
預處理:預處理所包括的內容十分豐富,先是完成A/D轉換,該操作主要是為了通過采樣量化的形式把錄入到麥克風中的最初模擬語音信號進行處理為數字信號。考慮到麥克風,語音信號的失真因素包括了A/D轉化器以及在語言信號傳輸的過程中通過的通道非線性響。另一方面,為了可以把頻譜分析的工作做到更好,就不得不盡量避免由于語音信號的衰減缺陷,在預處理的整個過程中,需要通過加權的方式對語音頻譜處理。在現實的生活實踐中,還存在環境噪音的因素,所以在語言識別的過程中離不開噪聲的抑制,噪聲對語音識別造成的影響等。
特征參數的提取操作是緊接著預處理的操作,在所有的語音識別中特征提取是一個重要的環節。其中在語音信號特征提取過程里面,特征參數要求主要包括如下幾點:
①能區分性以及代表性良好。②各個參數間的獨立性良好。③容易計算參數,其中可以確保實時地實現語音識別。全極點模型參數的表征需要借助于線性預測系數。在該預測系統中可以演變出多個參數,其中包括了線譜對系數、聲道面積比函數和相關系數等。
本課題設計的語音采集系統所包括的功能模塊主要總結如下:耳機音頻輸出、語音錄音功能以及MIC錄音功能等。實現系統中的單片機選擇的型號是STC89C52,語音芯片選擇是ISD4004,通過這些硬件設備從而完成錄放語音的目的。芯片中操作的控制是需要STC89C52完成,當觸發了操作命令后系統就會把命令經過SPI總線再傳送給ISD4004芯片。單片機的模塊部分所包括的操作主要分為硬件初始化、對用戶輸入鍵盤的命令進行響應,同時ISD4004芯片會把命令接收到。他們是通過SPI總線來完成相互地通信的。ISD4004模塊的響應完成需要借助于來自單片機中的命令,從而實現語音的采集、語音存儲、語音播放等。在語音采集以及語音播放的模塊中都有外圍電路,而語音采集的實現需要借助于MIC抑或是模擬信號從而把語音發送給ISD4004芯片里面,但是語音播放需要將ISD4004芯片里面的語音信號傳送給麥克風抑或是對錄線。本文基于單片機的語音實時采集系統的總體結構圖如圖1所示。

圖1 系統的總體結構圖
3.1 ISD4004變壓電路
考慮到ISD4004進行工作的時候電壓是3V,但是單片機要的供電電壓是等于5V,所以就要ISD4004正常工作的前提是需要通過變壓電路獲得3V的工作電壓。穩壓器選擇的是型號為AMS1117,AMS1117能夠實現電壓的轉換,比如將5伏的電壓轉為3伏。
3.2 語音輸入電路
將模擬輸入信號與ISD4004輸入相互連接,并且一個接口用來連接音頻與一個駐極話筒,其中的聲音錄制的方式具體可以分為兩種。選擇駐極體電容話筒,因為該話音傳感器作為寬頻高靈敏度中的一種,具有價格便宜以及體積小的特點。模擬信號的接收時直接通過音頻接口實現的,從而如此一來在錄制電子產品中的語音時候,可以中排出了外界的影響下進行。錄音電路如圖2所示。

圖2 錄音電路
3.3 語音輸出電路
ISD4004芯片的輸出端與LM386功率放大器相互連接從而實現語音輸出信號的增強。LM386的特點總結為自身功耗低、電壓范圍大、可以調整電壓增益、同時失真小等。語音輸出的方式具體包括了:①通過喇叭輸出。②通過音頻接口輸出,這個音頻接口能夠和耳機連接。其中的放音電路如圖3所示。

圖3 放音電路
程序的設計模塊主要包括了:錄音、放音以及停止等。各個模塊中的實現都需要采取模擬SPI時序的形式將對應的命令傳給ISD4004芯片中。在語言錄音以及語音放音的命令發送的過程中都要先完成通電的操作。該主程序可以對用戶按鍵的狀態進行查詢,如果用戶按下了按鍵那么就會調用對應的子程序。
4.1 主程序
給電路通電以后,主程序先是要初始化程序,接著可以對按鍵的狀態進行查詢,然后當系統是待機的狀態時候。當按下按鍵,那么就會調用按鍵所觸發的子程序,同時將對應的指示燈點亮。執行完子程序后,就會回到主程序從而進行下一個命令的等待。主程序流程圖如圖4所示。

圖4 主程序流程圖
4.2 放音子程序
按下主程序里面的放音按鍵,主程序就會調用放音子程序。第一步是這個子程序會發送2次Powerup命令給ISD4004,接著就會出現TPUD等待,當TPUD完成后就會啟動SETPLAY命令,而該命令的地址值是等于ADDR,然后再啟動PLAY命令,從而通過在特定的地址處系統啟動放音主程序,實現放音功能。放音命令的部分核心代碼為:

結語:本文設計的系統中語音采集的控制是通過單片機型號是STC89C52,進而完成了語音錄入以及語音播放等功能,該語音實時系統具有低投入成本、靈活的設計以及應用效果佳和抗干擾性強的優點。實驗驗證說明了本文設計的語音放音以及語音錄放實現效果佳,同時單片機易控制。可以把語音采集電路嵌入到另外的電路里,從而完成更加復雜的語音系統,因此研究基于單片機的語音實時采集系統具有重大的理論意義與實用意義。
[1]齊子元,謝桂海,劉毅,等.一種實時語音信號采集處理系統的設計與實現[J].計算機工程與應用,2005,41(9):105-107
[2]瞿少成,艾寧,趙橋.基于SPCE061A單片機的無線語音控制智能小車的研制[J].電子測量技術,2008,31(12):151-154
[3]劉盛鵬,方勇.基于TMS320C64xDSP/BIOSⅡ的嵌入式語音采集與盲分離系統設計[J].電子技術,2004,31(4):17-20
[4]黃昀,黃勤山.單片機語音采集與隨機實時生成[J].電子技術,1996(8):11-13