
本發明涉及語音識別技術領域,特別是涉及一種語音識別方法及裝置。
背景技術:
移動終端,是指可以在移動中使用的計算機設備,廣義地講包括手機、筆記本、平板電腦、POS機、車載電腦等。隨著集成電路技術的飛速發展,移動終端已經擁有了強大的處理能力,移動終端正在從簡單的通話工具變為一個綜合信息處理平臺,這也給移動終端增加了更加寬廣的發展空間。但是,移動終端的使用,通常需要用戶集中一定的注意力。如今的移動終端設備都配備有觸摸屏,用戶需要觸摸所述觸摸屏,以執行相應的操作。但是,用戶無法觸碰到移動終端設備時,操作移動終端便會變得極其不方便。例如,當用戶駕駛車輛或者手中提有物品的時候。
語音識別方法和總聽系統(Always Listening System)的使用,使得可以對移動終端進行非手動激活和操作。當所述總聽系統檢測到聲音信號時,語音識別系統便會激活,并對檢測到的聲音信號進行識別,之后,移動終端便會根據所識別出的聲音信號執行相應的操作,例如,當用戶輸入“撥打XX的手機”的語音時,移動終端便可以對用戶輸入的“撥打XX的手機”的語音信息進行識別,并在正確識別后,從移動終端中獲取XX的手機號碼的信息,并撥打。
但是,現有技術中語音識別方法,一般存在著語音識別速度慢且準確率低的問題。
技術實現要素:
本發明實施例解決的問題是提高語音識別的速度和準確率。
為解決上述問題,本發明實施例提供了一種語音識別方法,所述語音識別方法包括:
將獲取的待識別的聲音數據劃分為多個重疊的聲音幀,并對每個聲音幀進行快速傅立葉變換運算,得到對應的頻譜;
對所述多個重疊的聲音幀的頻譜進行遍歷,將遍歷到的當前聲音幀的頻譜劃分為無重疊的多個子帶;
分別計算當前聲音幀的多個子帶的子帶功率譜熵概率質量;
根據當前聲音幀的各個子帶的子帶功率譜熵概率質量,計算當前聲音幀的子帶功率譜熵;
當確定當前聲音幀的子帶功率譜熵大于預設的閾值時,確定當前聲音幀中包括語音信息。
可選地,所述將遍歷到的當前聲音幀的頻譜劃分為無重疊的多個子帶,包括:按照預設的子帶寬度將遍歷到的所述當前聲音幀的頻譜劃分成為無重疊的多個子帶。
可選地,采用如下的公式分別計算當前聲音幀的多個子帶的子帶功率譜熵概率質量:
其中,xi表示第i個子帶的頻譜能量,N為各個聲音幀劃分得到的子帶的數目。
可選地,采用如下的公式根據當前聲音幀的各個子帶的子帶功率譜熵概率質量,計算當前聲音幀的子帶功率譜熵:
H(x)=-∑x∈Xxi×log2xi,其中,H(x)表示聲音幀的子帶功率譜熵。
可選地,所述將遍歷到的當前聲音幀的頻譜劃分為無重疊的多個子帶,包括:將遍歷到的當前聲音幀的頻譜劃分為無重疊的12或13個子帶。
可選地,所述方法還包括:當確定當前聲音幀中包括語音信息時,對當前聲音幀進行語音識別。
本發明實施例還提供了一種語音識別裝置,所述裝置包括:
頻域處理單元,適于將獲取的待識別的聲音數據劃分為多個重疊的聲音幀,并對每個聲音幀進行快速傅立葉變換運算,得到對應的頻譜;
子帶劃分單元,適于對所述多個重疊的聲音幀的頻譜進行遍歷,將遍歷到的當前聲音幀的頻譜劃分為無重疊的多個子帶;
第一計算單元,適于分別計算當前聲音幀的多個子帶的子帶功率譜熵概率質量;
第二計算單元,適于根據當前聲音幀的各個子帶的子帶功率譜熵概率質量,計算當前聲音幀的子帶功率譜熵;
判斷單元,適于判斷當前聲音幀的子帶功率譜熵是否大于預設的閾值;
確定單元,適于當確定當前聲音幀的子帶功率譜熵大于預設的閾值時,確定當前聲音幀中包括語音信息。
可選地,所述子帶劃分單元適于按照預設的子帶寬度將遍歷到的所述當前聲音幀的頻譜劃分成為無重疊的多個子帶。
適于:所述第一計算單元,適于采用如下的公式分別計算當前聲音幀的多個子帶的子帶功率譜熵概率質量:
其中,xi表示第i個子帶的頻譜能量,N為各個聲音幀劃分得到的子帶的數目。
可選地,所述第二計算單元適于采用如下的公式根據當前聲音幀的各個子帶的子帶功率譜熵概率質量,計算當前聲音幀的子帶功率譜熵:
H(x)=-∑x∈Xxi×log2xi,其中,H(x)表示聲音幀的子帶功率譜熵。
可選地,所述子帶劃分單元適于將遍歷到的當前聲音幀的頻譜劃分為無重疊的12或13個子帶。
可選地,所述裝置還包括:語音識別單元,適于當確定當前聲音幀中包括語音信息時,對當前聲音幀進行語音識別。
與現有技術相比,本發明的技術方案具有以下的優點:
上述的方案,在當前聲音幀的子帶功率譜熵大于預設的閾值時,則確定當前聲音幀中包括語音信息,因劃分得到的各個聲音幀的子帶功率譜熵的計算較為簡單,因此,可以節省語音識別的計算資源和時間,且可以提高語音識別的準確率。
進一步地,當將每個聲音幀的頻譜按照預設的寬度劃分得到多個無重疊的子帶時,可以簡化子帶劃分的過程,提高子帶劃分的速度,進而可以提升 語音識別的速度。
進一步地,通過所述將每個聲音幀的頻譜劃分為12或13個無重疊的多個子帶,可以進一步提高語音識別的準確性。
附圖說明
圖1是本發明實施例中的一種語音識別方法的流程圖;
圖2是本發明實施例中的另一種語音識別方法的流程圖;
圖3是本發明實施例中的一種語音識別裝置的結構示意圖。
具體實施方式
為解決現有技術中存在的上述問題,本發明實施例采用的技術方案通過在確定當前聲音幀的子帶功率譜熵大于預設的閾值時,確定當前聲音幀中包括語音信息,因劃分得到的各個聲音幀的子帶功率譜熵的計算較為簡單,可以節省語音識別的計算資源和時間,且可以提高語音識別的準確率。
為使本發明的上述目的、特征和優點能夠更為明顯易懂,下面結合附圖對本發明的具體實施例做詳細的說明。
圖1示出了本發明實施例中的一種語音識別方法的流程圖。如圖1所示的語音識別方法,可以包括如下步驟:
步驟S101:將獲取的待識別的聲音數據劃分為多個重疊的聲音幀,并對每個聲音幀進行快速傅立葉變換運算,得到對應的頻譜。
步驟S102:對所述多個聲音幀的頻譜進行遍歷,將遍歷到的當前聲音幀的頻譜劃分為無重疊的多個子帶。
步驟S103:分別計算當前聲音幀的多個子帶的子帶功率譜熵概率質量。
步驟S104:根據當前聲音幀的各個子帶的子帶功率譜熵概率質量,計算當前聲音幀的子帶功率譜熵。
步驟S105:當確定當前聲音幀的子帶功率譜熵大于預設的閾值時,確定當前聲音幀中包括語音信息。
下面將結合圖2對本發明實施例中的語音識別方法做進一步詳細的介紹。
圖2示出了本發明實施例中的另一種語音識別方法的流程圖。如圖2所示的語音識別方法,可以包括:
步驟S201:將獲取的聲音數據進行重疊分幀,得到對應的多個聲音幀。
在具體實施中,首先可以對所采集的聲音信號進行模數轉換,得到對應的聲音數據。接著,可以將對應的聲音數據進行重疊分幀,得到多個聲音幀。對采集的聲音數據進行分幀,實質是對聲音數據進行短時分析。短時分析是把聲音信號分成具有固定周期的時間短段,每個時間短段是相對固定的持續聲音片段。其中,相鄰的兩個聲音幀之間部分重疊,重疊范圍可以根據實際情況進行選擇。
步驟S202:對所得到的多個聲音幀進行加窗處理。
在具體實施中,可以選擇漢明窗、漢寧窗、矩形窗等語音信號處理常用的窗函數,幀長選擇為10~40ms,典型值為20ms。其中,對語音信號進行分幀處理破壞了聲音信號的自然度,通過使用聲音幀進行加窗和回移處理等,可以解決這個問題。
步驟S203:將經過加窗處理后的聲音幀進行快速傅立葉變換運算,得到各個聲音幀對應的頻譜。
在具體實施中,聲音數據理論上來說是隨時間變化的,是一個非穩態的過程,不可以直接進行頻域的轉換。但是,由于對聲音數據進行分幀處理(短時分析),每幀的聲音數據可以認為是相對穩定的,因而可以對其應用頻域轉換。
在具體實施中,可以采用短時傅立葉變換(Short-Time Fourier Transform/Short-Term Fourier Transform,STFT))對每幀的聲音數據進行頻域轉換,以得到各個聲音幀對應的頻譜信息。其中,所得到的頻譜中包括對應的聲音信號的頻率和能量的關系。
步驟S204:對劃分得到的多個聲音幀的頻譜進行遍歷,將遍歷到的當前聲音幀的頻譜劃分為多個無重疊的子帶。
在具體實施中,因譜熵的大小僅依賴于譜的分布,因而,在一定信噪比 范圍內,譜熵對于噪聲的變化具有魯棒性。但是,由于噪聲的影響,每一個頻點的幅度也會受到影響,在極低信噪比的條件下,頻譜的結構會被噪聲破壞,影響了頻譜檢測的性能,因此,考慮到即使在很低的信噪比水平下,聲音幀中仍然可能存在信噪比較高的頻帶,利用子帶算法可以在一定程度上減少單頻點幅度對噪聲的敏感性。
在具體實施中,可以按照預設的寬度將各個聲音幀劃分成為重疊的多個子帶。其中,當最后一個子帶的寬度小于預設的寬度時,可以將最后一個子帶劃歸為倒數第二個子帶,與倒數第二個預設寬度的子帶一起作為最后一個子帶。
步驟S205:根據各個子帶的頻譜能量,計算得到當前聲音幀中多個子帶的子帶功率譜熵概率質量,并根據當前聲音幀的各個子帶的子帶功率譜質量,計算得到當前聲音幀的子帶功率譜熵。
在具體實施中,譜熵可以用于VAD中對聲音數據中的靜音部分和語音部分進行識別。這種識別特性,使得譜熵可以對語音識別。本領域的技術人員可以知道的是,共振峰以及它們所在的位置對于語音識別具有重要的作用,而譜熵則可以對共振峰進行捕捉。因此,譜熵的共振峰捕捉能力可以用于語音識別中。
在具體實施中,當對遍歷到的聲音幀劃分為多個無重疊的子帶之后,可以通過將子帶的能量進行歸一化運算,得到各個子帶的子帶功率譜熵概率質量函數,即:
其中,xi表示第i個子帶的頻譜能量,N為各個聲音幀劃分得到的子帶的數目。
接著,根據子帶功率譜熵的構造原理,可以采用如下的公式計算得到當前聲音幀的子帶功率譜熵:
H(x)=-∑x∈Xxi×log2xi (2)
其中,H(x)表示聲音幀的子帶功率譜熵。
同時,本申請的發明人通過研究發現,將各個聲音幀劃分得到的子帶的數目,對于語音識別的性能具有重要的影響,當將各個聲音幀劃分成為12個或者13個子帶的時候,可以產生良好的聲音識別性能。
步驟S206:判斷當前聲音幀的子帶功率譜熵是否大于預設的閾值;當判斷結果為是時,可以執行步驟S207,反之,則對當前聲音幀相鄰的下一聲音幀從步驟S204開始執行。
在具體實施中,在當前聲音幀的子帶功率譜熵大于預設的閾值時,表明當前聲音幀中包括語音信息,反之,則表明當前聲音幀中不包括語音信息。
步驟S207:對當前聲音幀進行識別。
在具體實施中,當確定當前聲音幀中包括語音信息時,可以對當前幀進行語音識別,以識別出具體的語音內容。
在具體實施中,執行完步驟S207之后,可以接著對當前聲音幀的下一聲音幀從步驟S204開始執行,直至遍歷完成所獲取的聲音數據的多個聲音幀。
在具體實施中,當將上述的語音識別方法應用于移動終端中的總聽系統中時,在識別出所獲取的聲音數據中完整的語音信息時,移動終端可以根據所識別出的語音內容執行相應的操作。例如,當識別出用戶輸入的語音為“撥打XX的手機”時,移動終端便可以對用戶輸入的“撥打XX的手機”的語音信息進行識別,并在正確識別后,從自身中獲取XX的手機號碼的信息,并自動撥打。
圖3示出了本發明實施例還提供了一種語音識別裝置的結構示意圖。如圖3所示的語音識別裝置300,可以包括頻域處理單元301、子帶劃分單元302、第一計算單元303、第二計算單元304、判斷單元305和確定單元306,其中:
所述頻域處理單元301,適于將獲取的待識別的聲音數據劃分為多個重疊的聲音幀,并對每個聲音幀進行快速傅立葉變換運算,得到對應的頻譜;
所述子帶劃分單元302,適于對所述多個重疊的聲音幀頻譜進行遍歷,將遍歷到的當前聲音幀的頻譜劃分為無重疊的多個子帶;
在具體實施中,所述子帶劃分單元適于按照預設的子帶寬度將遍歷到的 所述當前聲音幀的頻譜劃分成為無重疊的多個子帶;
在具體實施中,所述子帶劃分單元適于將每個聲音幀的頻譜劃分為無重疊的12或13個子帶;
所述第一計算單元303,適于分別計算當前聲音幀的多個子帶的子帶功率譜熵概率質量;
所述第一計算單元303,適于采用如下的公式分別計算當前聲音幀的多個子帶的子帶功率譜熵概率質量:
其中,xi表示第i個子帶的頻譜能量,N為各個聲音幀劃分得到的子帶的數目。
所述第二計算單元304,適于根據當前聲音幀的各個子帶的子帶功率譜熵概率質量,計算當前聲音幀的子帶功率譜熵;
在具體實施中,所述第二計算單元304適于采用如下的公式根據當前聲音幀的各個子帶的子帶功率譜熵概率質量,計算當前聲音幀的子帶功率譜熵:
H(x)=-∑x∈Xxi×log2xi,其中,H(x)表示聲音幀的子帶功率譜熵。
所述判斷單元305,適于判斷當前聲音幀的子帶功率譜熵是否大于預設的閾值;
所述確定單元306,適于當確定當前聲音幀的子帶功率譜熵大于預設的閾值時,確定當前聲音幀中包括語音信息。
在具體實施中,所述語音識別裝置300還可以包括語音識別單元307,其中:
所述語音識別單元307,適于當確定當前聲音幀中包括語音信息時,對當前聲音幀進行語音識別。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于計算機可讀存儲介質中,存儲介質可以包括:ROM、RAM、磁盤或光盤等。
以上對本發明實施例的方法及系統做了詳細的介紹,本發明并不限于此。任何本領域技術人員,在不脫離本發明的精神和范圍內,均可作各種更動與修改,因此本發明的保護范圍應當以權利要求所限定的范圍為準。