崔浩斌,劉 偉
(中船重工縱橫科技有限公司,湖北宜昌443000)
目前,基于51單片機的語音采集回放系統種類繁多,但是在語音采集及回放的效果方面有的不甚理想。為此,本系統利用AT89C51單片機[1]的精準控制,在采集通道采用射極跟隨器隔離以及4階低通濾波器濾波,保證采集語音的質量;在回放通道上,再次將存儲的信號進行濾波放大和頻率校正,進而保證回放語音的效果。同時,系統采用了三種編碼模式,并在三種編碼模式下對語音回放的效果做出對比。
系統主體由語音處理前向通道、A/D轉換模塊、單片機控制兼數據處理模塊、D/A轉換模塊、鍵盤顯示模塊及后向處理通道組成。單片機構成系統的控制中心,控制功能選擇和結果顯示。通過前級放大和加法器進行2.5V抬升,將微弱的電信號的峰-峰值放大至MAX118可讀取的0~5V,中間由射級跟隨器進行隔離,再通過300Hz~3.4kHz的帶通濾波器濾除噪聲。信號通過A/D轉換后進入單片機進行相應處理,然后經D/A轉換成模擬信號輸出,后極通過300Hz~3.4kHz的帶通濾波器使之平滑,并用音頻功放放大語音信號輸出。
系統分為采集通道、控制單元和回放通道三個部分。采集通道通過麥克風將聲音轉換成電信號,經射極跟隨器、兩級放大器、濾波器對轉換后的電信號進行隔離、放大和濾波后,再對聲音信號進行A/D采樣并存儲到單片機的外部存儲區內。回放通道通過D/A轉換將存儲區中的信號轉換成聲音,經濾波器、頻率校正及放大器后通過揚聲器放出。系統的控制單元主要由單片機構成,通過鍵盤對系統系統進行操作。系統原理框圖如圖1所示[2]。

圖1 系統原理框圖
1)麥克風電路
話筒在受到聲音振動后,其電阻隨聲音信號的變化發生大小變化。根據話筒采集語音的原理,在話筒與標準電壓之間接一47kΩ的限流分壓電阻。通過10μF耦合電容將話筒分得的變化電壓信號傳遞給初級同相放大器,輸出信號作為下一模塊的輸入信號。麥克風電路如圖2所示[3]。

圖2 麥克風電路
2)射極跟隨器
麥克風采集的信號極為微弱,且輸出阻抗不可忽略,故放大前必須進行隔離,并盡量減小信號輸出阻抗。運用電壓跟隨器的輸入阻抗很高、輸出阻抗很小這個特點,這里作為多級放大器的第一級,起隔離和緩沖的作用。射極跟隨器如圖3所示[4]。
3)前級放大器
放大器采用多級信號放大器級連,其中AV=-RF/R1。總增益AV0=AV1×AV2=0.1~50×100,兩級放大均增益可調,其中第一級放大倍數較小以保證信號不會被失真放大。放大器具體電路如圖4所示。

圖3 射極跟隨器

圖4 放大電路
4)前級濾波器
選擇巴特沃斯濾波器,4階低通濾波器級聯4階高通濾波器,具體電路如圖5所示。由巴特沃思低、高通電路階數N與增益G之間的關系可知:二級四階時V1=1.152即Q1=0.541,V2=2.235即Q2=1.31,Q=0.541×1.31=0.70871≈0.707。

圖5 巴特沃斯濾波器
中央處理模塊由A/D采樣、D/A轉換、單片機控制兼數據處理模塊組成。
AD轉換電路[5]使用ADC0809芯片,它將輸入的連續模擬量,轉換為數字量,然后再交由單片機處理和存儲。采用中斷的方式檢測電路是否轉換完成。其電路原理如圖6所示。

圖6 A/D轉換電路
內存擴展電路[6]如圖7所示,采用62256 32K來存儲由AD轉換而來的數字量,用74373來鎖存低八位的地址。

圖7 內存擴展電路
DA轉換電路如圖8所示,使用DAC0832芯片,將由62256存儲的數據輸出,轉換為模擬量,經過運算放大器轉換為電壓量輸出,這個輸出量就是經過存儲和處理之后的聲音的音量。

圖8 D/A轉換電路
回放通道中的放大器和濾波器與采集通道中的設計相同。其揚聲器電路設計為由集成功放LM386及外接元件構成,調節10kΩ的滑阻可調節揚聲器的音量。調節36kΩ的滑阻可以使電壓放大倍數的調節范圍在20~200范圍內變化。5引腳處10Ω的電阻和0.047μF的電容串聯構成矯正網絡用來進行相位補償。7引腳處的10μF的電容為旁路電容。6引腳處的0.1μF的電容去耦電容,濾掉電源的高頻交流成分。揚聲器電路如圖9所示。

圖9 揚聲器電路
系統的軟件流程[7]如圖10所示。

圖10 系統軟件流程
實驗方式為在離麥克風相同距離上用相同音量播放音樂,分別換用不同的編碼方式,對各編碼方式最終放音效果進行記錄。結果如表1所示。

表1 不同編碼方式語音播放效果
依據表中數據,對各編碼方式[8]分析如下:
采用PCM編碼(脈沖編碼調制):其原理由抽樣、量化和編碼三個步驟組成,具體實現是將信號通過A/D轉換為線性編碼,直接存入RAM,然后通過D/A轉換將音頻信號回放出來。該方法原理簡單,易于實現,且音質效果較好,幾乎不存在失真,缺點是存儲器利用率低。
采用DPCM編碼(差值脈沖編碼調制):該方法通過對抽樣信號和預測信號的差值進行編碼,可以壓縮數碼率,提高存儲空間利用率。其數學表達式為:

式中,S(n)表示當前采樣值,A(n)表示增量的累加值,A(n-1)作為預測e(n)表示A(n)與A(n-1)的差分值,以四位存入RAM。
采用插值壓縮算法:考慮到大多數情況下人聲頻率普遍在2kHz左右,可以相應降低采樣頻率以提高存儲時間,將原來8kHz的采樣率降到4kHz。為了能較好地還原原來的語音,解碼時要進行插值,可以采用線性內插或拋物線擬合內插。由于是半采樣,插入的虛擬值不可能完全與原始的真實值相等,所以輸出的語音信號會有一定的失真。
實驗表明,系統各模塊能按預期穩定工作,是一種實用的語音采集回放系統設計。同時通過三種編碼方式進行編碼,以及實際運行及理論分析可知,采用PCM編碼方式語音采集回放效果最好。