本發(fā)明涉及信號增強和噪聲消除,具體涉及一種基于矩形麥克風陣列的語音信號增強系統(tǒng),屬于語音技術、信號處理技術領域。
背景技術:
隨著智能語音識別技術的發(fā)展,語音信號需要進行實時、準確的采集,對麥克風的語音還原度要求越來越高。由于語音環(huán)境的復雜性,單麥克風采集到的語音往往會衰減較大,并伴隨著很多干擾?;邴溈孙L陣列的語音采集方法可以實現(xiàn)準確的信號采集,并增強語音信號的信噪比。麥克風陣列用于語音采集,就是將多個麥克風按照一定的幾何結構布放,利用不同麥克風的空間信息,對各個麥克風采集到的信號聯(lián)合處理,從而增強特定方向的信號,并抑制其他方向的干擾,即波束形成處理。
將麥克風陣列用于實際的語音信號增強系統(tǒng)中,需要綜合考慮以下幾個方面的問題。第一,多陣元信號流向問題。陣列系統(tǒng)代表著多陣元,對應的硬件資源需求較大,必須平衡好體積和性能之間的關系。第二,ad采集同步問題。麥克風輸出的是模擬信號,需要通過ad轉換成數(shù)字信號處理,那么多個麥克風同時轉換時必須保證各個陣元間的時間同步,否則會引起信號失配,降低語音可懂度。第三,語音輸出方式。經(jīng)過處理后的語音固然可以以數(shù)字形式保存,但并不直觀,進一步的音頻處理可以直接播放處理后的語音信號,實現(xiàn)實時的微弱語音采集和放大,在工程上具有更強的實用性。
目前,國內的麥克風陣列處理尚處于發(fā)展階段,主要的工作集中在各種陣列處理算法和語音處理的結合上,研究重點放在室內和近距離場景,信噪比相對而言比較高。實際的采集一般是用其他采集設備連接麥克風陣列,將數(shù)據(jù)采回后再做其他處理。這種方式受采集設備的限制較大,因此使用場景十分有限。近年來,也出現(xiàn)了一些比較成熟的基于麥克風陣列的采集處理系統(tǒng),這些系統(tǒng)由于陣元數(shù)和陣型的限制,往往只能作用于比較近的距離,對衰減較大的語音信號沒有還原能力,無法滿足多方面的需求。
技術實現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術的不足,提供一種基于矩形麥克風陣列的語音信號增強系統(tǒng),是一種多通道陣列語音增強的解決方案,該系統(tǒng)可以提高接收語音信號的信噪比,以實現(xiàn)微弱語音信號的增強,從而提高可識別度。
本發(fā)明的基于矩形麥克風陣列的語音信號增強系統(tǒng),該系統(tǒng)包括n通道麥克風面陣、主控電路、信號調理電路、a/d采集電路、音頻放大電路;
所述的n通道麥克風面陣采用矩形陣列,各麥克風之間同向布放,用于接收外界信號,實現(xiàn)將聲信號轉換為電信號;
信號調理電路,用于將麥克風面陣獲得的電信號進行放大和濾波,并傳輸給a/d采集電路,將信號調理電路輸出的模擬信號轉化為數(shù)字信號并進行串并轉換后輸入到主控電路,主控電路用于將輸入信號傳輸至網(wǎng)絡傳輸模塊,同時對輸入信號求取數(shù)據(jù)均值,發(fā)送至音頻放大電路;此外,主控電路還用于配置系統(tǒng)的工作參數(shù)以控制a/d采集電路的工作模式與同步模式,所述的主控電路采用zynq7系列芯片實現(xiàn)。
上述技術方案中,所述的n通道麥克風面陣通常選用8行8列等間距布放的矩形陣列,各麥克風之間間距0.05m。
所述的信號調理電路采用ad8667運放芯片實現(xiàn),具有放大、濾波和差分輸出的功能,其中通過電阻的調節(jié)可以實現(xiàn)10倍放大;通過兩塊ad8667運放芯片實現(xiàn)285hz-3687hz的濾波,其通帶衰減為-3db,阻帶衰減為-30db;輸出運放將模擬信號差分輸出,提高輸出的穩(wěn)定性。
所述的a/d采集電路采用兩塊ads1601芯片實現(xiàn)80通道的ad采集。其中每塊ads1601芯片將信號串并轉換后變?yōu)椴⑿械?0路16bit數(shù)據(jù),需要拆分為16+16+8的形式,依次進行數(shù)字濾波處理,先處理完的會存入寄存器,等待所有的40通道處理完再輸出。
對所述的40路16bit數(shù)據(jù)進行數(shù)字濾波處理后,將2個16bit的數(shù)據(jù)拼接為一個32bit數(shù)據(jù),并將其轉化為無符號數(shù)分時發(fā)送。
本發(fā)明的有益效果為:
(1)本發(fā)明提供了一種多通道陣列語音增強的解決方案。麥克風陣列的陣型可以選用8行8列等間距布放的矩形陣列,各麥克風之間同向布放,保證波束指向一致性。通過多陣元接收數(shù)據(jù)的聯(lián)合處理,抑制其他方向的干擾,增強語音信號的信噪比,最終實現(xiàn)語音信號的還原。64陣元提供了較大的陣增益,大大拓展了該系統(tǒng)的適用性,可作用于室外遠距離微弱信號的增強。
(2)本發(fā)明給出了一種軟核加硬核的系統(tǒng)開發(fā)方式,主控電路采用zynq7系列芯片,即arm+fpga的架構,在麥克風處理系統(tǒng)中具有很強大的靈活性。fpga負責實現(xiàn)數(shù)據(jù)的同步和傳輸,而arm核本身是一個操作系統(tǒng)平臺,可以進行發(fā)出各種指令并植入算法。在本發(fā)明中,可以采用arm核來發(fā)送命令,協(xié)調整個系統(tǒng)工作;主要的數(shù)據(jù)傳輸和波束形成處理都在fpga中完成。
(3)本發(fā)明的輸出有兩種形式。一是各通道麥克風采集的信號以數(shù)字形式通過千兆以太網(wǎng)傳輸出去,二是直接輸出處理后的音頻信號。前者可以用于進一步的研究工作,而處理后的音頻信號可連接音頻設備獲取直觀的語音增強效果。
附圖說明
圖1是本發(fā)明的語音信號增強系統(tǒng)處理流程圖;
圖2是主控電路的硬件資源圖;
圖3是主控程序的任務流程圖;
圖4是主控電路發(fā)送寫命令的過程示意圖;
圖5是寫命令時序圖;
圖6是主控電路通過千兆以太網(wǎng)通信的處理流程圖;
圖7是主控電路對信號求取數(shù)據(jù)均值后輸出的處理流程圖;
圖8是圖7相應的硬件框圖;
圖9是a/d采集電路的硬件資源圖;
圖10是a/d采集電路的硬件流程圖;
圖11是a/d采集電路中同步和串并轉換過程;
圖12是a/d采集電路中分時發(fā)送過程;
圖13是音頻放大電路與主控電路ddc模塊信號匹配過程。
具體實施方式
下面結合具體實例對本發(fā)明技術方案進行詳細闡述。
本發(fā)明系統(tǒng)的主要目的是實現(xiàn)多通道數(shù)據(jù)的采集和處理,并整合為音頻輸出。
該系統(tǒng)主要包括n通道麥克風面陣、主控電路、信號調理電路、a/d采集電路、音頻放大電路;n通道麥克風面陣和信號調理采集電路實現(xiàn)聲電信號轉換、信號放大濾波和模數(shù)轉換功能,通過這一系列的前置處理,可以將聲信號轉化為數(shù)字信號輸入到主控電路處理。主控電路除了對輸入信號進行處理外,還負責控制配置系統(tǒng)的工作參數(shù),控制采集電路的工作模式與同步模式。后續(xù)的音頻放大和千兆以太網(wǎng)則分別輸出直接可聽的語音信號和各通道采集的數(shù)字原始信號。該系統(tǒng)可以提高接收語音信號的信噪比,以實現(xiàn)微弱語音信號的增強,從而提高可識別度。
主控電路
主控電路是整個系統(tǒng)的核心,它控制著整個電路的工作參數(shù)和運行流程。電路以一塊xilinx的zynq7系列芯片為核心,,擁有由兩顆
主控電路軟件設計
主控模塊負責控制與協(xié)調系統(tǒng)其它各功能模塊的運作,這些控制與協(xié)調任務即由主控程序實現(xiàn)。由于各功能模塊都是同時工作的,主控程序采用多任務模式,每個任務同一個或多個模塊相關聯(lián),實現(xiàn)相應的控制的功能,再通過不同任務間的交互與同步實現(xiàn)整個系統(tǒng)的協(xié)調工作。
主控電路設計成三個任務模式:同步任務,傳輸任務,處理任務。圖3給出了主控程序三個任務流程與其它功能模塊、部件之間,以及三個任務流程之間的關系。
主控電路硬件設計
對應上述的三個任務,主控電路硬件模塊主要實現(xiàn)了以下三個方面的內容。
第一,通過主控電路發(fā)出指令,控制采集處理電路的運行和同步。如圖4所示。
ps發(fā)送寫命令,通過axi總線傳遞給comport口,再通過i/o接口控制下層電路進行采集的操作。目前ps的命令模式有兩種,一種是開始寫,以02為標志;另一種是寫關閉,以04為標志。
pl接收到02指令后,對后續(xù)的數(shù)據(jù)頭進行匹配,檢測到匹配頭a011后,發(fā)出同步信號sync和采集開始信號g_start,數(shù)據(jù)在一個wren的寫使能控制下寫入fifo中。電路時序圖如圖5。
第二,采集模塊開始工作后,數(shù)據(jù)流被采集模塊存儲,此時主控電路發(fā)出指令,將數(shù)據(jù)通過dma(directmemoryaccess,直接內存存取)移入ps。ps再將arm內存中的數(shù)據(jù)通過千兆以太網(wǎng)儲存到外部設備中,以便后續(xù)處理。其一般的處理過程如圖6所示。
在pl采集的數(shù)據(jù)達到一定的長度后,pl給ps發(fā)出中斷指令,中斷指令由prog_full這個信號來判斷。prog_full判斷fifo存儲中的數(shù)據(jù)是否大于256個,如果大于256個,則拉高電平,系統(tǒng)檢測到prog_full上升沿后產(chǎn)生irq中斷,否則拉低電平。ps響應中斷,經(jīng)由dma將pl的數(shù)據(jù)搬運到ps中。之所以選用dma,是因為pl只是硬件邏輯,本身沒有地址這一概念;而ps是用內存地址進行數(shù)據(jù)管理。通過dma,可以實現(xiàn)無延遲的內存地址搬移,且處理速度快。這樣pl發(fā)出中斷指令到ps接收數(shù)據(jù)的時間可以忽略不計,不會影響pl的處理效率。將數(shù)據(jù)讀入ps處理模塊后,數(shù)據(jù)通過千兆以太網(wǎng)送出。
除了上述arm核的數(shù)據(jù)輸出之外,利用fpga中的組合邏輯也可以實現(xiàn)數(shù)據(jù)處理。采集模塊工作之后,數(shù)據(jù)流進入組合邏輯處理,再通過數(shù)模轉換變?yōu)槟M信號輸出,處理過程如圖7所示。
數(shù)據(jù)流為n通道的ad采集到的信號,通過fifo將數(shù)據(jù)傳輸?shù)教幚砟K。目前采用的處理方法是n通道對應數(shù)據(jù)相加求和,再求取平均來實現(xiàn)0度方向上的波束形成處理。ddc模塊實現(xiàn)的是數(shù)字信號加長處理的功能,目的是為了匹配音頻放大的輸入信號。實現(xiàn)流程圖如圖8。
外圍接口電路
外圍接口電路主要包括信號調理電路、信號采集電路和音頻放大電路,主要是配合主控電路進行數(shù)據(jù)采集和模擬信號轉音頻輸出。
首先,遠處的語音信號由麥克風陣列的n個陣元接收到,各陣元將聲信號轉化為模擬電信號輸入到信號調理電路中。信號調理電路對n個通道的模擬電信號進行放大、濾波,再差分輸出至ad采集模塊。ad模塊由一塊spartan3系列fpga芯片負責與各adc通信,數(shù)字帶通濾波,以及與主控電路通信。而最后的音頻放大電路接收ddc輸出的模擬信號,并轉換為音頻信號輸出。下面依次介紹各個模塊。
麥克風陣列和信號調理電路
目前采用的麥克風陣列是8x8的面陣,各陣元之間以0.05m均勻分布,能夠提供較大的陣增益,顯著增強微弱信號。麥克風內置音頻放大電路,工作電壓+12v,工作電流約17ma,在各種環(huán)境下的表現(xiàn)都較為穩(wěn)定。
信號調理電路主要由adi公司的ad8667運放和一些電阻電容組成,實現(xiàn)了放大、濾波和差分輸出的功能。
其中通過電阻的調節(jié)可以實現(xiàn)10倍放大;而帶通濾波器通過兩塊ad8667運放實現(xiàn)了285hz-3687hz的濾波,其通帶衰減為-3db,阻帶衰減為-30db;輸出運放將模擬信號差分輸出,提高輸出的穩(wěn)定性。
ad采集電路
ad采集電路將差分語音模擬信號轉化為數(shù)字信號,并在主控電路的控制下,進行進一步的數(shù)字帶通濾波。其硬件框圖如圖9所示,實際系統(tǒng)中,采用了兩套相同的該系統(tǒng),以實現(xiàn)最多80通道的ad采集。根據(jù)該系統(tǒng),詳細的硬件流程圖如圖10。
ad采集芯片ads1601將采集到的模擬信號轉換為數(shù)字信號,以串行形式將40路信號發(fā)給后續(xù)模塊,即40位的1bit數(shù)據(jù)串行發(fā)送給串并轉換模塊。ad采集芯片的采樣率為48khz。
串并轉換模塊在工作時,先利用一個同步信號使各路信號在同一個時間點開始取樣,由于ad采集輸出的是串行信號,40路的串行信號需要轉化為并行,因此在每個時鐘上升沿,都將40位1bit數(shù)據(jù)同時存入40個寄存器中,直至各個寄存器都存完16bit的數(shù)據(jù)。實際的同步和采集如圖11所示。根據(jù)上述分析,串并轉換模塊的實際時鐘周期為48k×16。
經(jīng)過串并轉換,信號變?yōu)椴⑿械?0路16bit數(shù)據(jù),輸入至數(shù)字濾波模塊。數(shù)字濾波器的實現(xiàn)受制于實際的硬件電路,主要表現(xiàn)在兩個方面。一是輸入通道數(shù)的限制,數(shù)字濾波器的最大處理能力是16個通道,因此40通道需要拆分為16+16+8的形式,依次進行處理。先處理完的會存入寄存器,等待所有的40通道處理完再輸出。二是濾波范圍的限制,由于片上資源有限,不可能設計過高的濾波器階數(shù),因此無法精確實現(xiàn)語音信號頻率300-3400hz的帶通濾波,只能實現(xiàn)3400hz的低通濾波。
處理完畢的40路16bit信號經(jīng)由分時模塊發(fā)送。出于發(fā)送效率的考慮,將2個16bit的數(shù)據(jù)拼接為一個32bit數(shù)據(jù),并將其轉化為無符號數(shù)輸出。分時發(fā)送和轉換過程見圖12。
最后,32bit的信號經(jīng)由comport口變?yōu)槊縝yte輸出。每個采集模塊的數(shù)據(jù)率為48k×40×16bit=30.72mbps,整個系統(tǒng)的數(shù)據(jù)率為30.72m×2=61.44mbps。
ddc和音頻放大模塊
音頻放大電路以一塊32bit立體聲語音dac芯片es9018為核心,可以實現(xiàn)雙通道語音信號的數(shù)模轉換,模擬濾波與放大,其輸出可直接接耳機或喇叭等設備。音頻放大電路本身自帶dac芯片,不需要額外進行數(shù)模轉換,但是其輸入信號具有一定的要求,因此主控模塊中的ddc模塊實際上是為了滿足音頻電路的輸入要求而設計的數(shù)據(jù)轉換模塊。
兩個模塊之間的匹配過程如圖13所示。
首先,主控電路中的ddc模塊給出clk時鐘和lrck時鐘,lrck時鐘的信號1對應左聲道,信號0對應右聲道。那么ddc模塊的輸入32bit信號din就根據(jù)lrck時鐘信號分別劃分為兩個16bit信號din[31:16]和din[15:0]。但是音頻放大模塊需求的d信號輸入必須是對應單聲道的32bit數(shù)據(jù),因此分別在din[31:16]和din[15:0]后填16位0即可實現(xiàn)轉換。轉換后的d信號依次輸入音頻放大電路中的dac模塊,輸出模擬信號以供耳機或者喇叭播放。
采用上述的系統(tǒng),可以實現(xiàn)如下幾點:
(1)本發(fā)明實現(xiàn)了約50m距離,背景噪聲約60db情況下的語音信號還原。
(2)本發(fā)明通過以太網(wǎng)接口,將最多80通道的數(shù)據(jù)準確的傳輸?shù)胶蠖说膒c機上,以供后續(xù)處理。
(3)本發(fā)明實現(xiàn)了處理結果直接可聽的輸出方式,通過音頻輸出口連接音頻設備可以實時播放輸出語音。