本發明涉及語言溝通領域,尤其涉及一種口語比對方法。
背景技術:
語音是語言的聲學表現,是人類交流信息的手段。使人們能更加有效地產生、傳輸、存儲和獲取語言信息,促進了社會的發展。
隨著我國改革開放和對外合作的不斷深化,商務往來、文化交流、跨國旅游等活動日益頻繁,越來越多的人需要學習一門外語。學習者學習外語存在的問題是發音不準確,學習者無法獲悉在同一文本下,自身的發音與標準的發音存在哪些問題,這樣給學習者帶來了較大的困擾,而且也影響學到外語的效率。
技術實現要素:
為了克服上述現有技術中的不足,本發明的目的在于,提供一種口語比對方法,方法包括:
S1:設置標準文本,獲取標準文本的標準語音特征,將標準語音特征儲存至數據庫中;
S2:通過用戶朗讀標準文本,獲取用戶語音數據,提取用戶語音數據中的用戶語音特征;
S3:將用戶語音特征與標準語音特征進行對齊,并將用戶語音特征與標準語音特征進行對比;
S4:將用戶語音特征及對比結果儲存至數據庫中。
優選地,步驟S2還包括:
S21將用戶語音數據按時間進行分段,分為n段,以20ms為一時間分段,對每一時間段用戶語音數據加矩形窗,或漢明窗處理得到分段語音信號Xn,n為分段數;
S22對分段語音信號Xn進行短時傅里葉變換,變換為頻域信號,將短時時域信號轉化為頻域信號Yn,并通過Qn=│Yn│2計算其短時能量譜Qn;
S23采用先進先出的方式將短時能量譜Qn從矢量空間S移動至帶通濾波器進行濾波;由于每一個頻帶中分量的作用在人耳中是疊加的,因此將每個濾波器頻帶內的能量進行疊加,這時第k個濾波器輸出功率譜x'(k);
S24將每個濾波器的輸出取對數,得到相應頻帶的對數功率譜;并進行反離散余弦變換,得到M個MFCC系數,一般M取13~15個;MFCC系數為:
S25將得到的MFCC特征作為靜態特征,再將所述靜態特征做一階和二階差分,得到相應的動態特征。
優選地,步驟S2還包括:
獲取每一語音段頻率范圍的頻譜能量(fk),該語音段內的頻率上限值k1,下限值k2,獲取語音段內的頻譜能量比值PNn;
優選地,步驟S3還包括:
若語音段內頻譜能量(fk)≥第一閾值,該語音段內頻譜能量比值PNn≥第二閾值,則判斷此語音段為母音段;第一閾值0.1-0.5,第二閾值取60%-85%;
以具有母音段的頻譜能量為基準,判斷具有母音段的頻譜能量之前的頻譜能量的過零率是否大于第三閾值,若大于第三閾值,則斷定該頻譜能量為母音前的輔音,第三閾值取100;
以具有母音段的頻譜能量為基準,判斷具有母音段的頻譜能量之后的頻譜能量的過零率是否大于第三閾值,若大于第三閾值,則判斷該頻譜能量為母音后的輔音;
若具有母音段的頻譜能量之后的頻譜能量的過零率大于第三閾值,且該頻譜能量為語音段的最后一幀,則判斷為鼻尾輔音。
優選地,步驟S1還包括:
將標準語音特征按時間進行分段,分為n段,以20ms為一時間分段;
將每一時間段標準語音特征分為靜態特征及動態特征;
將每一時間段標準語音特征的頻譜能量進行分解,分解出每一時間段標準語音特征的母音段的頻譜能量分布以及輔音段的頻譜能量分布;
設置每一時間段內標準語音特征的母音段MFCC特征向量,輔音段MFCC特征向量。
優選地,步驟S3還包括:
設置每一時間段內用戶語音特征的母音段MFCC特征向量,輔音段MFCC特征向量;
使用DTW算法,得到一條誤差最小的對齊路徑以,得到一條誤差最小的對齊路徑和對應的DTW距離;
基于該對齊路徑和對應的DTW距離,將相同時間段內用戶語音特征的母音段MFCC特征向量與標準語音特征的母音段MFCC特征向量進行語音比較以及將相同時間段內用戶語音特征的輔音段MFCC特征向量與標準語音特征的輔音段MFCC特征向量進行語音比較,得出用戶語音特征與標準語音特征之間的發音差別。
優選地,步驟S1還包括:
設置每一時間段內標準語音特征的母音段標準語音特征向量為P1=[p1(1),p1(2),…,p1(R)],一階差分向量為PΔ1=[pΔ1(1),pΔ1(2),…,pΔ1(R)](R為標準語音特征的母音段語音長度),PΔ1(n)=|p1(n)-p1(n-1)|,n=1,2,…,R,p1(0)=0;
設置每一時間段內標準語音特征的輔音段標準語音特征向量為P’1=[p’1(1),p’1(2),…,p’1(R)],一階差分向量為P’Δ1=[p’Δ1(1),p’Δ1(2),…,p’Δ1(R)](R為標準語音特征的語音長度),P’Δ1(n)=|p’1(n)-p’1(n-1)|,n=1,2,…,R,p’1(0)=0;
優選地,步驟S3還包括:
設置每一時間段內用戶語音特征的母音段特征向量為P2=[p2(1),p2(2),…,p2(T)],其一階差分向量為PΔ2=[pΔ2(1),pΔ2(2),…,pΔ2(T)](T為待評價語音的長度),PΔ2(n)=|p2(n)-p2(n-1)|,n=1,2,…,T,p2(0)=0;
設置每一時間段內用戶語音特征的輔音段特征向量為P’2=[p’2(1),p’2(2),…,p’2(T)],其一階差分向量為P’Δ2=[p’Δ2(1),p’Δ2(2),…,p’Δ2(T)](T為待評價語音的長度),P’Δ2(n)=|p’2(n)-p’2(n-1)|,n=1,2,…,T,p’2(0)=0;
使用DTW算法,得到一條誤差最小的對齊路徑以,得到一條誤差最小的對齊路徑,進行每一時間段內的母音段和輔音段比較;
比較得出母音段的差距dp,以及變化量的差距Δdp,比較得出輔音段的差距d’p,以及變化量的差距Δd’p,來獲得用戶語音特征與標準語音特征的相似度,即:
dp=|p1(n)-p2(m)|
d’p=|p’1(n)-p’2(m)|
Δdp=|Δp1(n)-Δp2(m)|
Δd’p=|Δp’1(n)-Δp’2(m)|
其中,Δpi(n)=|pi(n)-pi(n-1)|
Δp’i(n)=|p’i(n)-p’i(n-1)|。
從以上技術方案可以看出,本發明具有以下優點:
口語比對方法使得用戶與計算機獲取同樣的一片文本,進行朗讀對比,使用戶能夠獲悉到自己的口語與標準的口語有哪些詞語發音不準確,還需要在哪些詞語進行改進及進一步學習。這樣給學習者帶來了學習語言的便捷性,提高外語學習的效率,增加用戶學習興趣。
附圖說明
圖1為口語比對方法的流程圖。
具體實施方式
為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將運用具體的實施例及附圖,對本發明保護的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發明一部分實施例,而非全部的實施例。基于本專利中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬于本專利保護的范圍。
本發明提供一種口語比對方法,如圖1所示,本方法采用一標準文本,計算機先獲取該標準文本的內容,并獲取標準文本的標準讀音。本發明所涉及的方法是基于計算機硬件配合相應的程序實現。這樣用戶與計算機獲取同樣的一片文本,進行朗讀對比,使得用戶能夠獲悉到自己的口語與標準的口語有哪些詞語發音不準確,還需要在哪些詞語進行改進及進一步學習。這樣給學習者帶來了學習語言的便捷性,提高外語學習的效率,增加用戶學習興趣。
方法包括:
S1:設置標準文本,獲取標準文本的標準語音特征,將標準語音特征儲存至數據庫中;
S2:通過用戶朗讀標準文本,獲取用戶語音數據,提取用戶語音數據中的用戶語音特征;
S3:將用戶語音特征與標準語音特征進行對齊,并將用戶語音特征與標準語音特征進行對比;
S4:將用戶語音特征及對比結果儲存至數據庫中。
步驟S2還包括:
S21將用戶語音數據按時間進行分段,分為n段,以20ms為一時間分段,對每一時間段用戶語音數據加矩形窗,或漢明窗處理得到分段語音信號Xn,n為分段數;
S22對分段語音信號Xn進行短時傅里葉變換,變換為頻域信號,將短時時域信號轉化為頻域信號Yn,并通過Qn=│Yn│2計算其短時能量譜Qn;
S23采用先進先出的方式將短時能量譜Qn從矢量空間S移動至帶通濾波器進行濾波;由于每一個頻帶中分量的作用在人耳中是疊加的,因此將每個濾波器頻帶內的能量進行疊加,這時第k個濾波器輸出功率譜x'(k);
S24將每個濾波器的輸出取對數,得到相應頻帶的對數功率譜;并進行反離散余弦變換,得到M個MFCC系數,一般M取13~15個;MFCC系數為:
S25將得到的MFCC特征作為靜態特征,再將所述靜態特征做一階和二階差分,得到相應的動態特征。
本實施例中,步驟S2還包括:
獲取每一語音段頻率范圍的頻譜能量(fk),該語音段內的頻率上限值k1,下限值k2,獲取語音段內的頻譜能量比值PNn;
步驟S3還包括:
若語音段內頻譜能量(fk)≥第一閾值,該語音段內頻譜能量比值PNn≥第二閾值,則判斷此語音段為母音段;第一閾值0.1-0.5,第二閾值取60%-85%;
以具有母音段的頻譜能量為基準,判斷具有母音段的頻譜能量之前的頻譜能量的過零率是否大于第三閾值,若大于第三閾值,則斷定該頻譜能量為母音前的輔音,第三閾值取100;
以具有母音段的頻譜能量為基準,判斷具有母音段的頻譜能量之后的頻譜能量的過零率是否大于第三閾值,若大于第三閾值,則判斷該頻譜能量為母音后的輔音;
若具有母音段的頻譜能量之后的頻譜能量的過零率大于第三閾值,且該頻譜能量為語音段的最后一幀,則判斷為鼻尾輔音。
將用戶的每一語音段進行分解得出母音段,輔音段以及在語音段的最后一幀是否有鼻尾輔音,鼻尾輔音即為鼻音。
在計算機預先設置了標準文本中每一語音段的母音段,輔音段以及在語音段的最后一幀是否有鼻尾輔音,鼻尾輔音即為鼻音。將用戶朗讀的每一語音段的母音段,輔音段以及在語音段的最后一幀的鼻尾輔音,分別與標準語音特征進行比較。
步驟S1還包括:
將標準語音特征按時間進行分段,分為n段,以20ms為一時間分段;
將每一時間段標準語音特征分為靜態特征及動態特征;
將每一時間段標準語音特征的頻譜能量進行分解,分解出每一時間段標準語音特征的母音段的頻譜能量分布以及輔音段的頻譜能量分布;
設置每一時間段內標準語音特征的母音段MFCC特征向量,輔音段MFCC特征向量。
步驟S3還包括:
設置每一時間段內用戶語音特征的母音段MFCC特征向量,輔音段MFCC特征向量;
使用DTW算法,得到一條誤差最小的對齊路徑以,得到一條誤差最小的對齊路徑和對應的DTW距離;
基于該對齊路徑和對應的DTW距離,將相同時間段內用戶語音特征的母音段MFCC特征向量與標準語音特征的母音段MFCC特征向量進行語音比較以及將相同時間段內用戶語音特征的輔音段MFCC特征向量與標準語音特征的輔音段MFCC特征向量進行語音比較,得出用戶語音特征與標準語音特征之間的發音差別。
步驟S1還包括:
設置每一時間段內標準語音特征的母音段標準語音特征向量為P1=[p1(1),p1(2),…,p1(R)],一階差分向量為PΔ1=[pΔ1(1),pΔ1(2),…,pΔ1(R)](R為標準語音特征的母音段語音長度),PΔ1(n)=|p1(n)-p1(n-1)|,n=1,2,…,R,p1(0)=0;
設置每一時間段內標準語音特征的輔音段標準語音特征向量為P’1=[p’1(1),p’1(2),…,p’1(R)],一階差分向量為P’Δ1=[p’Δ1(1),p’Δ1(2),…,p’Δ1(R)](R為標準語音特征的語音長度),P’Δ1(n)=|p’1(n)-p’1(n-1)|,n=1,2,…,R,p’1(0)=0;
步驟S3還包括:
設置每一時間段內用戶語音特征的母音段特征向量為P2=[p2(1),p2(2),…,p2(T)],其一階差分向量為PΔ2=[pΔ2(1),pΔ2(2),…,pΔ2(T)](T為待評價語音的長度),PΔ2(n)=|p2(n)-p2(n-1)|,n=1,2,…,T,p2(0)=0;
設置每一時間段內用戶語音特征的輔音段特征向量為P’2=[p’2(1),p’2(2),…,p’2(T)],其一階差分向量為P’Δ2=[p’Δ2(1),p’Δ2(2),…,p’Δ2(T)](T為待評價語音的長度),P’Δ2(n)=|p’2(n)-p’2(n-1)|,n=1,2,…,T,p’2(0)=0;
使用DTW算法,得到一條誤差最小的對齊路徑以,得到一條誤差最小的對齊路徑,進行每一時間段內的母音段和輔音段比較;
比較得出母音段的差距dp,以及變化量的差距Δdp,比較得出輔音段的差距d’p,以及變化量的差距Δd’p,來獲得用戶語音特征與標準語音特征的相似度,即:
dp=|p1(n)-p2(m)|
d’p=|p’1(n)-p’2(m)|
Δdp=|Δp1(n)-Δp2(m)|
Δd’p=|Δp’1(n)-Δp’2(m)|
其中,Δpi(n)=|pi(n)-pi(n-1)|
Δp’i(n)=|p’i(n)-p’i(n-1)|。