一種抗噪聲的低速率語音編碼方法及解碼方法
【專利摘要】本發(fā)明提供了一種語音數(shù)據(jù)的編碼方法和解碼方法。該編碼方法包括:獲取原始音頻,通過端點檢測剔除原始音頻中的非語音數(shù)據(jù),獲得語音段數(shù)據(jù);對每幀語音數(shù)據(jù)進行預(yù)增強,剔除部分噪聲的干擾后計算語音能量;對每幀語音數(shù)據(jù)通過分析各子帶的周期特性和清濁狀態(tài)計算基音周期,采用多層神經(jīng)網(wǎng)絡(luò)模型對譜參數(shù)進行增強;通過譜參數(shù)、基音周期和能量進行語音幀聚類,將特征相似的相鄰幀組成一個語音段;計算每段語音譜參數(shù)、基音周期和能量的均值特征以及每段語音的幀數(shù)后分別進行量化;對量化后的各種語音參數(shù)進行編碼,生成語音數(shù)據(jù)包。本發(fā)明可以在極低編碼速率的情況下,保持較高的語音音質(zhì)。
【專利說明】一種抗噪聲的低速率語音編碼方法及解碼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及智能信息處理領(lǐng)域,尤其涉及一種語音數(shù)據(jù)的編碼方法及解碼方法。
【背景技術(shù)】
[0002]語音作為人類交流信息的主要手段之一,語音編碼一直在通信系統(tǒng)中占據(jù)重要的地位。語音的數(shù)據(jù)量非常龐大,不便于直接進行傳輸和存儲處理,同時很多領(lǐng)域?qū)φZ音的壓縮傳輸率要求很高,因此必須對語音進行合理有效的處理,以減少語音信號的傳輸速率和存儲量,即進行語音壓縮編碼,因此極低速率語音編碼已經(jīng)越來越受到關(guān)注,語音信號中有很大的信息冗余,壓縮的每一個比特都意味著節(jié)省開支,低速率數(shù)字語音傳輸具有重大的實用價值,高質(zhì)量的低速率語音編碼技術(shù)在移動通信、衛(wèi)星通信、多媒體技術(shù)以及I?電話通信中得到了普遍應(yīng)用。
[0003]目前已有的極低速率語音編碼大部分采用參數(shù)語音編碼的方法實現(xiàn)極低速率下的語音傳輸。將多幀聯(lián)合編碼和內(nèi)插等技術(shù)引入到經(jīng)典的參數(shù)編碼方法后,可以使語音在600如8速率下傳輸,接收端生成的語音仍具有可懂性。如果進一步降低語音傳輸速率,語音的音質(zhì)將明顯降低,這種方法將難以適用。通過傳統(tǒng)的語音識別系統(tǒng)識別出對應(yīng)的文本信息后進行傳輸,可以將傳輸速率降至200如8以下,但是采用這種方法識別出的文本難以保證較高的準(zhǔn)確率,同時說話人的特征難以保留。
【發(fā)明內(nèi)容】
[0004](一 )要解決的技術(shù)問題
[0005]為解決上述的一個或多個問題,本發(fā)明提供了一種語音數(shù)據(jù)的編碼方法及解碼方法,在不同噪聲環(huán)境下以極低編碼速率進行傳輸時,保持較高的語音音質(zhì)。
[0006]( 二 )技術(shù)方案
[0007]根據(jù)本發(fā)明的一個方面,提供了一種語音數(shù)據(jù)的編碼方法。該編碼方法包括:獲取原始音頻,通過端點檢測剔除原始音頻中的非語音數(shù)據(jù),獲得語音段數(shù)據(jù);對每幀語音數(shù)據(jù)進行預(yù)增強,剔除部分噪聲的干擾后計算語音能量;對每幀語音數(shù)據(jù)通過分析各子帶的周期特性和清濁狀態(tài)計算基音周期,采用多層神經(jīng)網(wǎng)絡(luò)模型對譜參數(shù)進行增強;通過譜參數(shù)、基音周期和能量進行語音幀聚類,將特征相似的相鄰幀組成一個語音段;計算每段語音譜參數(shù)、基音周期和能量的均值特征以及每段語音的幀數(shù)后分別進行量化;對量化后的各種語音參數(shù)進行編碼,生成語音數(shù)據(jù)包。
[0008]根據(jù)本發(fā)明的另一個方面,還提供了一種語音數(shù)據(jù)的解碼方法。該解碼方法包括:對接收到的語音數(shù)據(jù)包進行解碼,提取每段語音的譜參數(shù)、基音周期和能量均值特征以及語音幀數(shù),通過上述參數(shù)和全局方差采用動態(tài)參數(shù)生成算法計算各幀語音參數(shù),最后通過聲碼器合成語音。
[0009](三)有益效果
[0010]從上述技術(shù)方案可以看出,本發(fā)明語音數(shù)據(jù)的編碼方法及解碼方法具有以下有益效果:
[0011](1)發(fā)送端只需對特征相似的相鄰語音幀的譜參數(shù)、基音周期和增益的均值特征以及語音幀數(shù)進行編碼。通過定量的分析可以確定其編碼速率可低于500如8,能夠?qū)崿F(xiàn)語音數(shù)據(jù)在極低碼率下的有效傳輸。
[0012](2)在低碼率下傳輸?shù)恼Z音可以較好的保留說話人的特性。
[0013](3)通過語音檢測模塊,可以有效剔除音頻流中的非語音數(shù)據(jù),進一步降低碼率。
[0014](4)通過語音預(yù)增強模塊和譜參數(shù)增強模塊,可以有效的抑制各種噪聲的干擾,提高語音音質(zhì)。
[0015](5)傳輸?shù)恼Z音數(shù)據(jù)不受說話人、文本內(nèi)容、聲音采集環(huán)境的限制,因此系統(tǒng)具有高魯棒性,便于實際應(yīng)用。
【專利附圖】
【附圖說明】
[0016]圖1為根據(jù)本發(fā)明實施例的語音數(shù)據(jù)編碼方法及解碼方法的整體結(jié)構(gòu)示意圖;
[0017]圖2為圖1所示語音數(shù)據(jù)編碼方法中端點檢測模塊的結(jié)構(gòu)示意圖;
[0018]圖3為圖1所示語音數(shù)據(jù)編碼方法中語音預(yù)增強模塊的結(jié)構(gòu)示意圖;
[0019]圖4為圖1所示語音數(shù)據(jù)編碼方法中基音周期分析模塊的結(jié)構(gòu)示意圖;
[0020]圖5為圖1所示語音數(shù)據(jù)編碼方法中譜參數(shù)增強模塊的結(jié)構(gòu)示意圖;
[0021]圖6為圖1所示語音數(shù)據(jù)編碼方法中語音幀聚類模塊的結(jié)構(gòu)示意圖;
[0022]圖7為圖1所示語音數(shù)據(jù)編碼方法中參數(shù)編碼模塊的結(jié)構(gòu)示意圖;
[0023]圖8為圖1所示語音數(shù)據(jù)解碼方法中參數(shù)解碼模塊的結(jié)構(gòu)示意圖;
[0024]圖9為圖1所示語音數(shù)據(jù)解碼方法中語音生成模塊的結(jié)構(gòu)示意圖;
[0025]圖10為本發(fā)明實施例的語音數(shù)據(jù)的編碼/解碼方法系統(tǒng)中端點檢測模塊中高斯混合模型離線訓(xùn)練過程的示意圖;
[0026]圖11為本發(fā)明實施例的語音數(shù)據(jù)的編碼/解碼方法系統(tǒng)中音頻聚類模塊中隱馬爾科夫模型離線訓(xùn)練過程的示意圖;
[0027]圖12為本發(fā)明實施例的語音數(shù)據(jù)的編碼/解碼方法系統(tǒng)中譜參數(shù)增強模塊中多層神經(jīng)網(wǎng)絡(luò)模型離線訓(xùn)練過程的示意圖;
[0028]圖13為本發(fā)明實施例的語音數(shù)據(jù)的編碼/解碼方法系統(tǒng)中參數(shù)編碼模塊和參數(shù)解碼模塊中譜參數(shù)碼本離線訓(xùn)練過程的示意圖;
【具體實施方式】
[0029]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細(xì)說明。
[0030]需要說明的是,在附圖或說明書描述中,相似或相同的部分都使用相同的圖號。附圖中未繪示或描述的實現(xiàn)方式,為所屬【技術(shù)領(lǐng)域】中普通技術(shù)人員所知的形式。另外,雖然本文可提供包含特定值的參數(shù)的示范,但應(yīng)了解,參數(shù)無需確切等于相應(yīng)的值,而是可在可接受的誤差容限或設(shè)計約束內(nèi)近似于相應(yīng)的值。
[0031]本發(fā)明提出了一種基于參數(shù)的語音數(shù)據(jù)編解碼機制。該機制分為編碼方法和解碼方法。編碼方法將采集到的語音提取特征參數(shù)并對各種參數(shù)進行量化和編碼組成語音數(shù)據(jù)包,通過信道進行傳輸。解碼方法從信道中獲取語音數(shù)據(jù)包,對語音數(shù)據(jù)包進行解析,重構(gòu)語音參數(shù),恢復(fù)原始的語音,實現(xiàn)了語音數(shù)據(jù)在極低碼率下的傳輸。
[0032]本發(fā)明中提供了一種語音數(shù)據(jù)的編碼方法。如圖1所示,本編碼方法包括:獲取原始音頻,通過端點檢測剔除原始音頻中的非語音數(shù)據(jù),獲得語音段數(shù)據(jù);對每幀語音數(shù)據(jù)進行預(yù)增強,剔除部分噪聲的干擾后計算語音能量;對每幀語音數(shù)據(jù)通過分析各子帶的周期特性和清濁狀態(tài)計算基音周期,采用多層神經(jīng)網(wǎng)絡(luò)模型對譜參數(shù)進行增強;通過譜參數(shù)、基音周期和能量進行語音幀聚類,將特征相似的相鄰幀組成一個語音段;計算每段語音譜參數(shù)、基音周期和能量的均值特征以及每段語音的幀數(shù)后分別進行量化;對量化后的各種語音參數(shù)進行編碼,生成語音數(shù)據(jù)包。該編碼方法包括端點檢測步驟、語音預(yù)增強步驟、基音周期分析步驟、譜參數(shù)增強步驟、語音幀聚類步驟和參數(shù)編碼步驟。下面對各個功能步驟采用的方法進行詳細(xì)介紹。
[0033]步驟3110,獲取原始音頻,利用時域和變換域上的不同參數(shù)進行端點檢測,剔除原始音頻中的非語音數(shù)據(jù),獲得語音段數(shù)據(jù),后續(xù)只對語音段數(shù)據(jù)進行量化、編碼和傳輸,可以進一步降低系統(tǒng)對數(shù)據(jù)的傳輸速率;
[0034]利用短時能量、短時過零率和各子帶的能量比重可以有效的從原始音頻中檢測出靜音段數(shù)據(jù)和寬帶噪聲;通過分析音頻數(shù)據(jù)中子帶諧波特性可以有效的從原始音頻中檢測出周期噪聲和沖擊性噪聲;通過子帶譜包絡(luò)和子帶熵,可以有效的從原始音頻中檢測出各種非平穩(wěn)噪聲;通過對比不同段音頻數(shù)據(jù)的梅爾頻率倒譜系數(shù)可以對語音信號和音樂信號進行區(qū)分。利用上述各參數(shù)可以有效的從原始音頻中保留語音數(shù)據(jù),拒絕非語音數(shù)據(jù)。如圖2所示,端點檢測步驟如下:
[0035]子步驟3111,將原始音頻等間隔分成若干子段,計算每段原始音頻的短時能量、短時過零率和各頻帶能量,通過各頻帶能量計算100取一2000取頻段能量的比重;將上述三個參數(shù)分別與預(yù)先設(shè)定的取值范圍進行比較;如果三個參數(shù)都在取值范圍內(nèi),則判定為待甄別數(shù)據(jù);如果三個參數(shù)都超出取值范圍,則判定為非語音段數(shù)據(jù);如果其中一個或兩個參數(shù)在取值范圍內(nèi)并且相鄰兩段音頻為待甄別數(shù)據(jù),則判定為待甄別數(shù)據(jù)否則判定為非語音數(shù)據(jù);通過上述判定可將采集的音頻數(shù)據(jù)分為非語音段數(shù)據(jù)和待甄別段數(shù)據(jù),后續(xù)步驟只對待甄別數(shù)據(jù)進行處理;
[0036]子步驟3112,對于子步驟3111中保留下來的音頻數(shù)據(jù)在頻域上進行分析,首先將音頻信號分成若干子帶,并分別在各子帶的頻率范圍內(nèi)進行帶通濾波,得到各子帶的音頻信號;對各子帶音頻信號進行希爾伯特變換,得到各子帶的譜包絡(luò),并分析譜包絡(luò)信號的統(tǒng)計特性;在長跨度模式下,利用當(dāng)前幀和相鄰若干幀計算當(dāng)前幀各頻點的熵,并在特定子帶范圍內(nèi)統(tǒng)計熵的均值和方差以確定當(dāng)前語音幀的復(fù)雜度。融合短跨度模式下的子帶譜包絡(luò)特性和長跨度模式下的子帶熵特性進一步剔除部分非語音數(shù)據(jù)。
[0037]子步驟3113,對于子步驟3112中保留下來的音頻數(shù)據(jù)在頻域上進行分析,對待甄別數(shù)據(jù)以幀為單位提取梅爾倒譜系數(shù),先提取13階靜態(tài)參數(shù),然后分別計算它們的一階差分和二階差分,最終提取的參數(shù)是39維,利用這39維屬性進行語音檢測。將參數(shù)分別輸入到語音數(shù)據(jù)的高斯混合模型和各種非語音數(shù)據(jù)的高斯混合模型中,如果當(dāng)前幀輸入到語音數(shù)據(jù)的高斯混合模型時輸出概率最大則判定為語音數(shù)據(jù),否則判定為非語音數(shù)據(jù);對于判定結(jié)果需要進行后處理,如果當(dāng)前幀判為非語音數(shù)據(jù)但相鄰兩幀判為語音數(shù)據(jù),則將當(dāng)前幀改判成語音數(shù)據(jù)。
[0038]綜上分析,端點檢測模塊首先通過短時能量、短時過零率和各頻帶能量分布將原始音頻分為非語音數(shù)據(jù)和待甄別數(shù)據(jù),然后對待甄別數(shù)據(jù)通過子帶諧波、子帶譜包絡(luò)和子帶熵剔除部分非語音數(shù)據(jù),對于保留下來的待甄別數(shù)據(jù)通過語音數(shù)據(jù)的高斯混合模型和非語音數(shù)據(jù)的高斯混合模型判斷是否為語音數(shù)據(jù)。
[0039]在端點檢測過程中,需要對語音數(shù)據(jù)的高斯混合模型和非語音數(shù)據(jù)的高斯混合模型進行訓(xùn)練,以下對上述模型的訓(xùn)練步驟進行說明。
[0040]模型訓(xùn)練步驟需要選擇各種類型的音頻進行高斯混合模型的訓(xùn)練,這樣可以保證模型的魯棒性,提高語音檢測的準(zhǔn)確率。每個音頻文件需要對其類別進行標(biāo)注。模型訓(xùn)練過程如圖10所不。
[0041]步驟3310,對全部訓(xùn)練音庫進行音頻過濾;依次采用子步驟3111和子步驟3112中的方法剔除部分非語音數(shù)據(jù),后續(xù)步驟只對剩余的數(shù)據(jù)進行訓(xùn)練。
[0042]步驟3320,根據(jù)音頻標(biāo)注對過濾后的音頻進行分類,將原始音頻分為語音數(shù)據(jù)和非語音數(shù)據(jù),對于非語音數(shù)據(jù)需要根據(jù)音頻信號的特點對它們進行進一步分類。
[0043]步驟3330,對分類后的音頻以幀為單位提取梅爾倒譜系數(shù)。先提取13階靜態(tài)參數(shù),然后分別計算它們的一階差分和二階差分,最終提取的參數(shù)是39維,利用這39維屬性進行高斯混合模型訓(xùn)練。
[0044]步驟3340,對語音數(shù)據(jù)和不同類別的非語音數(shù)據(jù)采用39階的梅爾倒譜系數(shù)分別進行高斯混合模型的訓(xùn)練,通過£1迭代訓(xùn)練確定不同高斯混合模型中各個高斯成分的權(quán)重、均值和方差。即完成對高斯混合模型的訓(xùn)練。
[0045]至此,語音檢測模塊中使用的高斯混合模型訓(xùn)練結(jié)束。
[0046]步驟3120,采取對數(shù)最小均方誤差方法降低語音段數(shù)據(jù)中的噪聲干擾;
[0047]系統(tǒng)在實際應(yīng)用時,采集的聲音不可避免存在著各種噪聲??赡馨ㄓ蓱?zhàn)斗機引起的周期性噪聲、由于爆炸撞擊引起的沖激噪聲、由于室外氣流引起的寬帶噪聲以及周邊的語音干擾。相比其它去噪方法,對數(shù)最小均方誤差方法在低信噪比情況下的去噪效果較好,去噪后的語音信號識別率較高,對時變信號和突變信號去噪效果尤其明顯。
[0048]如圖3所示,采取對數(shù)最小均方誤差方法降低噪聲干擾的步驟包括:
[0049]子步驟3121,對語音段數(shù)據(jù)逐幀進行傅里葉變換,將語音信號變換到頻域進行分析;
[0050]子步驟3122,在頻域上對語音信號進行分解,將其分為實部和虛部兩個部分;
[0051]子步驟3123,在頻域上對語音信號的實部和虛部分別采用對數(shù)最小均方誤差方法進行語音去噪,進而得到增強后的實部語音信號和虛部語音信號;
[0052]子步驟3124,在頻域上將語音信號的實部和虛部進行組合,進行反傅里葉變換,進而將增強后的語音信號變換到時域,實現(xiàn)對語音信號的去噪。
[0053]綜上分析,語音預(yù)增強模塊在頻域上將語音信號分解為實部和虛部采用最小均方誤差方法分別進行增強,這在一定程度上減弱了噪聲相位的干擾。
[0054]步驟3130,對預(yù)增強語音的各個子帶特征進行分析,計算各幀語音信號的基音周期,如圖4所示,計算基音周期的步驟包括:
[0055]子步驟3131,將語音信號0-妝的頻段劃分成四個子帶,包括:0-113卜處,通過帶通濾波器得到各子帶的語音信號,后續(xù)子步驟將對上述四個子帶分別進行處理;
[0056]子步驟3132,對四個子帶的語音信號分別進行希爾伯特變換,得到四個子帶的譜包絡(luò)信號,對0-化子帶進行逆濾波,得到該子帶的殘差信號;后續(xù)子步驟將對四個子帶的譜包絡(luò)信號和0-化子帶的殘差信號進行分析;
[0057]子步驟3133,對子步驟3132得到的譜包絡(luò)和殘差信號進行多通道梳狀濾波,語音信號通過不同梳狀濾波器后其諧波成分將得到突顯,子諧波成分將得到抑制;對于不同通道的梳狀濾波器分別計算兩者的能量比,并與閾值進行比較,保留高于指定閾值的通道;
[0058]子步驟3134,對1-212-3&和3-處三個子帶利用子步驟3133中所選擇的梳狀濾波通道分別進行清濁度計算,并與閾值進行比較,保留高于指定閾值的子帶;
[0059]子步驟3135,對所選擇的子帶根據(jù)清濁度進行加權(quán),清濁度高的子帶可能包含更重要的基音周期信息,因此將其權(quán)重設(shè)得更高一些;
[0060]子步驟3136,利用子步驟3135得到~個候選基頻,然后對~個候選基頻采用最大自相法確定最終的基音周期。
[0061]綜上分析,基音周期計算模塊首先將語音信號劃分為多個子帶,對子帶的譜包絡(luò)和殘差信號進行多通道梳狀濾波并進行通道選擇,根據(jù)所選通道計算各子帶清濁度,對濁音特性明顯的子帶進行加權(quán)計算基音周期。
[0062]步驟3140,采用多層神經(jīng)網(wǎng)絡(luò)模型對提取的線譜對參數(shù)進行增強處理,降低噪聲對語音譜參數(shù)提取的干擾,如圖5所示,線譜對參數(shù)增強的步驟包括;
[0063]子步驟3141,對采用步驟3120進行預(yù)增強后的語音提取線譜對參數(shù);
[0064]子步驟3142,分別對各幀線譜對參數(shù)的每一維特征進行歸一化,具體通過所有線譜對參數(shù)訓(xùn)練樣本中各維特征的均值和方差對提取的各幀線譜對參數(shù)的每一維特征進行歸一化;
[0065]子步驟3143,將歸一化的線譜對參數(shù)輸入到多層神經(jīng)網(wǎng)絡(luò)模型,模型的輸出是增強的歸一化線譜對參數(shù)。
[0066]子步驟3144,對增強的歸一化線譜對參數(shù)進行后處理,利用全部線譜對參數(shù)訓(xùn)練樣本中每一維特征的均值和方差計算增強的線譜對參數(shù)。
[0067]綜上分析,通過多層神經(jīng)網(wǎng)絡(luò)模型確定噪聲環(huán)境下線譜對參數(shù)和安靜環(huán)境下線譜對參數(shù)之間的映射關(guān)系,實現(xiàn)對線譜對參數(shù)的增強處理。
[0068]在語音編碼方法中需要用到多層神經(jīng)網(wǎng)絡(luò)模型,以下對多層神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練步驟進行說明。
[0069]多層神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練步驟需要選擇覆蓋不同說話人、不同主題的音庫進行訓(xùn)練,這樣可以保證模型的魯棒性;對于每個音頻樣本,需要包括原始安靜語音和疊加不同信噪比條件下各種噪聲的帶噪語音,訓(xùn)練過程如圖12所示。
[0070]步驟3510,采用步驟3110中的端點檢測方法對訓(xùn)練音庫中的非語音數(shù)據(jù)進行剔除,保留語音段數(shù)據(jù)進行線譜對參數(shù)提?。痪唧w為,首先利用端點檢測模塊對安靜語音進行端點檢測,剔除非語音數(shù)據(jù),記錄非語音段數(shù)據(jù)的區(qū)間,然后將相應(yīng)的帶噪語音中的非語音段剔除。
[0071]步驟3520,采用步驟3120對保留的帶噪語音數(shù)據(jù)進行預(yù)增強處理,消除部分噪聲的干擾;
[0072]步驟3530,分別計算安靜語音和所對應(yīng)的預(yù)增強帶噪語音的線譜對參數(shù),得到線譜對參數(shù)的映射對;
[0073]步驟3540,采用子步驟3142對線譜對參數(shù)的各維特征進行歸一化,生成神經(jīng)網(wǎng)絡(luò)模型所需的訓(xùn)練數(shù)據(jù);
[0074]步驟3550,多層神經(jīng)網(wǎng)絡(luò)模型預(yù)訓(xùn)練,逐層優(yōu)化神經(jīng)網(wǎng)絡(luò)模型的權(quán)值參數(shù)和偏置參數(shù),得到多層神經(jīng)網(wǎng)絡(luò)模型的初始參數(shù);
[0075]步驟3560,神經(jīng)網(wǎng)絡(luò)模型參數(shù)的確定,對于多層神經(jīng)網(wǎng)絡(luò)采用后向傳播的方式進行多次迭代,優(yōu)化模型參數(shù)使重構(gòu)誤差最小,得到最終的模型。
[0076]步驟3150,對預(yù)增強的語音段數(shù)據(jù)提取特征參數(shù),通過已訓(xùn)練的隱馬爾科夫模型和乂“虹化算法,對語音段數(shù)據(jù)進行音素識別,并確定識別出的各音素中每個狀態(tài)的時長;
[0077]如圖4所示,音素識別步驟具體實現(xiàn)方法如下:
[0078]子步驟3151,對于每幀語音數(shù)據(jù),對其進行特征參數(shù)提取;需要提取的語音參數(shù)包括能量、基音周期和線譜對參數(shù);具體根據(jù)步驟3120計算語音幀的能量,根據(jù)步驟3130計算語音幀的基音周期,根據(jù)步驟3140計算語音幀的線譜對參數(shù);
[0079]子步驟3152,對于每幀語音數(shù)據(jù),利用子步驟3151中提取的三種語音參數(shù),通過訓(xùn)練好的隱馬爾科夫模型和算法進行音素識別,并確定音素中各個狀態(tài)的持續(xù)時長;
[0080]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚,狀態(tài)層是處于音素層和語音參數(shù)層之間的層次。
[0081]綜上分析,采用音素識別器對語音信號進行音素識別,進而確定所識別音素中各狀態(tài)的持續(xù)時長,將每個狀態(tài)所包含的語音幀組成一段,實現(xiàn)語音幀的聚類,將特征相似的相鄰語音幀組成語音段。
[0082]在語音編碼方法中需要用到隱馬爾科夫模型,以下對隱馬爾科夫模型的訓(xùn)練步驟進行說明。
[0083]模型訓(xùn)練步驟選擇覆蓋不同說話人、不同主題的音庫進行隱馬爾科夫模型訓(xùn)練,這樣可以保證模型的魯棒性,同時音庫應(yīng)覆蓋各種聲韻現(xiàn)象。每個音頻文件需要對應(yīng)一個標(biāo)注文件,每個標(biāo)注文件需要包含相應(yīng)音頻所對應(yīng)的音素信息。
[0084]對于訓(xùn)練語料首先需要剔除非音頻數(shù)據(jù)并濾除噪聲,然后進行隱馬爾科夫模型訓(xùn)練;采用步驟3110中的端點檢測方法剔除非音頻數(shù)據(jù),采用步驟3120中的語音增強方法濾除噪聲。如圖11所示,模型訓(xùn)練過程包括:
[0085]步驟3510,對剔除非音頻數(shù)據(jù)并濾除噪聲的訓(xùn)練語料提取能量、線譜對參數(shù)和基音周期。
[0086]每個音素對應(yīng)一個隱馬爾科夫模型,模型訓(xùn)練時每個音素分成5個狀態(tài),對于線譜對參數(shù)和能量,每個狀態(tài)對應(yīng)一個多高斯分布。對于基頻需要分清音和濁音兩種情況考慮,采用多空間分布進行訓(xùn)練,利用譜參數(shù)和基頻建立隱馬爾科夫模型。根據(jù)特征參數(shù)類型的不同采用多個流進行訓(xùn)練。模型中包含5個流,其中1個流對應(yīng)于能量,1個流對應(yīng)于線譜對參數(shù),另外3個流分別對應(yīng)于基頻以及基頻的一階和二階差分。
[0087]步驟3520,利用提取的語音參數(shù)進行模型的初始訓(xùn)練,確定模型的初始概率、觀測概率和轉(zhuǎn)移概率。每個音素對應(yīng)一個隱馬爾科夫模型,每個隱馬爾科夫模型包含5個狀態(tài),不同狀態(tài)對應(yīng)于不同的分布。采用等分法確定不同狀態(tài)和不同音素之間的初始邊界,并訓(xùn)練得到模型的初始參數(shù),然后通過算法調(diào)整不同狀態(tài)之間邊界,并重新訓(xùn)練更新模型參數(shù),經(jīng)過多次迭代確定模型初始概率、觀測概率和轉(zhuǎn)移概率即完成模型的初始訓(xùn)練。
[0088]步驟3530,對狀態(tài)進行聚類,根據(jù)能量、線譜對參數(shù)和基音周期的聲學(xué)特征將相似的狀態(tài)歸為1類。
[0089]步驟3540,進行模型的優(yōu)化訓(xùn)練,更新模型參數(shù)。根據(jù)狀態(tài)聚類的結(jié)果,更新模型的初始概率、觀測概率和轉(zhuǎn)移概率,然后通過算法重新調(diào)整不同狀態(tài)之間邊界,經(jīng)過多次迭代優(yōu)化模型參數(shù)后確定最終的隱馬爾科夫模型。
[0090]至此,隱馬爾科夫模型訓(xùn)練過程結(jié)束。
[0091]步驟3160,對各種語音參數(shù)進行量化和編碼,生成語音數(shù)據(jù)包。
[0092]參數(shù)編碼步驟如圖7所示,具體實現(xiàn)方法如下:
[0093]子步驟3161,利用步驟3150所識別音素序列中各個狀態(tài)的時長,確定各個狀態(tài)的邊界,進而可以確定每個狀態(tài)所包含的語音幀;分別計算每個狀態(tài)中所包含語音幀的能量均值、基音周期均值和線譜對參數(shù)均值;
[0094]子步驟3162,對子步驟3161中計算得到的線譜對參數(shù)均值進行矢量量化,在對譜參數(shù)進行矢量量化的過程中,計算輸入的譜參數(shù)與全部矢量碼本的計權(quán)距離,保留與輸入譜參數(shù)距離最近的碼本作為線譜對參數(shù)均值的量化結(jié)果;
[0095]子步驟3163,對基音周期均值和增益均值進行非線性量化。對基音周期均值進行非線性量化時,根據(jù)基音周期的取值范圍將其等分成若干個區(qū)間,由于語音數(shù)據(jù)基音周期的統(tǒng)計分布不均勻,集中分布在部分區(qū)間內(nèi),因此可以對分布較稀疏的相鄰區(qū)間進行合并,減少基音周期的量級,從而降低對基音周期編碼的比特數(shù)。對增益均值進行非線性量化時,根據(jù)增益的取值范圍將其分成若干個區(qū)間,利用語音數(shù)據(jù)增益的統(tǒng)計分布不均勻這一特性,對分布較稀疏的相鄰區(qū)間進行合并,減少增益的量級,實現(xiàn)對數(shù)據(jù)的有效壓縮。
[0096]子步驟3164,將量化后的線譜對參數(shù)均值、基音周期均值、增益均值和單個狀態(tài)內(nèi)的語音幀個數(shù)組成數(shù)據(jù)包,其中,數(shù)據(jù)包第一位作為同步頭,語音參數(shù)按照線單個狀態(tài)內(nèi)的語音幀個數(shù)、譜對參數(shù)均值、基音周期均值、增益均值的順序依次排列,數(shù)據(jù)包最后一位作為奇偶校驗位。
[0097]綜上分析,在進行語音參數(shù)量化的過程中,僅對包含若干幀的每個語音段中的各種語音參數(shù)均值特征進行量化;
[0098]采用上述方法進行語音編碼,通過定量的分析可以確定傳輸速率可降到低于500^8。在發(fā)送端完成數(shù)據(jù)編碼后,將數(shù)據(jù)包加載到信道中進行傳輸。
[0099]本發(fā)明中提供了一種語音數(shù)據(jù)的解碼方法,如圖1所示。該解碼方法包括:對接收到的語音數(shù)據(jù)包進行解碼,提取每段語音的譜參數(shù)、基音周期和能量均值特征以及語音幀數(shù),通過上述參數(shù)和全局方差采用動態(tài)參數(shù)生成算法計算各幀語音參數(shù),最后通過聲碼器合成語音。該解碼方法還包括:參數(shù)解碼步驟和語音生成步驟。
[0100]步驟3210,對接收到的語音數(shù)據(jù)包進行解碼,對語音幀個數(shù)、線譜對參數(shù)均值、基音周期均值和能量均值進行解析。
[0101]如圖5所示,數(shù)據(jù)解碼步驟的具體實現(xiàn)方法如下:
[0102]子步驟3211,對語音數(shù)據(jù)包的校驗信息進行檢驗,判斷同步頭和奇偶校驗位的正確性。
[0103]子步驟3212,在確定數(shù)據(jù)包在通信系統(tǒng)中正確傳輸后,對語音幀個數(shù)進行解析,確定語音段的持續(xù)時間。
[0104]子步驟3213,對線譜對參數(shù)均值、基音周期均值和能量均值進行解析;選擇相應(yīng)的矢量碼本對線譜對參數(shù)均值進行解析;根據(jù)相應(yīng)的量級對語音段的基音周期均值和能量均值進行解析。
[0105]綜上分析,在進行語音參數(shù)解碼的過程中,僅對包含若干幀的每個語音段中的各種語音參數(shù)均值特征進行解碼;然后利用各種語音參數(shù)的均值特征和全局方差采用動態(tài)參數(shù)生成算法計算每幀語音的最優(yōu)參數(shù)。
[0106]無論在編碼方法,還是在解碼方法中,都需要用到矢量碼本,以下對矢量碼本的訓(xùn)練步驟進行說明。
[0107]矢量碼本的訓(xùn)練步驟需要選擇覆蓋不同說話人、不同主題的音庫進行訓(xùn)練,這樣可以保證矢量碼本的魯棒性。矢量碼本的訓(xùn)練過程如圖8所示。
[0108]步驟3610,對每個訓(xùn)練音頻采用步驟3110中的方法進行端點檢測,剔除訓(xùn)練音庫中的非語音數(shù)據(jù),保留語音數(shù)據(jù)進行后續(xù)處理。
[0109]步驟3620,對訓(xùn)練音庫中的語音數(shù)據(jù)提取線譜對參數(shù),并計算各階線譜對參數(shù)與其后一階線譜對參數(shù)的差分。
[0110]步驟3630,利用線譜對參數(shù)的升序特性,剔除不穩(wěn)定的數(shù)據(jù),如果線譜對參數(shù)不滿足升序特性或者相鄰兩階譜參數(shù)的距離小于閾值,則將其從訓(xùn)練數(shù)據(jù)中剔除。
[0111]步驟3640,對訓(xùn)練碼本進行初始訓(xùn)練,確定初始化碼本;設(shè)定初始閾值I,設(shè)初選碼本集中目標(biāo)碼本個數(shù)為~ ;從訓(xùn)練碼本中隨機選擇一個碼本加入到初選碼本集,遍歷其余訓(xùn)練碼本計算各訓(xùn)練樣本與初選碼本集中各碼本的計權(quán)距離,如果某訓(xùn)練樣本與初選碼本集中各碼本的計權(quán)距離均大于I,則將該訓(xùn)練樣本加入到初選碼本集中;如果遍歷訓(xùn)練樣本結(jié)束時初選碼本集的樣本個數(shù)不等于I則對閾值進行調(diào)整后重新進行碼本初始訓(xùn)練直到遍歷結(jié)束時初選碼本集中的樣本個數(shù)為
[0112]步驟3660,將步驟3640中得到的~個初選碼本作為~個類別的初始質(zhì)心,計算訓(xùn)練碼本中各樣本與~個質(zhì)心的計權(quán)距離,將各樣本分到與其距離最小的類別中,完成對訓(xùn)練樣本的遍歷后累計計算各訓(xùn)練樣本與其類別質(zhì)心的計權(quán)距離作為訓(xùn)練誤差,然后利用各類別中包含的樣本重新計算各類別的質(zhì)心,根據(jù)更新后的質(zhì)心重新對訓(xùn)練樣本進行分類并計算訓(xùn)練誤差,根據(jù)當(dāng)前訓(xùn)練誤差和上一次訓(xùn)練誤差計算相對誤差,如果大于0.0001則繼續(xù)迭代,否則停止迭代并當(dāng)前各類別的質(zhì)心作為最終的矢量碼本。
[0113]步驟3220,根據(jù)解碼后重構(gòu)的語音參數(shù)以幀為單位合成語音。
[0114]如圖9所示,語音生成步驟具體實現(xiàn)方法如下:
[0115]子步驟3221,在已知各語音段的參數(shù)均值特征、全局方差以及包含語音幀個數(shù)的基礎(chǔ)上,通過動態(tài)參數(shù)生成算法計算最優(yōu)的參數(shù)序列。本子步驟中,需要同時考慮了譜參數(shù)和基頻的靜態(tài)特征以及一階和二階差分的動態(tài)特征,避免了生成的參數(shù)在狀態(tài)模型銜接處的不連續(xù)現(xiàn)象,保證了生成參數(shù)的平滑性。
[0116]子步驟3222,為了使合成語音和原始語音在共振區(qū)有很好的匹配,引入了自適應(yīng)譜增強技術(shù),自適應(yīng)譜增強模塊通過突出激勵譜中共振峰頻率處的幅度譜,達(dá)到提高整個短時譜在共振峰處信噪比的目的,可以有效的彌補線性預(yù)測型濾波器只是極點濾波器的缺點,增強合成語音共振峰的結(jié)構(gòu),防止合成語音聽起來發(fā)悶;
[0117]子步驟3223,采用參數(shù)合成法利用語音的激勵參數(shù)和線性預(yù)測參數(shù)進行語音合成;將激勵信號通過自適應(yīng)譜增強后的濾波器輸出合成后的語音,其中濾波器的系數(shù)是通過線譜對參數(shù)計算得到的線性預(yù)測系數(shù)。
[0118]子步驟3224,以每個基音同步周期為單元,對增益進行調(diào)節(jié);
[0119]子步驟3225,通過脈沖擴散濾波器,將激勵信號的能量在一個基音周期中進行擴散,減弱某些頻帶處周期性作用,從而減少在合成語音中的刺耳的成分,使合成語音的蜂鳴效果降低,變得更為連貫和自然;
[0120]子步驟3226,對編解碼后的語音進行均衡處理,調(diào)整各頻段的增益值,使低碼率下合成的語音明亮透徹。分析人耳的聽感特性,2-4紐2頻段對聲音的亮度影響很大,這段聲音不宜衰減,適當(dāng)?shù)奶嵘梢蕴岣呗曇舻拿髁炼群颓逦?,因此對解碼后合成的語音適當(dāng)增加這一頻段的強度。
[0121]綜上所述,本發(fā)明提出了一種語音編碼及解碼方法,獲取原始音頻,通過端點檢測剔除原始音頻中的非語音數(shù)據(jù),獲得語音段數(shù)據(jù);對每幀語音數(shù)據(jù)進行預(yù)增強,剔除部分噪聲的干擾后計算語音能量;對每幀語音數(shù)據(jù)通過分析各子帶的周期特性和清濁狀態(tài)計算基音周期,采用多層神經(jīng)網(wǎng)絡(luò)模型對譜參數(shù)進行增強;通過譜參數(shù)、基音周期和能量進行語音幀聚類,將特征相似的相鄰幀組成一個語音段;計算每段語音譜參數(shù)、基音周期和能量的均值特征以及每段語音的幀數(shù)后分別進行參數(shù)量化;對量化后的各種語音參數(shù)進行編碼,生成語音數(shù)據(jù)包并發(fā)送;接收端對接收到的語音數(shù)據(jù)包進行解碼,提取每段語音的譜參數(shù)、基音周期和能量均值特征以及語音幀數(shù),通過上述參數(shù)和全局方差采用動態(tài)參數(shù)生成算法計算各幀語音參數(shù),最后通過聲碼器合成語音。解碼后的語音保持較高的可懂度,同時系統(tǒng)具有高魯棒性,不受說話人、文本內(nèi)容、聲音采集環(huán)境的限制,便于實際應(yīng)用。
[0122]需要說明的是,上述對各部件的實現(xiàn)方式并不僅限于實施方式中提到的各種實現(xiàn)方式,本領(lǐng)域的普通技術(shù)人員可對其進行簡單地熟知地替換,例如:
[0123](1)語音編碼和解碼中用到的譜參數(shù)是線譜對參數(shù),可以用其它參數(shù)替代,如使用不同階數(shù)的梅爾倒譜系數(shù)。
[0124](2)基音周期分析時采用線性頻率刻度等間隔劃分子帶,可以用其它頻率刻度劃分子帶,如使用梅爾頻率刻度。
[0125]以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種語音數(shù)據(jù)的編碼方法,其特征在于,包括:端點檢測模塊首先通過短時能量、短時過零率和各頻帶能量分布將原始音頻分為非語音數(shù)據(jù)和待甄別數(shù)據(jù),然后對待甄別數(shù)據(jù)通過子帶諧波、子帶譜包絡(luò)和子帶熵剔除部分非語音數(shù)據(jù),對于保留下來的待甄別數(shù)據(jù)通過語音數(shù)據(jù)的高斯混合模型和非語音數(shù)據(jù)的高斯混合模型判斷是否為語音數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的音數(shù)據(jù)的編碼方法,其特征在于,包括: 基音周期計算模塊首先將語音信號劃分為多個子帶,對子帶的譜包絡(luò)和殘差信號進行多通道梳狀濾波并進行通道選擇,根據(jù)所選通道計算各子帶清濁度,對濁音特性明顯的子帶進行加權(quán)計算基音周期。
3.根據(jù)權(quán)利要求1所述的音數(shù)據(jù)的編碼方法,其特征在于,包括: 通過多層神經(jīng)網(wǎng)絡(luò)模型確定噪聲環(huán)境下線譜對參數(shù)和安靜環(huán)境下線譜對參數(shù)之間的映射關(guān)系,實現(xiàn)對線譜對參數(shù)的增強處理。
4.根據(jù)權(quán)利要求1所述的音數(shù)據(jù)的編碼方法,其特征在于,語音數(shù)據(jù)還包括進一步處理:采用音素識別器對語音信號進行音素識別,進而確定所識別音素中各狀態(tài)的持續(xù)時長,將每個狀態(tài)所包含的語音幀組成一段,實現(xiàn)語音幀的聚類,將特征相似的相鄰語音幀組成語音段。
5.根據(jù)權(quán)利要求4所述的音數(shù)據(jù)的編碼方法,其特征在于,還包括: 在進行語音參數(shù)量化的過程中,僅對包含若干幀的每個語音段中的各種語音參數(shù)均值特征進行量化和傳輸。
6.根據(jù)權(quán)利要求5所述的音數(shù)據(jù)的編碼方法,其特征在于,還包括: 在進行語音參數(shù)解碼的過程中,僅對包含若干幀的每個語音段中的各種語音參數(shù)均值特征進行解碼;然后利用各種語音參數(shù)的均值特征和全局方差采用動態(tài)參數(shù)生成算法確定每幀語音的最優(yōu)參數(shù)。
【文檔編號】G10L19/02GK104318927SQ201410611986
【公開日】2015年1月28日 申請日期:2014年11月4日 優(yōu)先權(quán)日:2014年11月4日
【發(fā)明者】陳世文 申請人:東莞市北斗時空通信科技有限公司