探析語音訊號的數字化噪聲抑制技術

摘要:介紹了語音訊號的數字化噪聲抑制技術。該技術通過PCM編碼對模擬語音訊號數字化,再以CPLD器件進行數字化噪聲抑制處理,然後解碼為語音輸出,從而得到優良的語音噪聲抑制效果,並可通過軟體調節噪聲抑制引數。還以應用例項介紹了電路原理,說明了設計要點。

關鍵詞:噪聲抑制 閾值 延時時間 PCM編解碼 CPLD器件

語音訊號的噪聲抑制技術是基於人耳的聲音遮蔽效應的,即當有較強的聲音訊號時,較小的噪聲訊號將被遮蔽而不易被聽到。
在具有噪聲抑制功能的語音通訊裝置中,沒有語音訊號時噪聲抑制電路將通道關閉,使噪聲訊號不能到達語音終端,避免了噪聲出現;語音訊號來到時,噪聲抑制電路自動開啟通道,這時雖然噪聲語音一起送到語音終端,但由於聲音遮蔽效應,噪聲的存在可以忽略。
模式式的噪聲抑制電路直接對語音模擬訊號進行處理,通常主要由取樣放大器、模擬比較器、模擬開關、阻容延時器件等組成。因其整合度低、引數調整困難、設定的噪聲抑制引數易受環境因素影響而漂移,使得噪聲抑制效能難以得到保證。
在為某國孫工程研製新一代語音指揮通訊裝置時,為了避免模擬式噪聲抑制技術的缺點,採用了數字化的噪聲抑制技術。這一技術,是在對模擬語音訊號進行PCM編碼後,再用CPLD(複雜可程式設計邏輯器件)對PCM碼流進行數字化噪聲抑制處理,然後將PCM訊號解碼還原為模擬語音訊號。1 噪聲抑制電路的主要技術引數
噪聲抑制電路的主要技術引數為:噪聲抑制閾值、前道時時間、後延時時間。
噪聲抑制閥值是指開啟語音通道的門限電平值。在閾值之下的訊號認為是噪聲,關閉語音通道;在閾值之上的訊號則認為是語音,開啟語音通道。這一閾值可根據環境噪聲的大小、外來干擾的嚴重程度及語音訊號的幅度而進行設定。例如,當語音信噪比為30dB時,噪聲抑制閾值可設為32mV左右。
由於語音和噪聲兩種訊號並不總是能夠完全區分開的,因此在訊號幅度超過噪聲抑制閾值或回落到閾值之下時,需要分別進行延時和後延時。
前延時時間是指語音訊號在超過閾值後到語音通道開啟的延時時間。這一時間太長將造成語音的起始音素被切除(稱為“頭切”),是不能允許的。但這一時間又不能太短,太短的話任何幅度超過噪聲抑制閾值的突發的短暫干擾都會立刻開啟語音通道並將這干擾送到語音終端,破壞靜音效果。為儘可能地吸收這類干擾又不至於造成“頭切”,根據語音聲學特徵的有關統計資料與經驗數值,前延時時間可在0.5~4ms之間選擇。
    後延時時間是指在噪聲抑制門限被開啟並自己傳送語音時,從語音訊號幅度回落至噪聲抑制閾值之下到語音通道關閉的延時時間。由於語音訊號波形的動態範圍很大,講話時又隨著語氣的變化而起伏停頓,因此後延時時間太短會造成語音的斷續,影響語音傳送質量。後延時時間太長,則造成語音停頓時噪聲拖尾,同樣影響語音質量。為兼顧這兩方面,後延時時間的量值範圍約為0.05~0.5s左右。
由於語音特點因人而異,環境噪聲和外界干擾情況又常有不同,所以上述的噪聲抑制三引數經常需要在語音通訊的過程中進行調節。在使用模擬噪聲抑制電路時,這些引數是用電位器或開關來調節的。在使用模擬噪聲抑制電路時,這些引數是用電位器或開關來調節的。採用數字化噪聲抑制技術後,通過軟體就可以設定和調節這些引數了。
2 語音訊號的數字化
採用數字化噪聲抑制技術,必須先將語音訊號數字化。模擬語音訊號的數字化有多種方法,最通用的是按照G.711標準進行PCM編碼[1]。對於頻帶為300~3400Hz的語音訊號,採用2.048MHz的取樣時鐘,以8kHz的速率進行8位取樣,取樣資料按A律編碼,偶數位交替反轉。多路語音訊號可以分配不同的取樣時隙,32個時隙(125μs)組成一幀。
PCM編解碼晶片選用National Semiconductor公司的TP3094[2]。該晶片為44引腳PLCC封裝,單一5V供電,集成了四路PCM編解碼電路,壓擴方式為A/μ律可選,片內自帶電壓基準、低通接收濾波器和帶通傳送濾波器,通過外接電阻可以調節輸入訊號的增益。
TP3094可採用長幀和短幀兩種同步方式,外接幀訊號和2.048MHz的時鐘即可工作。TP3094在進行PCM編解碼時的工作方式有8bit和32bit兩種,以8bit方式工作時需為每路語音的PCM碼提供單獨的幀同步訊號,而以32bit方式工作時只要為第一個時隙提供短幀同步訊號即可自動完成對其後連續的另三路PCM語音編碼同步。在以32bit方式作時,還可以採用多片TP3094晶片級聯工作。
圖1所示為兩片TP30094級聯成為八路PCM語音編解碼電路。圖中TP3094的VCI0~VXI3為四種語音輸入端,GXO0~GXO3為各路的增益調節端,在VXI和GXO之間接一電阻,此電阻與VXI端至訊號源間的電阻比值可決定該路語音訊號的輸入增益。VRO0~VRO3為解碼後的四路模擬語音訊號輸出端。電容C1、C2用於濾波。外接的2.048MHz主時鐘脈衝衝送到兩片TP3094的MCLK端,8kHz的幀訊號F0(由CPLD產生)送到第一片TP3094的FSX0和FSR0端,再將第一片TP3094的FSX和FSR1分別連到第二片TP3094的FSX0和FSR0端,就完成了兩片晶片的級聯。兩片以上的級聯亦可由此類推。為避免數字訊號對模擬訊號的干擾,電路中數字部分和模擬部分的供電分別佈線後再接到單一5伏電源。
兩片TP3094的PCM訊號輸出端DX並聯後送到數字噪聲抑制電路,經數字噪聲抑制電路處理後的PCM訊號再送回兩片TP3094的輸入端DR進行解碼。TSX0、TSX1是開路溝道輸出端,R1、R2為上拉電阻。在所分配的時隙輸出PCM訊號時,TSX0、TSX1為低電平,可提供給CPLD作為控制訊號。
    TP3094工作於32bit短幀方式時的時序圖如圖2所示。
輸入和輸出的PCM訊號DR、DX包含了從CH0至CH3的四路數字語音訊號,每路為一個時隙,8個bit。每路語音的PCM編碼中D7為符號位。D6~D0為數值位。FSX1和FSR1可用於級聯下一個晶片。
3 數字化噪聲抑制電路的原理框圖
數字化噪聲抑制電路的原理框圖如圖3所示。由於採用的是“自頂向下”的CPLD設計方法,這一電原理框圖本身就是最頂層的圖形設計檔案(.gdf檔案)。圖中的各個組成部分,根據需要分別採用了基本邏輯閘電路、引數化模組、以預設符合(Default Symbol)表示的文字輸入(Text Entry)和巨集功能邏輯單元(Mega Function)組合。
從PCM解碼輸出端DX輸出表示八路語音訊號的64bit序列訊號,進入64位的引數化移位暫存器模組進行串/並變攣,變換後的輸出經64位引數化鎖存器模組鎖存,每幀重新整理一次。鎖存訊號以八位為一路,依次送到八個噪聲抑制控制器(Symboll)。每個噪聲抑制控制器獨自控制一路語音通道,將PCM訊號的偶數位取反後,再將除符合位(最高位)以外的七位 數字與由S[6..0]設定的噪聲抑制門限值進行比較,比較結果輸出給延時器(Symbol2),延時器輸出則作為控制訊號送到噪聲抑制控制器。各噪聲抑制控制器輸出的PCM訊號經64位引數化稱位暫存器模組完成並/序列變換後恢復成序列PCM碼流送往兩片TP3094解碼成為具有噪聲抑制效果的語音訊號。噪聲抑制控制器還輸出八路指示訊號LED[7..0]至八隻發光二極體作為各語音通道的噪聲抑制門限指示。
Symbol3用來產生TP3094要求的幀脈衝F0,提供移閏暫存器、鎖存器、噪聲抑制控制器所需的時序訊號,併為延時器提供不同的時鐘訊號;P0、P1用來選擇PCM幀32個時隙中的哪八個時隙用於本片作語音噪聲抑制處理;TSET[3..0]用來選擇CLK1、CLK2的分頻係數以調整噪聲抑制延時時間。這些輸入都可以通過外部數字訊號進行設定和調節。
按以上方法對PCM訊號進行的數字化噪聲抑制處理使語音訊號產生一幀(125μs)的固定時延,但人耳的聽覺對這一時延是完全不能覺察的。
4 CPLD設計要點
CPLD器件選用Altera公司的EPF6016ATC100積體電路[3],內含16000個等效門,1320個邏輯單元,採用100-Pin TQFP封裝。設計軟體使用MAX+PLUS II 10.0版本[4],下面介紹設計要點。
4.1 Symbol1的設計
Symbol1實施噪聲抑制控制功能,首先通過偶數位取反將PCM碼轉換成便於作大小比較的碼型,再將D[6..0]與S[6..0]輸入的設定值進行噪聲抑制門限比較。比較結果從D端輸出到延時器,並從B端收延時訊號。根據比較結果和延時狀態決定是將輸入的PCM訊號原樣送往輸出,還是將代表無語音訊號的“55H”碼送往輸出。
    Symbol1的邏輯功能由AHDL語言編寫,具體如下:
Subdesign symbol1
(A[7..0],S[6..0],B:input;
Y[7..0],D,L:output;)
variable
E[6..0]:node;
begin
E6=!A6;E5=A5;E4=!A4;
E3=A3;E2=!A2;E1=A1;
E0=!A0;
L=!B;
if***E[6..0]>S[6..0]*** then
***D*** = B "1";
end if;
if ***B*** then
***Y[7..0]***=H"55";
else***Y[7..0]*** = A[7..0];
end if;
end;
以上文字通過編譯後即可建為預設圖形符號Symbol1。
4.2 Symbol2的設計
Symbol2實現前後延時功能,採用圖形輸入,電路圖見圖4。
圖4中CLK1、CLK2為前、後延時的計時脈衝,由2.048MHz的MCLK主時鐘經分頻後得到,分別用於前延時計數器Countr1和後延時計數器Counter2計時。當無語音訊號時,噪聲抑制控制器Symbol1的輸出D為“0”,Counter2計至Q2端為“1”後停止計數,並通過反相器將CLK2的輸入封住。Q2端的高電平同時對Counter1清零,使B輸出為“1”,噪聲抑制控制器輸出PCM碼“55H”,即無語音訊號。
當接收到的PCM訊號幅度超過設定的噪聲抑制閾值時,D變為“1”,Counter2被清零,此時Counter1脫離清零狀態開始計數器。Counter1計至Q1為“1”後B端輸出電平從“1”轉為“0”,前延時結束,Symbol1的輸出從“55H”變為轉發輸入的PCM碼。與此同時,B端的低電平將CLK1時鐘封住,只要Counter1不被清零,B始終為低。
如果接收到的PCM訊號不是連續的語音而是突發噪聲,幅度只是短暫地超過設定的噪聲抑制閾值,那麼D變為“1”後在Counter1未來得及將B變為“0”時D又回到了“0”,B的電平就一直是“1”,PCM輸出碼也始終是“55H”,突發的噪聲就不會傳到輸出端。
在話音訊號持續期間,訊號幅度在短暫時間內低於噪聲抑制閾值雖然使得D端電平有時為“0”,從而使Counter2有時脫離清零狀態開始計數,但只要訊號幅度低於噪聲抑制閾值的時間不超過設定的後延時時間,Counter2就總是在計數未滿時就被再次清零,其輸出一直保持為“0”,使B也一直為“0”,輸出與輸入的PCM訊號始終保持一致,語音不會發生繼續。只有當輸入訊號幅度低於噪聲抑制閾值的時間超過設定的後延時時間後,Q2輸出“1”,才使Counter1被清零,使B為“1”,輸出PCM碼“55H”。再有訊號來時,仍按上述流程工作。
4.3 時序的設計
數字化噪聲抑制電路必須嚴格按照標準的PCM時序工作,電路由外部提供2.048MHz的主時鐘訊號MCLK和幀同步訊號Fi。Fi用於本部分電路PCM訊號與其它電路的PCM訊號組幀時進行同步,在不需要該功能時可將Fi輸入端接高電平。
Symbol3在MCLK的作用下產生PCM編解碼電路TP3094所需的幀同步訊號F0,又從TP3094接收TSX0和TSX1訊號以產生數字噪聲抑制處理所需的時序訊號TSX、TT。為了保證PCM訊號的正確讀入、鎖存、處理和移位輸出,這些訊號間的時序關係必須如圖5所示。
    TSX由TSX0、TSX1經“與非”後得到,在每幀中所選定的八個時隙傳輸PCM訊號時為高電平。TSX為串/並行移位暫存器提供賦能訊號,在主時鐘MCLK的下降沿將來自DX端的PCM訊號讀入暫存器並移位寄存。TSX同時是PCM訊號從DR端輸出的三態門控制訊號。
TT是CPLD噪聲抑制時序中的一個重要控制訊號,由TSX延時半個主時鐘週期(244ns)後取反得到。由於TT的延時作用,使得圖3中的引數化鎖存器模組能在輸入的PCM訊號完成串/並行變換後隨即於TT的升沿將資料鎖存住。在通過並/序列移位暫存器輸出PCM訊號時,TT為高電平時把並行資料裝載進移位暫存器;TT為低電平時MCLK的上升沿將暫存器內的資料逐位地序列移出至DR端。
CPLD產生的時序訊號只能滿足圖2和圖5的要求,實現起來並不複雜,可用簡單的圖形輸入或文字輸入實現。值得注意的是,正確使用MAX+PLUS II軟體中的“Assign-Clique”[4]功能,為時序相關的功能模組指定相同的“Clique”,能夠使波形模擬的結果明顯得到優化。
5 應用成果
按照以上設計,用兩片TP3094和一片CPLD晶片再加上少量外圍器件組成的數字化噪聲抑制電路,改造了某語音指揮通訊裝置中採用類比電路噪聲抑制技術的八路語音指揮通訊電路板,得到了優良的語音噪聲抑制效果。新的電路板繼而成功地應用到新一代語音指揮通訊裝置上,交付使用者使用。更多路的數字化噪聲抑制電路也已試驗成功。