專利名稱:語音變速的方法
技術領域:
本發(fā)明是一種語音變速的方法,別是一種基于語音信號的基本周期的語 音變速的方法。
背景技術:
具備語言學習功能的電子設備,可以將所欲學習的語言會話預先錄制在 該設備中,而該電子設備可為便攜式,讓使用者可以隨時隨地進行語言的學 習。然而,每一位使用者的程度并不相同,造成一段播放速度相同的會話, 有些使用者聽起來會覺得閱讀速度適當而可以聽懂,但卻有些使用者會覺得 閱讀速度過快而聽不懂。因此變速播放的功能成為語言學習機所具備的功能 之一。
所謂變速播放指的是語言學習機在語音播放時,可以依使用者的需求而 變更播放的速度,而且當速度變更時音調卻不變。因此理想上,不論變速播 放是變慢或變快,使用者在聆聽上都可以聽得清楚,而這一項功能對于語言 學習有很大的幫助。
傳統(tǒng)語言學習機雖然具有變速播放的功能,但往往經(jīng)過變速播放后其所 播放出來的語音便會失真。由于語音信號是連續(xù)性的模擬信號,隨著不同人 的發(fā)聲或不同的音源所產(chǎn)生的聲紋頻率并不相同。 一般公知的語音變速的技 術的做法是將取樣而得的語音數(shù)據(jù)重復播放,或以間隔的方式跳躍播放,而 達到播放速度的變更。這樣的做法雖然可以達到播放速度變慢或變快,且與 原語音的信號包格線相同,但是會造成回音與機械音。同時造成聲紋頻率降 低,效果就如同將錄音機馬達轉速變慢或變快一樣,使得語音明顯失真。
因此,如何讓使用者在語言學習機上操作變速播放的功能時,語音變速 后能維持原音的音調而不失真,為一亟待解決的問題。
發(fā)明內容
有鑒于此本發(fā)明提出一種語音變速的方法,針對語音信號進行處理,讓 使用者按照自己的需求加速或減速語音的播放,而語音經(jīng)過變速后輸出到使 用者的耳朵, 一樣能清楚而不失原音調的語音。
本發(fā)明所提出的一種語音變速的方法,包含下列步驟接收一原始語音 信號;計算出該原始語音信號的一基本周期;依據(jù)該基本周期定義一搜尋范 圍;在該原始語音信號的每個該搜尋范圍內尋找一最大值;依據(jù)該最大值將 該原始語音信號劃分為多個語音區(qū)段;依據(jù)一變速指令對該原始語音信號的 每個該語音區(qū)段進行一變速運算,而取得一變速語音信號;及輸出該變速語 音信號。
如本發(fā)明所述的語音變速的方法,其中該基本周期系利用一總和振幅 差異函數(shù)計算出。
如本發(fā)明所述的語音變速的方法,其中該基本周期系利用一平均振幅 差異函數(shù)計算出。
如本發(fā)明所述的語音變速的方法,其中該變速指令為減速時,該變速 運算復制部分該語音區(qū)段,使該變速語音信號長于該原始語音信號。
如本發(fā)明所述的語音變速的方法,其中該變速指令為加速時,該變速 運算刪除部分該語音區(qū)段,使該變速語音信號短于該原始語音信號。
如本發(fā)明所述的語音變速的方法,其中該變速運算包含下列步驟將 該原始語音信號的每個該語音區(qū)段乘以一比重函數(shù),成為一比重區(qū)段;及疊 加該比重區(qū)段。
如本發(fā)明所述的語音變速的方法,其中該變速運算更包含下列步驟 插入疊加后的該比重區(qū)段在該語音區(qū)段之間。
如本發(fā)明所述的語音變速的方法,其中該變速運算更包含下列步驟 以疊加后的該比重區(qū)段取代該語音區(qū)段。
如本發(fā)明所述的語音變速的方法,其中該比重函數(shù)在每一該搜尋范圍 內,在該最大值之前為遞增函數(shù),在該最大值之后為遞減函數(shù)。
如本發(fā)明所述的語音變速的方法,其中該比重函數(shù)為三角波函數(shù)。
如本發(fā)明所述的語音變速的方法,其中該語音區(qū)段大小不同時,該語 音區(qū)段的重疊部分乘以該比重函數(shù),未重疊部分不需乘以該比重函數(shù)。、
本發(fā)明一開始先將原始語音信號區(qū)分為多個語音區(qū)段。所分割的區(qū)段并 不是如傳統(tǒng)技術一般為固定的,而是根據(jù)總和振幅差異函數(shù)(Sum of Magnitude Difference Function, SMDF)或平均振幅差異函數(shù)(Average of Magnitude Difference Function, AMDF),先取得原始語音信號的基本周期 (pitch period),再根據(jù)基本周期左右附近的數(shù)據(jù)去尋找最大值。接著利用 尋找出的最大值將原始語音信號劃分為多個語音區(qū)段。上述作法的好處是, 將語音信號以最細小的基本周期單位進行后續(xù)的變速處理。因此,本發(fā)明采 用更精確的方法來改良相關的語音變速質量。
圖1是語音變速的方法的流程圖。 圖2是語音信號的基本周期。
圖3是利用總和振幅差異函數(shù)(SMDF)計算出基本周期的示意圖。
圖4是原始語音信號的語音區(qū)段劃分圖。
圖5是變速指令為減速時的變速運算示意圖。
圖6是變速指令為加速時的變速運算示意圖。
圖7是變速運算的細部流程圖。
圖8是變速運算疊加后的插入語音區(qū)段示意圖。
圖9是變速運算疊加后的取代語音區(qū)段示意圖。
圖IO是語音區(qū)段大小不同的疊加示意圖。
其中附圖標記說明如下
步驟S10:接收原始語音信號。
步驟S20:計算出原始語音信號的基本周期。
步驟S30:依據(jù)基本周期定義搜尋范圍。
步驟S40:在原始語音信號的每個搜尋范圍內尋找最大值。
步驟S50:依據(jù)最大值將原始語音信號劃分為多個語音區(qū)段。
步驟S60:依據(jù)變速指令對原始語音信號的每一語音區(qū)段進行變速運算,
而取得變速語音信號。
步驟S62:將原始語音信號的每一語音區(qū)段乘以比重函數(shù),成為比重區(qū)段。
步驟S64:疊加比重區(qū)段。
步驟S70:輸出變速語音信號。 具體實旌方式
以下參照附圖,解釋有關本發(fā)明的較佳實施例及其功效。 請參照圖1語音變速的方法的流程圖,包含下列步驟
步驟S10:接收原始語音信號。原始語音信號為語言朗讀,例如英語、 日語會話等。
步驟S20:計算出原始語音信號的基本周期(pitch period)。人聲的音 高范圍大約在50Hz至1000Hz之間。而朗讀同樣內容的一段會話,每個人所 念出來的語音都會有所不同,這就是每個人的音色不同。音色的不同代表基 本周期的波形不同,所以每個不同的語音信號都有其不同的基本周期。由于 音色是每個人所特有的,同一個人所發(fā)出的語音信號即使語音的內容不同, 其基本周期大致上會差不多。
請參照圖2語音信號的基本周期。由圖2所示, 一段語音信號即使有高 低起伏的變化,但是找到基本周期后,就可以清楚發(fā)現(xiàn)語音信號即是由多段 的基本周期所組成。所以進行語音變速處理的一開始,先找出語音信號的基 礎組成單位"基本周期",可以更精確的提升語音變速的質量。
請參照圖3利用總和振幅差異函數(shù)(SMDF)計算出基本周期的示意圖。 將原始語音信號位移,和原本的原始語音信號的重疊部分進行點對點的相 減、取絕對值及相加,重復n次后會得到n個點積值,這就是所謂的總和振 幅差異函數(shù)(Sum ofMagnitude Difference Function, SMDF)。
另外,上述的SMDF計算方式,由于重疊的波形越來越短,因此SMDF 的曲線會越來越小。為了避免此種情況,我們可以求取歸一化SMDF,也就 是將重疊部分的點積再除以重疊的點數(shù),這就是傳統(tǒng)的平均振幅差異函數(shù) (Average of Magnitude Difference Function, AMDF)。所以,禾擁SMDF 或AMDF都可以計算出原始語音信號的基本周期。
步驟S30:依據(jù)步驟S20所計算出的基本周期,定義搜尋范圍。雖然一 段原始的語音信號是由多段的基本周期所組成。但由于語音內容的不同(語 言朗讀內容的不同),產(chǎn)生高低音的差別,所以每段基本周期的周期^:小會 有些微的差異。因此,計算出基本周期后,在該基本周期左右附近定i一個
搜尋范圍。以方便接下來要進行的搜尋動作。
步驟S40:在原始語音信號的每一搜尋范圍內尋找最大值。以步驟S30 所定義出的搜尋范圍為單位,搜尋原始語音信號。在原始語音信號的每一搜 尋范圍內,將所找到的最大值記錄下來。
步驟S50:依據(jù)最大值將原始語音信號劃分為多個語音區(qū)段。請參照圖
4原始語音信號的語音區(qū)段劃分圖。如圖4所示,利用步驟S40所搜尋到的 最大值,將原始語音信號劃分為多個區(qū)域,而每個區(qū)域即是本發(fā)明所稱的語 音區(qū)段。
步驟S60:依據(jù)變速指令對原始語音信號的每一語音區(qū)段進行變速運算, 而取得變速語音信號。變速指令由使用者所下達,當使用者覺得語音信號的 播放速度太快時,可以下達減速的變量指令。當變速指令為減速時,變速運 算復制部分語音區(qū)段,使變速語音信號長于原始語音信號。請參照圖5變速 指令為減速時的變速運算示意圖。假設原始語音信號劃分為6個語音區(qū)段, 當使用者下達減速2倍的變速指令時,變速運算將每段語音區(qū)段都復制一次, 取得的變速語音信號為12個語音區(qū)段。如此,變速語音信號長于原始語音 信號的2倍,所以達到播放的速度減速2倍。
相對的,當變速指令為加速時,變速運算刪除部分語音區(qū)段,使變速語 音信號短于原始語音信號。請參照圖6變速指令為加速時的變速運算示意圖。 同樣假設原始語音信號劃分為6個語音區(qū)段,當使用者下達加速2倍的變速 指令時,變速運算刪除掉偶數(shù)段語音區(qū)段,取得的變速語音信號為3個語音 區(qū)段。如此,變速語音信號只有原始語音信號的一半,所以達到播放的速度 加速2倍。
步驟S70:最后輸出變速語音信號,即完成整個語音變速的流程。
請參照圖7變速運算的細部流程圖。上述步驟S60的變速運算,簡單的 利用復制與刪除部分語音區(qū)段來達到語音信號的減速與加速。但為了改善不 連續(xù)音或回音的產(chǎn)生,因此步驟S60的變速運算,包含下列步驟
步驟S62:將原始語音信號的每一語音區(qū)段乘以比重函數(shù),成為比重區(qū) 段。其中,比重函數(shù)在每一搜尋范圍內,在最大值之前為遞增函數(shù),在最大 值之后為遞減函數(shù)。所以,比重函數(shù)可以為三角波函數(shù)。 -
步驟S64:疊加比重區(qū)段。由于每一個語音區(qū)段都乘以一個比重函數(shù),
成為比重區(qū)段,之后再依照變速指令疊加這些比重區(qū)段。如此,可以讓變速 后的變速語音信號與原始語音信號一樣清楚而不失真,也不會有不連續(xù)音與 回音的現(xiàn)象產(chǎn)生。
上述釆用疊加的變速運算方式更包含下列步驟插入疊加后的比重區(qū)段 在該語音區(qū)段之間。請參照圖8變速運算疊加后的插入語音區(qū)段示意圖。假 設變速指令為減速2倍,先將每一語音區(qū)段乘以比重函數(shù)成為比重區(qū)段,如 圖8所示比重函數(shù)為三角波函數(shù)。將比重區(qū)段1與比重區(qū)段2進行疊加,然 后插入?yún)^(qū)1與區(qū)2之間。此時,如果原始語音信號區(qū)分為1、 2...n的語音區(qū) 段,經(jīng)過疊加插入后的變速語音信號變?yōu)?、 1+2、 2、 2+3、 3…n。
相對的,疊加的變速運算方式包含另一個步驟以疊加后的比重區(qū)段取 代該語音區(qū)段。請參照圖9變速運算疊加后的取代語音區(qū)段示意圖。假設變 速指令為加速2倍,先將每一語音區(qū)段乘以比重函數(shù)成為比重區(qū)段,同樣的 比重函數(shù)為三角波函數(shù)。再將比重區(qū)段兩兩疊加后,取代疊加前的語音區(qū)段。 例如,疊加后的比重區(qū)段1與比重區(qū)段2 (區(qū)1+2),取代語音區(qū)段1與語 音區(qū)段2 (區(qū)1、區(qū)2)。
最后,請參照圖10語音區(qū)段大小不同的疊加示意圖。語音區(qū)段大小不 相同乘以比重函數(shù),而比重函數(shù)為三角波函數(shù)在進行疊加時,會有兩種狀況
產(chǎn)生。狀況一區(qū)1比區(qū)2大;狀況二區(qū)2比區(qū)1大。不論是狀況一或是
狀況二,語音區(qū)段大小不同要進行疊加時,只要語音區(qū)段的重疊部分乘以比 重函數(shù),未重疊部分不需乘以比重函數(shù)。如此,可確保疊加時,重疊的部分
區(qū)1 (區(qū)2)的最大值可以對到區(qū)2 (區(qū)1)的最小值,或區(qū)1 (區(qū)2)的最 小值可以對到區(qū)2 (區(qū)1)的最大值。這樣的作法可以使變速運算經(jīng)由疊加 后的變速語音信號,能讓使用者聽起來與原始語音信號一樣平順。
雖然本發(fā)明的技術內容已經(jīng)以較佳實施例揭露如上,然其并非用以限定 本發(fā)明,任何本領域技術人員,在不脫離本發(fā)明的精神所作些許的更動與潤 飾,皆應涵蓋在本發(fā)明的范疇內,因此本發(fā)明的保護范圍當視后附的權利要 求所界定者為準。
權利要求
1.一種語音變速的方法,包含下列步驟接收一原始語音信號;計算出該原始語音信號的一基本周期;依據(jù)該基本周期定義一搜尋范圍;在該原始語音信號的每個該搜尋范圍內尋找一最大值;依據(jù)該最大值將該原始語音信號劃分為多個語音區(qū)段;依據(jù)一變速指令對該原始語音信號的每個該語音區(qū)段進行一變速運算,而取得一變速語音信號;及輸出該變速語音信號。
2. 如權利要求1的語音變速的方法,其中該基本周期系利用一總和 振幅差異函數(shù)計算出。
3. 如權利要求1的語音變速的方法,其中該基本周期系利用一平均 振幅差異函數(shù)計算出。
4. 如權利要求1的語音變速的方法,其中該變速指令為減速時,該 變速運算復制部分該語音區(qū)段,使該變速語音信號長于該原始語音信號。
5. 如權利要求1的語音變速的方法,其中該變速指令為加速時,該 變速運算刪除部分該語音區(qū)段,使該變速語音信號短于該原始語音信號。
6. 如權利要求1的語音變速的方法,其中該變速運算包含下列步驟 將該原始語音信號的每個該語音區(qū)段乘以一比重函數(shù),成為一比重區(qū)段;及疊加該比重區(qū)段。
7. 如權利要求6的語音變速的方法,其中該變速運算更包含下列步 插入疊加后的該比重區(qū)段在該語音區(qū)段之間。
8. 如權利要求6的語音變速的方法,其中該變速運算更包含下列步 以疊加后的該比重區(qū)段取代該語音區(qū)段。
9. 如權利要求6的語音變速的方法,其中該比重函數(shù)在每一該搜尋 范圍內,在該最大值之前為遞增函數(shù),在該最大值之后為遞減函數(shù)。
10. 如權利要求9的語音變速的方法,其中該比重函數(shù)為三角波函數(shù)。
11. 如權利要求10的語音變速的方法,其中該語音區(qū)段大小不同時, 該語音區(qū)段的重疊部分乘以該比重函數(shù),未重疊部分不需乘以該比重函數(shù)。
全文摘要
一種語音變速的方法包含下列步驟接收原始語音信號;計算出該原始語音信號的基本周期;依據(jù)該基本周期定義搜尋范圍;在該原始語音信號的每個該搜尋范圍內尋找最大值;依據(jù)該最大值將該原始語音信號劃分為多個語音區(qū)段;依據(jù)變速指令對該原始語音信號的每個該語音區(qū)段進行變速運算,而取得變速語音信號;及輸出該變速語音信號。上述方法的好處是,將語音信號以最細小的基本周期單位進行后續(xù)的變速處理。
文檔編號G10L21/00GK101202048SQ20061016467
公開日2008年6月18日 申請日期2006年12月15日 優(yōu)先權日2006年12月15日
發(fā)明者顏睿余, 顏銘祥, 高光前 申請人:微星科技股份有限公司