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