本發明實施例涉及語音識別技術領域,尤其涉及一種說話人自適應方法、裝置、設備及存儲介質。
背景技術:
說話人自適應技術在近年來得到越來越多的重視,這項技術利用特定說話人數據對說話人無關(speakerindependent,以下簡稱si)碼本進行改造,其目的是得到說話人自適應(speakeradapted,以下簡稱sa)碼本以提升識別性能。
在某個說話人訓練數據足夠多的情況下,針對當前說話人數據采用傳統的訓練方法可以得到說話人相關(speakerdependent,以下簡稱sd)碼本,由于sd碼本很好地反映了當前說話人的特征,因此通常有很好的性能表現;可是在某些情況下,說話人的數據不足以訓練一個穩健的sd模型,此時就需要利用自適應以避免欠訓練的情況出現,相比sd碼本需要大量的數據進行訓練,說話人自適應只需要很少的數據量就得到比較大的性能提高。
說話人自適應的實質是利用自適應數據調整si碼本以符合當前說話人特性,由于傳統訓練方法得到的si碼本不可避免地受訓練集特性的影響,在訓練集和自適應數據失配時這會導致自適應效果變得不明顯,原始碼本越具有說話人無關性,在自適應時就越能迅速地趨近當前說話人的特征。與自適應相結合的碼本訓練對si碼本、訓練集內每個說話人特性分別建立模型,因此可以得到更具說話人無關性的si碼本。
目前主要有以下兩種方式進行說話人自適應:第一種是基于特征層的說話人自適應,其主要思路是利用語音信號的特征參數構造變換方法,將說話人相關的特征變換為說話人無關的特征,然后將其送入說話人無關模型進行識別,從而實現說話人自適應。第二種是基于模型層的說話人自適應,利用說話人的語音數據對說話人無關模型進行調整,對不同的說話人自適應出不同的聲學模型,然后用自適應后的模型進行識別,從而實現說話人自適應。
但是,上述自適應過程較為繁瑣,在自適應過程中通常需要二遍解碼,所以自適應過程需要較多時間,效率較低。并且,由于說話人的語音數據有限,而需要自適應的參數較多,兩者之間的矛盾使得自適應性能不好。
技術實現要素:
本發明實施例提供一種說話人自適應方法、裝置、設備及存儲介質,可以簡化說話人自適應過程,降低自適應復雜度,提高自適應性能。
第一方面,本發明實施例提供了一種說話人自適應方法,該方法包括:
獲取目標說話人的第一語音數據;
將所述第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含所述目標說話人語音參數的語音識別模型。
第二方面,本發明實施例還提供了一種說話人自適應裝置,該裝置包括:
語音數據獲取模塊,用于獲取目標說話人的第一語音數據;
模型訓練模塊,用于將所述第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含所述目標說話人語音參數的語音識別模型。
第三方面,本發明實施例還提供了一種設備,包括:
一個或多個處理器;
存儲裝置,用于存儲一個或多個程序,
當所述一個或多個程序被所述一個或多個處理器執行,使得所述一個或多個處理器實現本發明實施例任一所述的說話人自適應方法。
第四方面,本發明實施例還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現本發明實施例任一所述的說話人自適應方法。
本發明實施例通過將目標說話人的第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含所述目標說話人語音參數的語音識別模型,可以簡化說話人自適應過程,降低自適應復雜度,提高自適應性能。
附圖說明
圖1是本發明實施例一提供的一種說話人自適應方法的流程圖;
圖2是本發明實施例二提供的一種說話人自適應方法的流程圖;
圖3是本發明實施例三提供的一種說話人自適應方法的流程圖;
圖4是本發明實施例四提供的一種說話人自適應裝置的結構圖;
圖5是本發明實施例五提供的一種計算機設備的結構示意圖。
具體實施方式
為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明具體實施例作進一步的詳細描述。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。
另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部內容。在更加詳細地討論示例性實施例之前應當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作(或步驟)描述成順序的處理,但是其中的許多操作可以被并行地、并發地或者同時實施。此外,各項操作的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應于方法、函數、規程、子例程、子程序等等。
實施例一
圖1為本發明實施例一提供的一種說話人自適應方法的流程圖,本實施例可適用于說話人自適應的情況,該方法可以由本發明實施例提供的說話人自適應裝置來執行,該裝置可采用軟件和/或硬件的方式實現,該裝置可集成在終端設備中或終端設備的應用端中。其中,終端設備可以為但不限于為移動終端(平板電腦或智能手機)。
其中,應用端可以為內嵌于終端設備中的某個客戶端的插件,或者為所述終端設備的操作系統的插件,與內嵌于終端設備中的說話人自適應客戶端或者終端設備的操作系統中的說話人自適應應用程序配合使用;應用端也可以為所述終端設備中一個獨立的可提供說話人自適應的客戶端,本實施例對此不進行限制。
如圖1所述,本實施例的方法具體包括:
s101、獲取目標說話人的第一語音數據。
其中,語音數據可以為原始語音信號,也可以為對原始語音信號經過處理得到的語音特征數據。
具體的,可通過終端設備的語音輸入裝置回好的或錄音裝置獲取語音數據。
s102、將第一語音數據輸入預先訓練得到的批規范化(batchnormalization,bn)網絡中進行自適應訓練,得到包含目標說話人語音參數的語音識別模型。
其中,語音參數為方差和/或均值,可通過將第一語音數據bn網絡訓練得到。
具體的,將語音數據分成m幀,將m幀語音數據輸入bn網絡中,通過bn網絡中bn變換公式得到方差和均值,及包含方差和均值語音識別模型:
其中,m為語音數據幀數,xi為第i幀語音數據,μb為均值,
由于bn網絡自適應不需要添加額外的層,使自適應過程更加簡單,且通過bn網絡得到的均值和方差均為一維向量,所以自適應時需要調整的參數量較少,且本實施例語音參數(即均值和方差)由預先訓練得到的bn網絡進行自適應訓練得到,不需要二遍解碼。
因此,本實施例通過將目標說話人的第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含目標說話人語音參數的語音識別模型,可以簡化說話人自適應過程,降低自適應復雜度,提高自適應性能。
實施例二
圖2是本發明實施例二提供的一種說話人自適應方法的流程圖。本實施例以上述實施例為基礎進行優化,在本實施例中,進一步包括如下步驟獲取參考說話人的語音數據;根據參考說話人的語音數據訓練得到bn網絡,bn網絡中包含全局語音參數,及包含全局語音參數的語音識別模型。
相應的,本實施例的方法具體包括:
s201、獲取參考說話人的語音數據。
其中,參考說話人的數量為一個或多個。
s202、根據參考說話人的語音數據訓練得到bn網絡,bn網絡中包含全局語音參數,及包含全局語音參數的語音識別模型。
其中,全局語音參數為方差和/或均值。具體的,可通過上述bn變換公式得到每個參考說話人的全局語音參數,然后求取平均得到一個全局語音參數,作為bn網絡中的全局語音參數,并訓練得到包含該全局語音參數的語音識別模型。
s203、獲取目標說話人的第一語音數據。
s204、將第一語音數據輸入bn網絡中進行自適應訓練,得到包含目標說話人語音參數的語音識別模型。
具體的,將第一語音數據輸入bn網絡中,得到目標說話人的語音參數,使用目標說話人的語音參數替換語音識別模型中的全局語音參數,得到包含目標說話人的語音參數的語音識別模型。或者,為提高語音識別性能,還可將目標說話人的語音參數與全局語音參數的加權作為該目標說話人最終的語音參數,并使用該語音參數替換語音識別模型中的全局語音參數,得到包含目標說話人的語音參數的語音識別模型。
或者,當目標說話人為多個時,通過上述自適應過程,可得到屬于每個目標說話人專有的語音識別模型,每個目標說話人語音識別模型之間除了語音參數(即均值和方差)不同,其他參數都相同。
本實施例通過根據參考說話人的語音數據訓練得到bn網絡,bn網絡中包含全局語音參數,及包含全局語音參數的語音識別模型,然后將將目標說話人的第一語音數據輸入bn網絡中進行自適應訓練,得到包含目標說話人語音參數的語音識別模型,可以簡化說話人自適應過程,降低自適應復雜度,提高自適應性能。
實施例三
圖3是本發明實施例三提供的一種說話人自適應方法的流程圖。本實施例以上述實施例為基礎進行優化,在本實施例中,進一步包括如下步驟:根據目標說話人的第二語音數據,得到目標說話人的語音參數;將目標說話人的語音參數輸入語音識別模型進行識別,得到對應的文本信息。
相應的,本實施例的方法具體包括:
s301、獲取目標說話人的第一語音數據。
s302、將第一語音數據輸入預先訓練得到的bn網絡中進行自適應訓練,得到包含目標說話人語音參數的語音識別模型。
s303、根據目標說話人的第二語音數據,得到目標說話人的語音參數。
其中,第一語音數據和第二語音數據可以為相同數據,也可以為不同的數據。
具體的,將目標說話人的第二語音數據輸入bn網絡中進行自適應訓練,得到目標說話人的語音參數。其中,語音參數可以為均值和方差。
s304、將目標說話人的語音參數輸入包含目標說話人語音參數的語音識別模型進行識別,得到對應的文本信息。
具體的,可以將目標說話人的語音參數直接輸入語音識別模型進行識別,得到對應的文本信息。也可以,計算目標說話人的語音參數和全局語音參數的加權;將加權輸入語音識別模型進行識別,得到對應的文本信息。例如,目標說話人的語音參數對應的權重為w1,全局語音參數的對應的權重為w2,目標說話人的語音參數為x1,全局語音參數為x2,則對應的加權為x1*w1+x2*w2。
由于本實施例的語音識別模型通過將目標說話人的第一語音數據輸入預先訓練得到的bn網絡中進行自適應訓練得到,且bn網絡的自適應性能較高,本實施例通過將目標說話人的第二語音參數輸入包含目標說話人語音參數的語音識別模型進行識別,得到對應的文本信息,可以提高語音識別效率。
實施例四
圖4是本發明實施例四提供的一種說話人自適應裝置的結構圖。本實施例可適用于說話人自適應的情況,該裝置可采用軟件和/或硬件的方式實現,該裝置可集成在終端設備中或終端設備的應用端中。其中,終端設備可以為但不限于為移動終端(平板電腦或智能手機)。
其中,應用端可以為內嵌于終端設備中的某個客戶端的插件,或者為終端設備的操作系統的插件,與內嵌于終端設備中的說話人自適應客戶端或者終端設備的操作系統中的說話人自適應應用程序配合使用;應用端也可以為終端設備中一個獨立的可提供說話人自適應的客戶端,本實施例對此不進行限制。
如圖4所示,所述裝置包括:語音數據獲取模塊401和模型訓練模塊402,其中:
語音數據獲取模塊401用于獲取目標說話人的第一語音數據;
模型訓練模塊402用于將第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含目標說話人語音參數的語音識別模型。
本實施例的說話人自適應裝置用于執行上述各實施例的說話人自適應方法,其技術原理和產生的技術效果類似,這里不再贅述。
在上述各實施例的基礎上,所述裝置還包括:語音識別模塊403;
語音識別模塊403用于根據目標說話人的第二語音數據,得到目標說話人的語音參數;將目標說話人的語音參數輸入語音識別模型進行識別,得到對應的文本信息。
在上述各實施例的基礎上,語音數據獲取模塊401還用于:獲取參考說話人的語音數據;
模型訓練模塊402還用于:根據參考說話人的語音數據訓練得到bn網絡,bn網絡中包含全局語音參數,及包含全局語音參數的語音識別模型。
在上述各實施例的基礎上,模型訓練模塊402具體用于:將第一語音數據輸入bn網絡中,得到目標說話人的語音參數,使用目標說話人的語音參數替換語音識別模型中的全局語音參數,得到包含目標說話人的語音參數的語音識別模型。
在上述各實施例的基礎上,語音識別模塊403具體用于:計算目標說話人的語音參數和全局語音參數的加權;將加權輸入語音識別模型進行識別,得到對應的文本信息。
在上述各實施例的基礎上,語音參數為方差和/或均值。
上述各實施例所提供的說話人自適應裝置可執行本發明任意實施例所提供的說話人自適應方法,具備執行說話人自適應方法相應的功能模塊和有益效果。
實施例五
圖5為本發明實施例五提供的一種設備的結構示意圖。圖5示出了適于用來實現本發明實施方式的示例性計算機設備12的框圖。圖5顯示的計算機設備12僅僅是一個示例,不應對本發明實施例的功能和使用范圍帶來任何限制。
如圖5所示,計算機設備12以通用計算設備的形式表現。計算機設備12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統存儲器28,連接不同系統組件(包括系統存儲器28和處理單元16)的總線18。
總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限于工業標準體系結構(isa)總線,微通道體系結構(mac)總線,增強型isa總線、視頻電子標準協會(vesa)局域總線以及外圍組件互連(pci)總線。
計算機設備12典型地包括多種計算機系統可讀介質。這些介質可以是任何能夠被計算機設備12訪問的可用介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
系統存儲器28可以包括易失性存儲器形式的計算機系統可讀介質,例如隨機存取存儲器(ram)30和/或高速緩存存儲器32。計算機設備12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統存儲介質。僅作為舉例,存儲系統34可以用于讀寫不可移動的、非易失性磁介質(圖5未顯示,通常稱為“硬盤驅動器”)。盡管圖5中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅動器,以及對可移動非易失性光盤(例如cd-rom,dvd-rom或者其它光介質)讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數據介質接口與總線18相連。存儲器28可以包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執行本發明各實施例的功能。
具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統、一個或者多個應用程序、其它程序模塊以及程序數據,這些示例中的每一個或某種組合中可能包括網絡環境的實現。程序模塊42通常執行本發明所描述的實施例中的功能和/或方法。
計算機設備12也可以與一個或多個外部設備14(例如鍵盤、指向設備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機設備12交互的設備通信,和/或與使得該計算機設備12能與一個或多個其它計算設備進行通信的任何設備(例如網卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(i/o)接口22進行。并且,計算機設備12還可以通過網絡適配器20與一個或者多個網絡(例如局域網(lan),廣域網(wan)和/或公共網絡,例如因特網)通信。如圖5所示,網絡適配器20通過總線18與計算機設備12的其它模塊通信。應當明白,盡管圖中未示出,可以結合計算機設備12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、raid系統、磁帶驅動器以及數據備份存儲系統等。
處理單元16通過運行存儲在系統存儲器28中的程序,從而執行各種功能應用以及數據處理,例如實現本發明實施例所提供的說話人自適應方法:
獲取目標說話人的第一語音數據;
將所述第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含所述目標說話人語音參數的語音識別模型。
進一步的,所述方法還包括:
根據所述目標說話人的第二語音數據,得到所述目標說話人的語音參數;
將所述目標說話人的語音參數輸入所述語音識別模型進行識別,得到對應的文本信息。
進一步的,所方法還包括:
獲取參考說話人的語音數據;
根據所述參考說話人的語音數據訓練得到所述bn網絡,所述bn網絡中包含所述全局語音參數,及包含所述全局語音參數的語音識別模型。
進一步的,所述將所述第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含所述目標說話人語音參數的語音識別模型包括:
將所述第一語音數據輸入所述bn網絡中,得到所述目標說話人的語音參數,使用所述目標說話人的語音參數替換所述語音識別模型中的全局語音參數,得到包含所述目標說話人的語音參數的語音識別模型。
進一步的,所述將所述目標說話人的語音參數輸入所述語音識別模型進行識別,得到對應的文本信息包括:
計算所述目標說話人的語音參數和所述全局語音參數的加權;
將所述加權輸入所述語音識別模型進行識別,得到對應的文本信息。
進一步的,所述語音參數為方差和/或均值。
實施例六
本發明實施例6還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現如本申請所有發明實施例提供的說話人自適應方法:
獲取目標說話人的第一語音數據;
將所述第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含所述目標說話人語音參數的語音識別模型。
進一步的,所述方法還包括:
根據所述目標說話人的第二語音數據,得到所述目標說話人的語音參數;
將所述目標說話人的語音參數輸入所述語音識別模型進行識別,得到對應的文本信息。
進一步的,所方法還包括:
獲取參考說話人的語音數據;
根據所述參考說話人的語音數據訓練得到所述bn網絡,所述bn網絡中包含所述全局語音參數,及包含所述全局語音參數的語音識別模型。
進一步的,所述將所述第一語音數據輸入預先訓練得到的批規范化bn網絡中進行自適應訓練,得到包含所述目標說話人語音參數的語音識別模型包括:
將所述第一語音數據輸入所述bn網絡中,得到所述目標說話人的語音參數,使用所述目標說話人的語音參數替換所述語音識別模型中的全局語音參數,得到包含所述目標說話人的語音參數的語音識別模型。
進一步的,所述將所述目標說話人的語音參數輸入所述語音識別模型進行識別,得到對應的文本信息包括:
計算所述目標說話人的語音參數和所述全局語音參數的加權;
將所述加權輸入所述語音識別模型進行識別,得到對應的文本信息。
進一步的,所述語音參數為方差和/或均值。
本發明實施例的計算機存儲介質,可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括——但不限于無線、電線、光纜、rf等等,或者上述的任意合適的組合。
可以以一種或多種程序設計語言或其組合來編寫用于執行本發明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言—諸如java、smalltalk、c++,還包括常規的過程式程序設計語言—諸如“c”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡——包括局域網(lan)或廣域網(wan)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。