本發明涉及計算機應用技術,特別涉及基于人工智能的語音活動性檢測方法和裝置。
背景技術:
目前,人工智能技術已經得到了廣泛應用,人工智能(Artificial Intelligence),英文縮寫為AI,它是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。人工智能是計算機科學的一個分支,它企圖了解智能的實質,并生產出一種新的能以人類智能相似的方式做出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等。
如語音活動性檢測(VAD,Voice Activity Detection)是機器人語音交互過程中的一項重要技術。
機器人需要對獲取到的當前幀信號進行識別,以確定其中是否存在語音信息,即確定該信號是否為語音信號,如果為語音信號,后續可相應地響應用戶的需求等。
對獲取到的各幀信號進行識別,以確定各幀信號是否為語音信號的操作即可稱為語音活動性檢測。
現有技術中,主要基于語音信號的一些規則特征來進行語音活動性檢測,比如,利用語音信號與噪聲信號之間的某些特征的差異進行區分,包括信號能量、過零率、倒譜、長時譜等,通過閾值比較和邏輯運算,確定是否為語音信號。其中比較典型的方法包括雙門限檢測法和基于自相關極大值的語音活動性檢測方法等。
但上述方法受環境噪聲的影響很大,因此檢測結果的準確性較低。
技術實現要素:
本發明提供了基于人工智能的語音活動性檢測方法和裝置,能夠提高檢測結果的準確性。
具體技術方案如下:
一種基于人工智能的語音活動性檢測方法,包括:
獲取待處理的當前幀信號;
分別確定出所述信號的信號能量估計值以及基頻和諧波能量之和估計值;
根據所述信號能量估計值以及所述基頻和諧波能量之和估計值確定出所述信號的語音活動性判斷參數;
根據所述語音活動性判斷參數確定出所述信號是否為語音信號。
一種基于人工智能的語音活動性檢測裝置,包括:獲取單元、第一能量估計單元、第二能量估計單元和語音活動性判斷單元;
所述獲取單元,用于獲取待處理的當前幀信號,并將所述信號分別發送給所述第一能量估計單元和所述第二能量估計單元;
所述第一能量估計單元,用于確定出所述信號的信號能量估計值,將所述信號能量估計值發送給所述語音活動性判斷單元;
所述第二能量估計單元,用于確定出所述信號的基頻和諧波能量之和估計值,將所述基頻和諧波能量之和估計值發送給所述語音活動性判斷單元;
所述語音活動性判斷單元,用于根據所述信號能量估計值以及所述基頻和諧波能量之和估計值確定出所述信號的語音活動性判斷參數,根據所述語音活動性判斷參數確定出所述信號是否為語音信號。
基于上述介紹可以看出,采用本發明所述方案,根據語音的濁音中獨有的基頻和諧波特征,并結合信號能量,來實現語音活動性檢測,從而克服了現有技術中的問題,進而提高了語音活動性檢測結果的準確性。
【附圖說明】
圖1為本發明所述基于人工智能的語音活動性檢測方法實施例的流程圖。
圖2為本發明所述基于人工智能的語音活動性檢測裝置實施例的組成結構示意圖。
圖3為現有一段語音信號的波形與頻譜圖。
圖4為采用本發明所述方案對圖3所示語音信號進行語音活動性檢測的檢測結果示意圖。
【具體實施方式】
語音由清音和濁音結合而成,語音學中,將發音時聲帶振動的音稱為濁音,將發音時聲帶不振動的音稱為清音。對于語音來說,濁音的能量和持續時間均遠大于清音,因此,任何有意義的語音片段中必然會包含一定長度的濁音。濁音又主要包括基頻和諧波兩部分,對濁音進行分析可知,其能量主要集中在基頻和諧波中。
各種環境噪聲均不具備濁音的這種特征,因此,只要能夠在信號中檢測到濁音的諧波特征等,再結合語音能量一般高于噪聲能量的特點,即可比較準確地確定出信號是否為語音信號。
為了使本發明的技術方案更加清楚、明白,以下參照附圖并舉實施例,對本發明所述方案作進一步地詳細說明。
實施例一
圖1為本發明所述基于人工智能的語音活動性檢測方法實施例的流程圖,如圖1所示,包括以下具體實現方式。
在11中,獲取待處理的當前幀信號;
在獲取到待處理的當前幀信號之后,還可對該信號進行預處理;
在12中,分別確定出該信號的信號能量估計值以及基頻和諧波能量之和估計值;
在13中,根據信號能量估計值以及基頻和諧波能量之和估計值確定出該信號的語音活動性判斷參數;
在14中,根據語音活動性判斷參數確定出該信號是否為語音信號。
以下分別對上述各部分的具體實現進行詳細說明。
1)預處理
在獲取到待處理的當前幀信號之后,分別確定出該信號的信號能量估計值以及基頻和諧波能量之和估計值之前,可先對該信號進行預處理。
預處理主要包括:依次對該信號進行加窗處理、快速傅里葉變換(FFT,Fast Fourier Transformation)以及求取頻譜能量。
可選擇漢明窗來對該信號進行加窗處理,漢明窗表示如下:
相應地,加窗處理后的信號可表示為:
swin(n)=hamm(n)·s(n),n=1,…,L; (2)
s(n)表示加窗處理之前的信號,L表示該信號(數字信號)的幀長,L一般為2的正整數次方,如256,以便于進行快速傅里葉變換。
之后,可對該信號的加窗處理結果swin(n)進行快速傅里葉變換,得到頻域信號如下:
sfft(k)=FFT[swin(n)],k=1,…,L; (3)
進一步地,可在式(3)的基礎上求取出該信號的頻譜能量:
sspectrum(k)=abs[sfft(k)],k=1,…,L; (4)
abs表示取模運算。
2)信號能量估計值
首先,可根據該信號的幀長L和采樣率fs,確定出離散頻點binfmax,binfmax小于L;之后,可根據k的取值從1~binfmax時分別對應的sspectrum(k),確定出該信號的信號能量估計值Elg。
binfmax=floor(A/fs·L); (5)
floor表示向下取整,A表示預先設定的頻率值,A大于3400Hz,由于語音信號的頻率范圍為20~3400Hz,因此A的取值需要大于3400Hz,具體取值可根據實際需要而定,比如可為4000Hz,信號的采樣率fs可為16KHz等。
在得到binfmax之后,可計算出該信號的能量值如下:
即將式(4)中k的取值從1~binfmax時分別對應的sspectrum(k)的平方求和之后再求平均。
語音信號的能量通常用分貝進行表示,這跟人耳的聽覺效應有關,采用分貝表示聲音的大小更符合人耳對聲音大小變化分辨的聽覺習慣,因此,可對式(6)中得到的E取log10,從而得到信號能量估計值Elg如下:
Elg=lg(1+E)。 (7)
3)基頻和諧波能量之和估計值
語音信號的基頻的頻率范圍一般為60~400Hz,諧波頻率是基頻頻率的整數倍,因此濁音在頻率上存在均勻分布的能量極值,其間隔等于基頻,濁音即使受到各種環境噪聲的影響,一般也至少能夠保持3~5個能量比較明顯的諧波成分,因此,可搜尋距離基頻最近的N條諧波,以所有可能的基頻與對應的N條諧波能量之和為比較標準,取能量最大的頻點作為基頻位置,從而最終確定出信號的基頻和諧波能量之和估計值。
具體地,可首先確定出基頻對應的離散頻點fw的取值范圍[flower,fupper],之后,可針對位于所述取值范圍內的每個fw的取值,分別確定出該取值下的基頻與距離基頻最近的N條諧波的能量之和,并將取值最大的作為基頻和諧波能量之和估計值Eval。
N為大于1的正整數,具體取值可根據實際需要而定,比如可為4。
flower=floor(B1/fs·L);(8)
fupper=floor(B2/fs·L);(9)
B1表示基頻頻率的最小取值,B2表示基頻頻率的最大取值,如B1的取值可為60Hz,B2的取值可為400Hz。
參照式(4),sspectrum(n·fw)表示當k的取值為n·fw時對應的sspectrum(k),n·fw小于L,假設N的取值為4,那么式(10)中,分別將sspectrum(1·fw)、sspectrum(2·fw)、sspectrum(3·fw)、sspectrum(4·fw)和sspectrum(5·fw)相加求和。
在針對位于取值范圍[flower,fupper]內的每個fw的取值,分別計算出對應的之后,可選取出其中取值最大的作為所需的基頻和諧波能量之和估計值Eval,即:
4)語音活動性判斷
對于11中獲取到的當前幀信號,在分別按照2)和3)中所述方式獲取到該信號的信號能量估計值Elg以及基頻和諧波能量之和估計值Eval之后,可進一步得到該信號的語音活動性判斷參數Ecomb如下:
Ecomb=max{0,Elg-Elg,noise}·max{0,Eval-Eval,noise}; (12)
Elg,noise表示預先確定的噪聲條件下的信號能量閾值;
Eval,noise表示預先確定的噪聲條件下的基頻和諧波能量閾值。
對于一段包含語音信號的待處理信號來說,通常初始的一段時間內均為環境噪聲,接下來才會出現語音信號,因此在初始階段,可不進行語音活動性判斷,而是對計算得到的Elg和Eval進行跟蹤,以確定噪聲條件下這兩個特征的基本閾值,即Elg,noise和Eval,noise,從而作為后續語音活動性判斷的標準。
具體跟蹤過程可如下所示:
對于獲取到的待處理的當前幀信號,確定該信號的幀號是否小于或等于M,M為大于1的正整數,信號的幀號為正整數;
若是,且該信號的幀號p=1,則將該信號的Elg作為Elg,noise,將該信號的Eval作為Eval,noise,即有:
Elg,noise=Elg,Eval,noise=Eval; (13)
若是,且該信號的幀號p滿足1<p<=M,則根據該信號的Elg對Elg,noise進行更新,并根據該信號的Eval對Eval,noise進行更新;
更新后的Elg,noise=0.9·Elg,noise+0.1·Elg; (14)
更新后的Eval,noise=0.9·Eval,noise+0.1·Eval; (15)
若否,則根據該信號的Elg和Eval以及最新得到的Elg,noise和Eval,noise,確定出該信號的Ecomb。
M的具體取值可根據實際需要而定,比如可為20,通過上述介紹可以看出,對于前20幀信號,可不進行語音活動性判斷,并將根據第20幀信號的Elg和Eval進行更新后的Elg,noise和Eval,noise作為最終所需的Elg,noise和Eval,noise。
之后,從第21幀信號開始,可分別按照式(12)計算出Ecomb,并可將計算得到的Ecomb與預先設定的判決門限Ethreshold進行比較,若Ecomb≥Ethreshold,則可確定該信號為語音信號,若Ecomb<Ethreshold,則可確定該信號為非語音信號。
Ethreshold的具體取值同樣可根據實際需要而定,較佳地,取值范圍可為0.07~0.15。
以上是關于方法實施例的介紹,以下通過裝置實施例,對本發明所述方案進行進一步說明。
實施例二
圖2為本發明所述基于人工智能的語音活動性檢測裝置實施例的組成結構示意圖,如圖2所示,包括:獲取單元21、第一能量估計單元22、第二能量估計單元23和語音活動性判斷單元24。
獲取單元21,用于獲取待處理的當前幀信號,并將該信號分別發送給第一能量估計單元22和第二能量估計單元23;
第一能量估計單元22,用于確定出該信號的信號能量估計值,將信號能量估計值發送給語音活動性判斷單元24;
第二能量估計單元23,用于確定出該信號的基頻和諧波能量之和估計值,將基頻和諧波能量之和估計值發送給語音活動性判斷單元24;
語音活動性判斷單元24,用于根據信號能量估計值以及基頻和諧波能量之和估計值確定出該信號的語音活動性判斷參數,根據語音活動性判斷參數確定出該信號是否為語音信號。
以下分別對上述各單元的具體功能進行詳細介紹。
1)獲取單元21
獲取單元21在獲取到待處理的當前幀信號之后,可先對該信號進行預處理,之后將進行預處理后的信號發送給第一能量估計單元22和第二能量估計單元23。
具體地,獲取單元21可對該信號依次進行以下預處理:對該信號進行加窗處理、快速傅里葉變換以及求取頻譜能量。
可選擇漢明窗來對該信號進行加窗處理,漢明窗表示如下:
相應地,加窗處理后的信號可表示為:
swin(n)=hamm(n)·s(n),n=1,...,L; (2)
s(n)表示加窗處理之前的信號,L表示該信號(數字信號)的幀長,L一般為2的正整數次方,如256,以便于進行快速傅里葉變換。
之后,可對該信號的加窗處理結果swin(n)進行快速傅里葉變換,得到頻域信號如下:
sfft(k)=FFT[swin(n)],k=1,...,L; (3)
進一步地,可在式(3)的基礎上求取出該信號的頻譜能量:
sspectrum(k)=abs[sfft(k)],k=1,...,L; (4)
abs表示取模運算。
2)第一能量估計單元22
第一能量估計單元22可根據該信號的幀長L和采樣率fs,確定出離散頻點binfmax,binfmax小于L,并根據k的取值從1~binfmax時分別對應的sspectrum(k),確定出該信號的信號能量估計值Elg。
binfmax=floor(A/fs·L); (5)
floor表示向下取整,A表示預先設定的頻率值,A大于3400Hz,由于語音信號的頻率范圍為20~3400Hz,因此A的取值需要大于3400Hz,具體取值可根據實際需要而定,比如可為4000Hz,信號的采樣率fs可為16KHz等。
在得到binfmax之后,可計算出該信號的能量值如下:
即將式(4)中k的取值從1~binfmax時分別對應的sspectrum(k)的平方求和之后再求平均。
語音信號的能量通常用分貝進行表示,這跟人耳的聽覺效應有關,采用分貝表示聲音的大小更符合人耳對聲音大小變化分辨的聽覺習慣,因此,可對式(6)中得到的E取log10,從而得到信號能量估計值Elg如下:
Elg=lg(1+E)。 (7)
3)第二能量估計單元23
第二能量估計單元23可首先確定出基頻對應的離散頻點fw的取值范圍[flower,fupper],之后,可針對位于所述取值范圍內的每個fw的取值,分別確定出該取值下的基頻與距離基頻最近的N條諧波的能量之和并將取值最大的作為基頻和諧波能量之和估計值Eval。
N為大于1的正整數,具體取值可根據實際需要而定,比如可為4。
flower=floor(B1/fs·L); (8)
fupper=floor(B2/fs·L); (9)
B1表示基頻頻率的最小取值,B2表示基頻頻率的最大取值,如B1的取值可為60Hz,B2的取值可為400Hz。
參照式(4),sspectrum(n·fw)表示當k的取值為n·fw時對應的sspectrum(k),n·fw小于L,假設N的取值為4,那么式(10)中,分別將sspectrum(1·fw)、sspectrum(2·fw)、sspectrum(3·fw)、sspectrum(4·fw)和sspectrum(5·fw)相加求和。
在針對位于取值范圍[flower,fupper]內的每個fw的取值,分別計算出對應的之后,可選取出其中取值最大的作為所需的基頻和諧波能量之和估計值Eval,即:
4)語音活動性判斷單元24
對于獲取到的當前幀信號,語音活動性判斷單元24在分別獲取到該信號的信號能量估計值Elg和基頻和諧波能量之和估計值Eval之后,可得到該信號的語音活動性判斷參數Ecomb如下:
Ecomb=max{0,Elg-Elg,noise}·max{0,Eval-Eval,noise}; (12)
Elg,noise表示預先確定的噪聲條件下的信號能量閾值;
Eval,noise表示預先確定的噪聲條件下的基頻和諧波能量閾值。
對于一段包含語音信號的待處理信號來說,通常初始的一段時間內均為環境噪聲,接下來才會出現語音信號,因此在初始階段,可不進行語音活動性判斷,而是對計算得到的Elg和Eval進行跟蹤,以確定噪聲條件下這兩個特征的基本閾值,即Elg,noise和Eval,noise,從而作為后續語音活動性判斷的標準。
為此,語音活動性判斷單元24還可進一步進行以下處理:
對于獲取到的待處理的當前幀信號,確定該信號的幀號是否小于或等于M,M為大于1的正整數,信號的幀號為正整數;
若是,且該信號的幀號p=1,則將該信號的Elg作為Elg,noise,將該信號的Eval作為Eval,noise,即有:
Elg,noise=Elg,Eval,noise=Eval; (13)
若是,且該信號的幀號p滿足1<p<=M,則根據該信號的Elg對Elg,noise進行更新,并根據該信號的Eval對Eval,noise進行更新;
更新后的Elg,noise=0.9·Elg,noise+0.1·Elg; (14)
更新后的Eval,noise=0.9·Eval,noise+0.1·Eval; (15)
若否,則根據該信號的Elg和Eval以及最新得到的Elg,noise和Eval,noise,確定出該信號的Ecomb。
M的具體取值可根據實際需要而定,比如可為20,通過上述介紹可以看出,對于前20幀信號,語音活動性判斷單元24可不進行語音活動性判斷,并將根據第20幀信號的Elg和Eval進行更新后的Elg,noise和Eval,noise作為最終所需的Elg,noise和Eval,noise。
之后,從第21幀信號開始,語音活動性判斷單元24可分別按照式(12)計算出Ecomb,并可將計算得到的Ecomb與預先設定的判決門限Ethreshold進行比較,若Ecomb≥Ethreshold,則可確定該信號為語音信號,若Ecomb<Ethreshold,則可確定該信號為非語音信號。
Ethreshold的具體取值同樣可根據實際需要而定,較佳地,取值范圍可為0.07~0.15。
總之,采用本發明所述方案,根據語音的濁音中獨有的基頻和諧波特征,并結合信號能量,來實現語音活動性檢測,從而克服了現有技術中的問題,進而提高了語音活動性檢測結果的準確性;而且,本發明所述方案可適用于各種環境,具有廣泛適用性。
圖3為現有一段語音信號的波形與頻譜圖,如圖3所示,其中存在4段明顯的語音信號,用矩形框進行了標注,可以看出,時域上,語音信號的幅度和能量相比于噪聲均高出不少,頻域上,在語音信號存在的地方,會出現明顯的基頻與諧波特征(如矩形框中所示)。
圖4為采用本發明所述方案對圖3所示語音信號進行語音活動性檢測的檢測結果示意圖,如圖4所示,0表示不存在語音信號,可以看出,檢測結果非常準確,而且對于中間出現的短時干擾噪聲(如矩形框中所示)也能夠準確地進行區分。
在本發明所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。
上述以軟件功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)或處理器(processor)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。