亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于語音的角色分離方法及裝置與流程

文檔序號:11924012閱讀:824來源:國知局
基于語音的角色分離方法及裝置與流程

本申請涉及語音識別領域,具體涉及一種基于語音的角色分離方法。本申請同時涉及一種基于語音的角色分離裝置。



背景技術:

語音是人類最自然的交流溝通方式,語音識別技術則是讓機器通過識別和理解過程把語音信號轉變?yōu)橄鄳奈谋净蛎畹募夹g。語音識別是一門交叉學科,所涉及的領域包括:信號處理、模式識別、概率論和信息論、發(fā)聲機理和聽覺機理、人工智能等等。

在實際應用中,為了能夠對語音信號作更為準確的分析,不僅需要進行語音識別,而且要判別出每段語音的說話人,因此很自然地出現了對語音按照角色進行分離的需求。在日常生活、會議以及電話對話等很多場景下,都存在對話語音,而通過對對話語音的角色分離,就可以判定哪部分語音是其中一個人說的,哪部分語音是另外一個人說的。在將對話語音按照角色分離之后,結合說話人識別、語音識別,會產生更為廣闊的應用空間,例如,將客服中心的對話語音按照角色分離,然后進行語音識別就可以確定客服說了什么內容,客戶說了什么內容,從而可以進行相應的客服質檢或者進行客戶潛在需求的挖掘。

現有技術中,通常采用GMM(Gaussian Mixture Model—高斯混合模型)和HMM(Hidden Markov Model—隱馬爾科夫模型)進行對話語音的角色分離,即:對于每個角色使用GMM建模,對于不同角色之間的跳轉采用HMM建模。由于GMM建模技術提出的時間比較早,而且其擬合任意函數的功能取決于混合高斯函數的個數,所以其對角色的刻畫能力有一定的局限性,導致角色分離的準確率通常比較低,無法滿足應用的需求。



技術實現要素:

本申請實施例提供一種基于語音的角色分離方法和裝置,以解決現有的基 于GMM和HMM的角色分離技術準確率比較低的問題。

本申請?zhí)峁┮环N基于語音的角色分離方法,包括:

從語音信號中逐幀提取特征矢量,得到特征矢量序列;

為特征矢量分配角色標簽;

利用具有角色標簽的特征矢量訓練深度神經網絡DNN模型;

根據所述DNN模型和利用特征矢量訓練得到的隱馬爾科夫模型HMM,判定特征矢量序列對應的角色序列,并輸出角色分離結果;

其中,所述DNN模型用于根據輸入的特征矢量輸出對應每個角色的概率,HMM用于描述角色間的跳轉關系。

可選的,在所述從語音信號中逐幀提取特征矢量的步驟之后、在所述為特征矢量分配角色標簽的步驟之前,執(zhí)行下述操作:通過識別并剔除不包含語音內容的音頻幀、將所述語音信號切分為語音段;

所述為特征矢量分配角色標簽包括:為各語音段中的特征矢量分配角色標簽;所述判定特征矢量序列對應的角色序列包括:判定各語音段所包含的特征矢量序列對應的角色序列。

可選的,所述為各語音段中的特征矢量分配角色標簽包括:通過建立高斯混合模型GMM和HMM,為各語音段中的特征矢量分配角色標簽;其中所述GMM用于針對每個角色、根據輸入的特征矢量輸出該特征矢量對應于所述角色的概率;

所述根據所述DNN模型和利用特征矢量訓練得到的HMM,判定各語音段所包含的特征矢量序列對應的角色序列包括:根據所述DNN模型和為各語音段中的特征矢量分配角色標簽所采用的HMM,判定所述各語音段所包含的特征矢量序列對應的角色序列。

可選的,所述通過建立高斯混合模型GMM和HMM,為各語音段中的特征矢量分配角色標簽,包括:

按照預設的初始角色數量選擇相應數量的語音段,并為每個語音段分別指定不同角色;

利用指定角色的語音段中的特征矢量,訓練針對每個角色的GMM以及HMM;

根據訓練得到的GMM和HMM進行解碼,獲取輸出各語音段所包含的特征矢量序列的概率值排序靠前的角色序列;

判斷所述角色序列對應的概率值是否大于預設閾值;若是,按照所述角色序列為各語音段中的特征矢量分配角色標簽。

可選的,當所述判斷所述角色序列對應的概率值是否大于預設閾值的結果為否時,執(zhí)行下述操作:

根據所述角色序列,為每個語音段指定對應的角色;

根據每個語音段中的特征矢量以及對應的角色,訓練針對每個角色的GMM以及HMM;

轉到所述根據訓練得到的GMM和HMM進行解碼的步驟執(zhí)行。

可選的,所述根據所述角色序列,為每個語音段指定對應的角色,包括:

針對每個語音段,將其中各特征矢量對應的角色的眾數指定為所述語音段的角色。

可選的,所述根據每個語音段中的特征矢量以及對應的角色,訓練針對每個角色的GMM以及HMM,包括:在上一次訓練得到的模型基礎上采用增量方式訓練所述GMM以及HMM。

可選的,當所述判斷所述角色序列對應的概率值是否大于預設閾值的結果為否時,執(zhí)行下述操作:

判斷在當前角色數量下訓練GMM和HMM的次數是否小于預設的訓練次數上限;

若是,執(zhí)行所述根據所述角色序列為每個語音段指定對應的角色的步驟;

若否,執(zhí)行下述操作:

調整角色數量,選擇相應數量的語音段并為每個語音段分別指定不同角色;

并轉到所述利用指定角色的語音段中的特征矢量,訓練針對每個角色的GMM以及HMM的步驟執(zhí)行。

可選的,當所述判斷在當前角色數量下訓練GMM和HMM的次數是否小于預設的訓練次數上限的結果為否時,執(zhí)行下述操作:

判斷當前角色數量是否符合預設要求;若是,轉到所述按照所述角色序列為各語音段中的特征矢量分配角色標簽的步驟執(zhí)行,若否,則執(zhí)行所述調整角 色數量的步驟。

可選的,所述預設的初始角色數量為2,所述調整角色數量包括:為當前角色數量加1。

可選的,所述從語音信號中逐幀提取特征矢量,得到特征矢量序列包括:

按照預先設定的幀長度對語音信號進行分幀處理,得到多個音頻幀;

提取各音頻幀的特征矢量,得到所述特征矢量序列。

可選的,所述提取各音頻幀的特征矢量包括:提取MFCC特征、PLP特征、或者LPC特征。

可選的,所述識別并剔除不包含語音內容的音頻幀包括:采用VAD技術識別所述不包含語音內容的音頻幀、并執(zhí)行相應的剔除操作。

可選的,在采用VAD技術執(zhí)行所述識別及剔除操作、并將所述語音信號切分為語音段之后,執(zhí)行下述VAD平滑操作:

將時長小于預設閾值的語音段與相鄰語音段合并。

可選的,所述利用具有角色標簽的特征矢量訓練深度神經網絡DNN模型包括:采用反向傳播算法訓練所述DNN模型。

可選的,所述根據所述DNN模型和利用特征矢量訓練得到的隱馬爾科夫模型HMM,判定特征矢量序列對應的角色序列,包括:根據所述DNN模型和HMM執(zhí)行解碼操作,獲取輸出所述特征矢量序列的概率值排序靠前的角色序列,并將所述角色序列作為與所述特征矢量序列對應的角色序列。

可選的,所述輸出角色分離結果包括:根據特征矢量序列對應的角色序列,針對每個角色輸出與其對應的特征矢量所屬音頻幀的起止時間信息。

可選的,所述選擇相應數量的語音段,包括:選擇時長滿足預設要求的、所述數量的語音段。

相應的,本申請還提供一種基于語音的角色分離裝置,包括:

特征提取單元,用于從語音信號中逐幀提取特征矢量,得到特征矢量序列;

標簽分配單元,用于為特征矢量分配角色標簽;

DNN模型訓練單元,用于利用具有角色標簽的特征矢量訓練DNN模型,其中所述DNN模型用于根據輸入的特征矢量輸出對應每個角色的概率;

角色判定單元,用于根據所述DNN模型和利用特征矢量訓練得到的HMM, 判定特征矢量序列對應的角色序列并輸出角色分離結果,其中所述HMM用于描述角色間的跳轉關系。

可選的,所述裝置還包括:

語音段切分單元,用于在所述特征提取單元提取特征矢量后、在觸發(fā)所述標簽分配單元工作之前,通過識別并剔除不包含語音內容的音頻幀、將所述語音信號切分為語音段;

所述標簽分配單元具體用于,為各語音段中的特征矢量分配角色標簽;

所述角色判定單元具體用于,根據所述DNN模型和利用特征矢量訓練得到的HMM,判定各語音段所包含的特征矢量序列對應的角色序列并輸出角色分離結果。

可選的,所述標簽分配單元具體用于,通過建立GMM和HMM,為各語音段中的特征矢量分配角色標簽,其中所述GMM用于針對每個角色、根據輸入的特征矢量輸出該特征矢量對應于所述角色的概率;

所述角色判定單元具體用于,根據所述DNN模型和為各語音段中的特征矢量分配角色標簽所采用的HMM,判定所述各語音段所包含的特征矢量序列對應的角色序列。

可選的,所述標簽分配單元包括:

初始角色指定子單元,用于按照預設的初始角色數量選擇相應數量的語音段,并為每個語音段分別指定不同角色;

初始模型訓練子單元,用于利用指定角色的語音段中的特征矢量,訓練針對每個角色的GMM以及HMM;

解碼子單元,用于根據訓練得到的GMM和HMM進行解碼,獲取輸出各語音段所包含的特征矢量序列的概率值排序靠前的角色序列;

概率判斷子單元,用于判斷所述角色序列對應的概率值是否大于預設閾值;

標簽分配子單元,用于當所述概率判斷子單元的輸出為是時,按照所述角色序列為各語音段中的特征矢量分配角色標簽。

可選的,所述標簽分配單元還包括:

逐語音段角色指定子單元,用于當所述概率判斷子單元的輸出為否時,根據所述角色序列,為每個語音段指定對應的角色;

模型更新訓練子單元,用于根據每個語音段中的特征矢量以及對應的角色,訓練針對每個角色的GMM以及HMM,并觸發(fā)所述解碼子單元工作。

可選的,所述逐語音段角色指定子單元具體用于,針對每個語音段,將其中各特征矢量對應的角色的眾數指定為所述語音段的角色。

可選的,所述模型更新訓練子單元具體用于,在上一次訓練得到的模型基礎上采用增量方式訓練所述GMM以及HMM。

可選的,所述標簽分配單元還包括:

訓練次數判斷子單元,用于當所述概率判斷子單元的輸出為否時,判斷在當前角色數量下訓練GMM和HMM的次數是否小于預設的訓練次數上限,并在判斷結果為是時,觸發(fā)所述逐語音段角色指定子單元工作。

角色數量調整子單元,用于當所述訓練次數判斷子單元的輸出為否時,調整角色數量,選擇相應數量的語音段并為每個語音段分別指定不同角色,并觸發(fā)所述初始模型訓練子單元工作。

可選的,所述標簽分配單元還包括:

角色數量判斷子單元,用于當所述訓練次數判斷子單元的輸出為否時,判斷當前角色數量是否符合預設要求,若符合則觸發(fā)所述標簽分配子單元工作,否則觸發(fā)所述角色數量調整子單元工作。

可選的,所述特征提取單元包括:

分幀子單元,用于按照預先設定的幀長度對語音信號進行分幀處理,得到多個音頻幀;

特征提取執(zhí)行子單元,用于提取各音頻幀的特征矢量,得到所述特征矢量序列。

可選的,所述特征提取執(zhí)行子單元具體用于,提取各音頻幀的MFCC特征、PLP特征、或者LPC特征,得到所述特征矢量序列。

可選的,所述語音段切分單元具體用于,通過采用VAD技術識別并剔除所述不包含語音內容的音頻幀、將所述語音信號切分為語音段。

可選的,所述裝置還包括:

VAD平滑單元,用于在所述語音段切分單元采用VAD技術切分語音段后,將時長小于預設閾值的語音段與相鄰語音段合并。

可選的,所述DNN模型訓練單元具體用于,采用反向傳播算法訓練所述DNN模型。

可選的,所述角色判定單元具體用于,根據所述DNN模型和HMM執(zhí)行解碼操作,獲取輸出所述特征矢量序列的概率值排序靠前的角色序列,并將所述角色序列作為與所述特征矢量序列對應的角色序列。

可選的,所述角色判定單元采用如下方式輸出角色分離結果:根據特征矢量序列對應的角色序列,針對每個角色輸出與其對應的特征矢量所屬音頻幀的起止時間信息。

可選的,所述初始角色指定子單元或所述角色數量調整子單元具體通過如下方式選擇相應數量的語音段:選擇時長滿足預設要求的、所述數量的語音段。

與現有技術相比,本申請具有以下優(yōu)點:

本申請?zhí)峁┑幕谡Z音的角色分離方法,首先從語音信號中逐幀提取特征矢量序列,然后在為特征矢量分配角色標簽的基礎上訓練DNN模型,并根據所述DNN模型以及利用特征矢量訓練得到的HMM,判定特征矢量序列對應的角色序列,從而得到角色分離結果。本申請?zhí)峁┑纳鲜龇椒?,由于采用了具有強大特征提取能力的DNN模型對說話人角色進行建模,比傳統(tǒng)的GMM具有更為強大的刻畫能力,對角色的刻畫更加精細、準確,因此能夠獲得更為準確的角色分離結果。

附圖說明

圖1是本申請的一種基于語音的角色分離方法的實施例的流程圖;

圖2是本申請實施例提供的從語音信號中提取特征矢量序列的處理流程圖;

圖3是本申請實施例提供的利用GMM和HMM為各語音段中的特征矢量分配角色標簽的處理流程圖;

圖4是本申請實施例提供的語音段劃分的示意圖;

圖5是本申請實施例提供的DNN網絡的拓撲結構示意圖;

圖6是本申請的一種基于語音的角色分離裝置的實施例的示意圖。

具體實施方式

在下面的描述中闡述了很多具體細節(jié)以便于充分理解本申請。但是,本申請能夠以很多不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本申請內涵的情況下做類似推廣,因此,本申請不受下面公開的具體實施的限制。

在本申請中,分別提供了一種基于語音的角色分離方法,以及一種基于語音的角色分離裝置,在下面的實施例中逐一進行詳細說明。為了便于理解,在對實施例進行描述之前,先對本申請的技術背景、技術方案、以及實施例的撰寫方式作簡要說明。

現有的應用于語音領域的角色分離技術通常采用GMM(Gaussian mixture model—高斯混合模型)對角色進行建模、采用HMM(Hidden Markov Model—隱馬爾可夫模型)對角色之間的跳轉進行建模。

所述HMM是統(tǒng)計模型,用來描述一個含有隱含未知參數的馬爾可夫過程。隱馬爾可夫模型是馬爾可夫鏈的一種,它的狀態(tài)(稱為隱藏狀態(tài))不能直接觀察到,但是與可觀察到的觀測向量是概率相關的,因此,HMM是一個雙重隨機過程,包括兩個部分:具有狀態(tài)轉移概率的馬爾科夫鏈(通常用轉移矩陣A描述),以及描述隱藏狀態(tài)與觀測向量之間的輸出關系的隨機過程(通常用混淆矩陣B描述,其中的每個元素為隱藏狀態(tài)對應于觀測向量的輸出概率,也稱為發(fā)射概率)。一個具有N個狀態(tài)的HMM可以用三元組參數λ={π,A,B}表示,其中為各狀態(tài)的初始概率。

所述GMM可以簡單理解為多個高斯密度函數的疊加,其核心思想是用多個高斯分布的概率密度函數的組合來描述特征矢量在概率空間的分布狀況,采用該模型可以平滑地近似任意形狀的密度分布。其參數包括:各高斯分布的混合權重(mixing weight)、均值向量(mean vector)、協方差矩陣(covariance matrix)。

在現有的基于語音的角色分離應用中,通常對每個角色采用GMM建模,HMM中的狀態(tài)就是各個角色,觀測向量是從語音信號中逐幀提取的特征矢量,各個狀態(tài)輸出特征矢量的發(fā)射概率由GMM決定(根據GMM可以獲知混淆矩陣),而角色分離過程就是利用GMM和HMM確定與特征矢量序列對應的角色序列的過程。

由于GMM的函數擬合功能受限于所采用的高斯密度函數的個數,其本身 的表達能力存在一定的局限性,導致現有的采用GMM和HMM進行角色分離的準確率比較低。針對這一問題,本申請的技術方案在為各語音幀的特征矢量預先分配角色標簽的基礎上,利用深度神經網絡(DNN)決定HMM各狀態(tài)的發(fā)射概率,并根據DNN和HMM判定與特征矢量序列對應的角色序列,由于DNN具有組合低層特征形成更加抽象的高層特征的強大能力,可以實現更為精準的角色刻畫,因此能夠獲取更為準確的角色分離結果。

本申請的技術方案,首先為從語音信號中提取的特征矢量分配角色標簽,此時分配的角色標簽通常并不是很準確,但是可以為后續(xù)執(zhí)行有監(jiān)督的學習過程提供參考,在此基礎上訓練得到的DNN模型能夠更為準確地刻畫角色,從而使角色分離結果更為準確。在具體實施本申請的技術方案時可以采用基于統(tǒng)計的算法或者采用分類器等方式,實現所述分配角色標簽的功能,在本申請?zhí)峁┑南率鰧嵤├胁捎昧烁鶕礼MM和HMM為特征矢量分配角色標簽的實施方式。

下面,對本申請的實施例進行詳細說明。請參考圖1,其為本申請的一種基于語音的角色分離方法的實施例的流程圖。所述方法包括如下步驟:

步驟101、從語音信號中逐幀提取特征矢量,得到特征矢量序列。

待進行角色分離的語音信號通常是時域信號,本步驟通過分幀和提取特征矢量兩個處理過程,獲取能夠表征所述語音信號的特征矢量序列,下面結合附圖2做進一步說明。

步驟101-1、按照預先設定的幀長度對語音信號進行分幀處理,得到多個音頻幀。

在具體實施時,可以根據需求預先設定幀長度,例如可以設置為10ms、或者15ms等,然后根據所述幀長度對時域的語音信號進行逐幀切分,從而將語音信號切分為多個音頻幀。根據所采用的切分策略的不同,相鄰音頻幀可以不存在交疊、也可以是有交疊的。

步驟101-2、提取各音頻幀的特征矢量,得到所述特征矢量序列。

將時域的語音信號切分為多個音頻幀后,可以逐幀提取能夠表征語音信號的特征矢量。由于語音信號在時域上的描述能力相對較弱,通??梢葬槍γ總€音頻幀進行傅里葉變換,然后提取頻域特征作為音頻幀的特征矢量,例如,可以提取MFCC(Mel Frequency Cepstrum Coefficient—梅爾頻率倒譜系數)特征、 PLP(Perceptual Linear Predictive—感知線性預測)特征、或者LPC(Linear Predictive Coding—線性預測編碼)特征等。

下面以提取某一音頻幀的MFCC特征為例,對特征矢量的提取過程作進一步描述。首先將音頻幀的時域信號通過FFT(Fast Fourier Transformation—快速傅氏變換)得到對應的頻譜信息,將所述頻譜信息通過Mel濾波器組得到Mel頻譜,在Mel頻譜上進行倒譜分析,其核心一般是采用DCT(Discrete Cosine Transform—離散余弦變換)進行逆變換,然后取預設的N個系數(例如N=12或者38),則得到了所述音頻幀的特征矢量:MFCC特征。對每個音頻幀都采用上述方式進行處理,可以得到表征所述語音信號的一系列特征矢量,即本申請所述的特征矢量序列。

步驟102、為特征矢量分配角色標簽。

本實施例通過建立GMM和HMM為特征矢量序列中的特征矢量分配角色標簽??紤]到在一段語音信號中除了包含對應于各角色的語音信號外,可能還包含沒有語音內容的部分,例如:由于傾聽、思考等原因造成的靜音部分。由于這些部分不包含角色的信息,為了提高角色分離的準確性,可以預先從語音信號中識別并剔除這樣的音頻幀。

基于上述考慮,本實施例在為特征矢量分配角色標簽之前先剔除不包含語音內容的音頻幀、并進行語音段的劃分,然后在此基礎上為各語音段中的特征矢量分配角色標簽,所述分配角色標簽包括:進行角色的初始劃分,在初始劃分的基礎上迭代訓練GMM和HMM,如果訓練得到的模型不滿足預設要求,則調整角色數量然后重新訓練GMM和HMM,直至訓練得到的模型滿足預設要求,則根據該模型為各語音段中的特征矢量分配角色標簽。下面結合附圖3對上述處理過程進行詳細說明。

步驟102-1、通過識別并剔除不包含語音內容的音頻幀、將所述語音信號切分為語音段。

現有技術通常采用聲學切分方式,即:根據已有的模型從語音信號中分離出比如“音樂段”、“語音段”、“靜音段”等。這種方式需要提前訓練好各種音頻段對應的聲學模型,比如“音樂段”對應的聲學模型,基于該聲學模型,能夠從語音信號中分離出該聲學模型對應的音頻段。

優(yōu)選地,本申請的技術方案可以采用VAD(Voice Activity Detection—語音 活動檢測)技術識別不包含語音內容的部分,這樣,相對于采用聲學切分方式的技術,可以不需要提前訓練不同音頻段對應的聲學模型,適應性更強。例如,可以通過計算音頻幀的能量特征、過零率等識別音頻幀是否為靜音幀,對于存在環(huán)境噪聲且比較強的情況下,可以綜合采用上述多種手段、或者通過建立噪聲模型進行識別。

識別出不包含語音內容的音頻幀后,一方面可以將這部分音頻幀從語音信號中剔除,以提高角色分離的準確性;另一方面通過對不包含語音內容的音頻幀的識別,相當于識別出了每段有效語音(包含語音內容)的起點和終點,因此可以在此基礎上進行語音段的劃分。

請參見附圖4,其為本實施例提供的語音段劃分的示意圖,在該圖中通過VAD技術檢測出在時間t2與t3之間、以及t4與t5之間的各音頻幀為靜音幀,本步驟可以從語音信號中剔除這部分靜音幀,并相應劃分出3個語音段:位于t1與t2之間的語音段1(seg1)、位于t3和t4之間的語音段2(seg2)、以及位于t5和t6之間的語音段3(seg3),每個語音段都包含若干個音頻幀,每個音頻幀都有對應的特征矢量。在劃分語音段的基礎上,可以粗略地進行角色分配,便于為后續(xù)的訓練提供一個合理的起點。

優(yōu)選的,在采用VAD技術進行上述處理后,還可以執(zhí)行VAD平滑操作。這主要是考慮到人類實際發(fā)聲的情況,真實的語音段的持續(xù)時間不會太短,如果執(zhí)行上述VAD操作后,得到的某些語音段的持續(xù)時間小于預先設置的閾值(例如,語音段長度為30ms,而預先設置的閾值為100ms),則可以將這樣的語音段與相鄰語音段合并,形成較長的語音段。進行VAD平滑處理后得到的語音段劃分更接近于真實的情況,有助于提高角色分離的準確性。

本步驟通過VAD技術將語音信號劃分成若干個語音段,后續(xù)步驟102-2至102-11的任務則是利用GMM和HMM為各語音段中的特征矢量分配角色標簽。

步驟102-2、按照預設的初始角色數量選擇相應數量的語音段,并為每個語音段分別指定不同角色。

本步驟可以隨機地從已經劃分好的語音段中選擇與初始角色數量相同的語音段,考慮到所選語音段要用于進行GMM和HMM的初始訓練,如果時長比較短則可用于訓練的數據較少,時長太長則包含一個以上角色的可能性就會增加,這兩種情況都不利于進行初始訓練,因此本實施例提供一種優(yōu)選實施方式, 即:根據初始角色數量選擇時長滿足預設要求的語音段、并為每個語音段分別指定不同的角色。

本實施例中預設的初始角色數量為2,預設的選擇語音段的要求為:時長在2s至4s之間,因此本步驟從已經劃分好的語音段中選擇滿足上述要求的2個語音段,并為每個語音段分別指定不同的角色。仍以圖4所示的語音段劃分為例,seg1和seg2各自滿足上述的時長要求,因此可以選擇seg1和seg2這兩個語音段,并為seg1指定角色1(s1),為seg2指定角色2(s2)。

步驟102-3、利用指定角色的語音段中的特征矢量,訓練針對每個角色的GMM以及HMM。

本步驟根據指定角色的語音段包含的特征矢量,訓練針對每個角色的GMM、以及描述角色間的跳轉關系的HMM,本步驟是在特定角色數量下進行的初始訓練。仍以圖4所示的語音段劃分為例,在初始角色數量下,seg1中包含的特征矢量用于訓練角色1的GMM(gmm1),seg2中包含的特征矢量用于訓練角色2的GMM(gmm2),如果在該角色數量下訓練得到的GMM和HMM不滿足要求,則可以調整角色數量并重復轉到本步驟,根據調整后的角色數量執(zhí)行相應的初始訓練。

針對每個角色訓練GMM以及HMM的過程,也就是在給定觀測序列(即:各語音段包含的特征矢量序列,也即訓練樣本)的基礎上學習與HMM相關的各個參數的過程,所述各個參數包括:HMM的轉移矩陣A、每個角色對應的GMM的均值向量、協方差矩陣等參數。在具體實施時可以采用Baum-Welch算法進行訓練,先根據訓練樣本估計各參數的初始值,根據訓練樣本和各參數的初始值,估計在時刻t處于某一狀態(tài)sj的后驗概率γt(sj),然后根據計算得到的后驗概率更新HMM的各個參數,再根據訓練樣本和更新后的各參數再次估計后驗概率γt(sj)......,反復迭代執(zhí)行上述過程,直到找到一組HMM參數使得輸出觀測序列的概率最大化。得到滿足上述要求的參數后,則在特定角色數量下的GMM和HMM初始訓練完畢。

步驟102-4、根據訓練得到的GMM和HMM進行解碼,獲取輸出各語音段所包含的特征矢量序列的概率值排序靠前的角色序列。

在步驟102-1中已經將語音信號劃分為若干個語音段,每個語音段中的每個音頻幀都有對應的特征矢量,共同組成本步驟所述的特征矢量序列。本步驟在 給定所述特征矢量序列、以及已訓練好的GMM和HMM的基礎上,找到所述特征矢量序列可能從屬的HMM狀態(tài)序列,即:角色序列。

本步驟完成的功能是通常所述的HMM解碼過程,根據所述特征矢量序列,搜索輸出該特征矢量序列的概率值排序靠前的角色序列,作為優(yōu)選實施方式,通??梢赃x擇最大概率值對應的角色序列,即最可能輸出所述特征矢量序列的角色序列,也稱為最優(yōu)的隱狀態(tài)序列。

在具體實施時,可以采用窮舉搜索的方法,計算每個可能的角色序列輸出所述特征矢量序列的概率值,并從中選擇最大值。為了提高計算效率,作為優(yōu)選實施方式,可以采用維特比(Viterbi)算法,利用HMM的轉移概率在時間上的不變性來降低計算的復雜度,并在搜索得到輸出所述特征矢量序列的最大概率值后,根據搜索過程記錄的信息進行回溯,獲取對應的角色序列。

步驟102-5、判斷所述角色序列對應的概率值是否大于預設閾值,若是,執(zhí)行步驟102-6,否則轉到步驟102-7執(zhí)行。

如果步驟102-4通過解碼過程獲取的角色序列對應的概率值大于預先設定的閾值,例如:0.5,通??梢哉J為目前的GMM和HMM已經穩(wěn)定,可以執(zhí)行步驟102-6為各語音段中的特征矢量分配角色標簽(后續(xù)步驟104可以利用所述已穩(wěn)定的HMM判定特征矢量序列對應的角色序列),否則轉到步驟102-7判斷是否繼續(xù)進行迭代訓練。

步驟102-6、按照所述角色序列為各語音段中的特征矢量分配角色標簽。

由于目前的GMM和HMM已經穩(wěn)定,因此可以按照步驟102-4通過解碼獲取的角色序列為各語音段中的特征矢量分配角色標簽。在具體實施時,由于所述角色序列中的每個角色與各語音段中的每個特征矢量是一一對應的,因此可以根據該一一對應關系為每個特征矢量分配角色標簽。至此,各語音段中的特征矢量都有了各自的角色標簽,步驟102執(zhí)行完畢,可以繼續(xù)執(zhí)行步驟103。

步驟102-7、判斷在當前角色數量下訓練GMM和HMM的次數是否小于預設的訓練次數上限;若是,則執(zhí)行步驟102-8,否則轉到步驟102-10執(zhí)行。

執(zhí)行到本步驟,說明目前訓練得到的GMM和HMM還沒有穩(wěn)定,需要繼續(xù)進行迭代訓練??紤]到在訓練過程所采用的當前角色數量與實際角色數量(所述語音信號涉及的真實角色數量)不一致的情況下,GMM和HMM即使經過多次迭代訓練也可能無法滿足要求(解碼操作所獲取的角色序列對應的概率值始 終不滿足大于預設閾值的條件),為了避免出現無意義的循環(huán)迭代過程,可以預先設置在每種角色數量下訓練GMM和HMM的訓練次數上限。如果本步驟判斷出在當前角色數量下的訓練次數小于所述上限,則繼續(xù)執(zhí)行步驟102-8為各語音段指定角色以便繼續(xù)進行迭代訓練,否則說明目前采用的角色數量可能與實際情況不一致,因此可以轉到步驟102-10判斷是否需要調整角色數量。

步驟102-8、根據所述角色序列為每個語音段指定對應的角色。

在步驟102-4中已經通過解碼獲取了角色序列,由于角色序列中的每個角色與各語音段中的特征矢量是一一對應的,因此可以獲知各語音段中每個特征矢量對應的角色。本步驟針對語音信號中的每個語音段,通過計算其中各特征矢量對應的角色的眾數,為所述語音段指定角色。例如:某語音段包含10個音頻幀,也即包含10個特征矢量,其中8個特征矢量對應角色1(s1),2個特征矢量對應于角色2(s2),那么所述語音段中各特征矢量對應的角色的眾數為角色1(s1),因此將角色1(s1)指定為所述語音段的角色。

步驟102-9、根據每個語音段中的特征矢量以及對應的角色,訓練針對每個角色的GMM以及HMM,并轉到步驟102-4繼續(xù)執(zhí)行。

在步驟102-8為每個語音段指定角色的基礎上,可以訓練針對每個角色的GMM以及HMM。仍以圖4所示的語音段劃分為例,如果步驟102-8將seg1和seg3指定為角色1(s1),seg2指定為角色2(s2),那么seg1和seg3包含的特征矢量可以用于訓練角色1的GMM(gmm1),seg2中包含的特征矢量用于訓練角色2的GMM(gmm2)。GMM和HMM的訓練方法請參見步驟102-3的相關文字,此處不再贅述。

在具體實施中,本技術方案通常為迭代訓練過程,為了提高訓練效率,本步驟可以在上一次訓練得到的GMM和HMM的基礎上采用增量方式訓練新的GMM和HMM,即在上一次訓練得到的參數基礎上,利用目前的樣本數據,繼續(xù)調整各個參數,從而可以提高訓練速度。

完成上述訓練過程,得到新的GMM和HMM后,可以轉到步驟102-4執(zhí)行,根據新的模型進行解碼以及執(zhí)行后續(xù)的操作。

步驟102-10、判斷當前角色數量是否符合預設要求;若是,轉到步驟102-6執(zhí)行,否則繼續(xù)執(zhí)行步驟102-11。

執(zhí)行到本步驟,通常說明在當前角色數量下訓練得到的GMM和HMM并 未穩(wěn)定、而且訓練次數已經等于或者超過了預設的訓練次數上限,在這種情況下可以判斷當前角色數量是否符合預設要求,若符合,則說明可以停止角色分離過程,轉到步驟102-6進行角色標簽的分配,否則繼續(xù)執(zhí)行步驟102-11進行角色數量的調整。

步驟102-11、調整角色數量,選擇相應數量的語音段并為每個語音段分別指定不同角色;并轉到步驟102-3繼續(xù)執(zhí)行。

例如,當前角色數量為2,對角色數量的預設要求為“角色數量等于4”,步驟102-10判定當前角色數量尚未符合預設要求,這種情況下,可以執(zhí)行本步驟進行角色數量的調整,例如:為當前角色數量加1,即將當前角色數量更新為3。

根據調整后的角色數量,從語音信號包含的各個語音段中選擇相應數量的語音段,并為所選每個語音段分別指定不同的角色。其中對所選語音段的時長要求,可以參見步驟102-2中的相關文字,此處不再贅述。

仍以圖4所示的語音段劃分為例,如果當前角色數量從2增加為3,并且seg1、seg2和seg3都滿足選擇語音段的時長要求,那么本步驟可以選擇這3個語音段,并為seg1指定角色1(s1),為seg2指定角色2(s2),為seg3指定角色3(s3)。

完成上述調整角色數量以及選擇語音段的操作后,可以轉到步驟102-3針對調整后的角色數量初始訓練GMM和HMM。

步驟103、利用具有角色標簽的特征矢量訓練DNN模型。

此時,已經為各語音段中的特征矢量分配了角色標簽,在此基礎上,本步驟以具有角色標簽的特征矢量為樣本訓練DNN模型,所述DNN模型用于根據輸入的特征矢量輸出對應每個角色的概率。為了便于理解,先對DNN作簡要說明。

DNN(Deep Neural Networks—深度神經網絡)通常指包括1個輸入層、3個以上隱含層(也可以包含7個、9個、甚至更多的隱含層)、以及1個輸出層的神經網絡。每個隱含層都能夠提取一定的特征,并將本層的輸出作為下一層的輸入,通過逐層提取特征,將低層特征形成更加抽象的高層特征,從而能夠實現對物體或者種類的識別。

請參見圖5,其為DNN網絡的拓撲結構示意圖,圖中的DNN網絡總共有n 層,每層有多個神經元,不同層之間全連接;每層都有自己的激勵函數f(例如Sigmoid函數)。輸入為特征矢量v,第i層到第i+1層的轉移矩陣為wi(i+1),第i+1層的偏置矢量為b(i+1),第i層的輸出為outi,第i+1的輸入為ini+1,計算過程為:

ini+1=outi*wi(i+1)+b(i+1)

outi+1=f(ini+1)

由此可見DNN模型的參數包括層間的轉移矩陣w和每一層的偏置矢量b等,訓練DNN模型的主要任務就是確定上述參數。在實際應用中通常采用BP(Back-propagation—反向傳播)算法進行訓練,訓練過程是一個有監(jiān)督的學習過程:輸入信號為帶有標簽的特征矢量,分層向前傳播,到達輸出層后再逐層反向傳播,通過梯度下降法調整各層的參數以使網絡的實際輸出不斷接近期望輸出。對于每層有上千神經元的DNN網絡來說,其參數的數量可能是百萬級的甚至更多,完成上述訓練過程獲取的DNN模型,通常具有非常強大的特征提取能力以及識別能力。

在本實施例中,DNN模型用于根據輸入的特征矢量輸出對應每個角色的概率,因此DNN模型的輸出層可以采用分類器(例如Softmax)作為激活函數,在步驟102完成預先分配角色標簽的處理后,如果角色標簽涉及的角色數量為n,那么DNN模型的輸出層可以包括n個節(jié)點,分別對應于n個角色,針對輸入的特征矢量每個節(jié)點輸出該特征矢量對應所屬角色的概率值。

本步驟以帶有角色標簽的特征矢量作為樣本,對構建的上述DNN模型進行有監(jiān)督訓練。在具體實施時,可以直接采用上述BP算法進行訓練,考慮到單純采用BP算法訓練有可能出現陷入局部極小值的情況、導致最終得到的模型無法滿足應用的需求,因此本實施例采用預訓練(pre-training)與BP算法相結合的方式進行DNN模型的訓練。

預訓練通常采用非監(jiān)督貪心逐層訓練算法,先采用非監(jiān)督方式訓練含有一個隱層的網絡,然后保留訓練好的參數,使網絡層數加1,接著訓練含兩個隱層的網絡......以此類推,直到含有最大隱層的網絡。這樣逐層訓練完之后,以該無監(jiān)督訓練過程學習到的參數值作為初始值,再采用傳統(tǒng)BP算法進行有監(jiān)督的訓練,最終得到DNN模型。

由于經過pre-training得到的初始分布比純BP算法采用的隨機初始參數更接 近于最終的收斂值,相當于使后續(xù)的有監(jiān)督訓練過程有一個好的起點,因此訓練得到的DNN模型通常不會陷入局部極小值,能夠獲得較高的識別率。

步驟104、根據所述DNN模型和利用特征矢量訓練得到的HMM,判定特征矢量序列對應的角色序列,并輸出角色分離結果。

由于所述DNN模型用于根據輸入的特征矢量輸出對應每個角色的概率,同時根據特征矢量序列的角色標簽的分布情況可以獲知對應每個角色的先驗概率,而每個特征矢量的先驗概率通常也是固定的,因此依據貝葉斯定理,根據DNN模型的輸出以及上述先驗概率可以獲知每個角色輸出相應特征矢量的概率,也即可以采用步驟103訓練好的DNN模型決定HMM各狀態(tài)的發(fā)射概率。

所述HMM可以是在采用上述DNN模型決定HMM發(fā)射概率的基礎上,用特征矢量序列訓練得到的。考慮到在步驟102為特征矢量分配角色標簽時所采用的HMM對各角色之間的跳轉關系的描述已基本穩(wěn)定,可以不再進行額外的訓練,因此本實施例直接采用該HMM,并用訓練得到的DNN模型替換GMM,即:由DNN模型決定HMM各狀態(tài)的發(fā)射概率。

在本實施例中,步驟102-1進行了語音段的切分,本步驟根據所述DNN模型和預先分配角色標簽時所采用的HMM,判定各語音段所包含的特征矢量序列對應的角色序列。

根據特征矢量序列確定角色序列的過程是通常所述的解碼問題,可以根據所述DNN模型和HMM執(zhí)行解碼操作,獲取輸出所述特征矢量序列的概率值排序靠前(例如概率值最大)的角色序列,并將所述角色序列作為與所述特征矢量序列對應的角色序列。具體說明請參見步驟102-4中的相關文字,此處不再贅述。

通過解碼過程得到與各語音段所包含的特征矢量序列對應的角色序列后,則可以輸出相應的角色分離結果。由于角色序列中的每個角色與特征矢量是一一對應的,而每個特征矢量對應的音頻幀都有各自的時間起止點,因此本步驟可以針對每個角色輸出與其對應的特征矢量所屬音頻幀的起止時間信息。

至此,通過步驟101至步驟104,對本申請?zhí)峁┑幕谡Z音的角色分離方法的具體實施方式進行了詳細的說明。需要說明的是,本實施例在步驟102為特征矢量預先分配角色標簽的過程中采用了自頂向下、逐漸增加角色數量的方式。在其他實施方式中,也可以采用自底向上、逐漸減少角色數量的方式:最初可 以將切分得到的每個語音段分別指定給不同的角色,然后訓練針對每個角色的GMM和HMM,如果通過迭代訓練得到的GMM和HMM在執(zhí)行解碼操作后得到的概率值始終不大于預設閾值,那么在調整角色數量時,可以通過評估每個角色的GMM彼此之間的相似度(例如計算KL散度),將相似度滿足預設要求的GMM對應的語音段進行合并,并相應減少角色數量,重復迭代執(zhí)行上述過程,直到HMM通過解碼得到的概率值大于預設閾值或者角色數量符合預設要求,則停止迭代過程,并根據解碼得到的角色序列為各語音段中的特征矢量分配角色標簽。

綜上所述,本申請?zhí)峁┑幕谡Z音的角色分離方法,由于采用具有強大特征提取能力的DNN模型對角色進行建模,比傳統(tǒng)的GMM具有更為強大的刻畫能力,對角色的刻畫更加精細、準確,因此能夠獲得更為準確的角色分離結果。本申請的技術方案不僅可以應用于對客服中心、會議語音等對話語音進行角色分離的場景中,還可以應用于其它需要對語音信號中的角色進行分離的場景中,只要所述語音信號中包含兩個或者兩個以上角色,就都可以采用本申請的技術方案,并取得相應的有益效果。

在上述的實施例中,提供了一種基于語音的角色分離方法,與之相對應的,本申請還提供一種基于語音的角色分離裝置。請參看圖6,其為本申請的一種基于語音的角色分離裝置的實施例示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。

本實施例的一種基于語音的角色分離裝置,包括:特征提取單元601,用于從語音信號中逐幀提取特征矢量,得到特征矢量序列;標簽分配單元602,用于為特征矢量分配角色標簽;DNN模型訓練單元603,用于利用具有角色標簽的特征矢量訓練DNN模型,其中所述DNN模型用于根據輸入的特征矢量輸出對應每個角色的概率;角色判定單元604,用于根據所述DNN模型和利用特征矢量訓練得到的HMM,判定特征矢量序列對應的角色序列并輸出角色分離結果,其中所述HMM用于描述角色間的跳轉關系。

可選的,所述裝置還包括:

語音段切分單元,用于在所述特征提取單元提取特征矢量后、在觸發(fā)所述 標簽分配單元工作之前,通過識別并剔除不包含語音內容的音頻幀、將所述語音信號切分為語音段;

所述標簽分配單元具體用于,為各語音段中的特征矢量分配角色標簽;

所述角色判定單元具體用于,根據所述DNN模型和利用特征矢量訓練得到的HMM,判定各語音段所包含的特征矢量序列對應的角色序列并輸出角色分離結果。

可選的,所述標簽分配單元具體用于,通過建立GMM和HMM,為各語音段中的特征矢量預先分配角色標簽,其中所述GMM用于針對每個角色、根據輸入的特征矢量輸出該特征矢量對應于所述角色的概率;

所述角色判定單元具體用于,根據所述DNN模型和為各語音段中的特征矢量分配角色標簽所采用的HMM,判定所述各語音段所包含的特征矢量序列對應的角色序列。

可選的,所述標簽分配單元包括:

初始角色指定子單元,用于按照預設的初始角色數量選擇相應數量的語音段,并為每個語音段分別指定不同角色;

初始模型訓練子單元,用于利用指定角色的語音段中的特征矢量,訓練針對每個角色的GMM以及HMM;

解碼子單元,用于根據訓練得到的GMM和HMM進行解碼,獲取輸出各語音段所包含的特征矢量序列的概率值排序靠前的角色序列;

概率判斷子單元,用于判斷所述角色序列對應的概率值是否大于預設閾值;

標簽分配子單元,用于當所述概率判斷子單元的輸出為是時,按照所述角色序列為各語音段中的特征矢量分配角色標簽。

可選的,所述標簽分配單元還包括:

逐語音段角色指定子單元,用于當所述概率判斷子單元的輸出為否時,根據所述角色序列,為每個語音段指定對應的角色;

模型更新訓練子單元,用于根據每個語音段中的特征矢量以及對應的角色,訓練針對每個角色的GMM以及HMM,并觸發(fā)所述解碼子單元工作。

可選的,所述逐語音段角色指定子單元具體用于,針對每個語音段,將其中各特征矢量對應的角色的眾數指定為所述語音段的角色。

可選的,所述模型更新訓練子單元具體用于,在上一次訓練得到的模型基礎上采用增量方式訓練所述GMM以及HMM。

可選的,所述標簽分配單元還包括:

訓練次數判斷子單元,用于當所述概率判斷子單元的輸出為否時,判斷在當前角色數量下訓練GMM和HMM的次數是否小于預設的訓練次數上限,并在判斷結果為是時,觸發(fā)所述逐語音段角色指定子單元工作。

角色數量調整子單元,用于當所述訓練次數判斷子單元的輸出為否時,調整角色數量,選擇相應數量的語音段并為每個語音段分別指定不同角色,并觸發(fā)所述初始模型訓練子單元工作。

可選的,所述標簽分配單元還包括:

角色數量判斷子單元,用于當所述訓練次數判斷子單元的輸出為否時,判斷當前角色數量是否符合預設要求,若符合則觸發(fā)所述標簽分配子單元工作,否則觸發(fā)所述角色數量調整子單元工作。

可選的,所述特征提取單元包括:

分幀子單元,用于按照預先設定的幀長度對語音信號進行分幀處理,得到多個音頻幀;

特征提取執(zhí)行子單元,用于提取各音頻幀的特征矢量,得到所述特征矢量序列。

可選的,所述特征提取執(zhí)行子單元具體用于,提取各音頻幀的MFCC特征、PLP特征、或者LPC特征,得到所述特征矢量序列。

可選的,所述語音段切分單元具體用于,通過采用VAD技術識別并剔除所述不包含語音內容的音頻幀、將所述語音信號切分為語音段。

可選的,所述裝置還包括:

VAD平滑單元,用于在所述語音段切分單元采用VAD技術切分語音段后,將時長小于預設閾值的語音段與相鄰語音段合并。

可選的,所述DNN模型訓練單元具體用于,采用反向傳播算法訓練所述DNN模型。

可選的,所述角色判定單元具體用于,根據所述DNN模型和HMM執(zhí)行解碼操作,獲取輸出所述特征矢量序列的概率值排序靠前的角色序列,并將所述 角色序列作為與所述特征矢量序列對應的角色序列。

可選的,所述角色判定單元采用如下方式輸出角色分離結果:根據特征矢量序列對應的角色序列,針對每個角色輸出與其對應的特征矢量所屬音頻幀的起止時間信息。

可選的,所述初始角色指定子單元或所述角色數量調整子單元具體通過如下方式選擇相應數量的語音段:選擇時長滿足預設要求的、所述數量的語音段。

本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領域技術人員在不脫離本申請的精神和范圍內,都可以做出可能的變動和修改,因此本申請的保護范圍應當以本申請權利要求所界定的范圍為準。

在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。

內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。

1、計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitory media),如調制的數據信號和載波。

2、本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1