專利名稱:獲取語音基本周期及編碼的方法
技術領域:
本發(fā)明涉及一種語音編碼方法,特別是一種獲取語音基本周期及其編碼的方法。
因此,在電子產品的語音資料合成與壓縮等領域中,如何能抓住音調(基本周期)的本質,成為語音數(shù)據(jù)合成與壓縮的研究重點,亦即,如何能掌握音調的改變。不過,由于語音本身為一種模擬信號,在數(shù)字產品中如何能將語音的模擬信號數(shù)字化,并用最少的內存空間來儲存,更成為工程師們研究的重點。通過取樣(sampling)將語音的模擬信號取樣為可數(shù)據(jù)化的數(shù)據(jù),再經(jīng)過分析處理,得到語音編碼的參數(shù),即可將語音數(shù)據(jù)數(shù)字化,而基本周期正是其中一項參數(shù)。
另外,為了要讓此數(shù)據(jù)化的語音數(shù)據(jù)能在信息處理設備間相互進行數(shù)據(jù)的傳送,或在儲存時用較少的內存空間,就必須將此語音數(shù)據(jù)進行位編碼,即將每個語音參數(shù)以較少的位數(shù)來表示。不過,不論是做語音數(shù)據(jù)的編碼或壓縮,語音數(shù)據(jù)的基本周期都會有一個計算上的問題。即在計算時,必須避免算出兩倍的基本周期,或1/2基本周期,以免影響譯碼或解壓縮后語音數(shù)據(jù)的品質。
現(xiàn)有的技術,對于語音數(shù)據(jù)的基本周期的獲取包括特別針對兩倍或1/2基本周期做校正的動作,如果在線(on-line)進行實時編碼操作,會有運算量上的限制。另外,在計算基本周期時,通常是取各段語音幀(frame)作分析,這些語音幀彼此是連續(xù)的語音段,并無重疊。
依據(jù)本發(fā)明所揭露的技術,本發(fā)明提供一種獲取語音基本周期及編碼的方法,至少包下列步驟首先將語音信號通過一個低通濾波器(Low PassFilter),濾掉高頻信號;其次將語音分為多個幀,利用AMDF(AbsoluteMagnitude Difference Function,絕對值差方函數(shù))對每個幀計算出一個語音的單位基本周期,每個幀的劃分,是在前一個單位基本周期計算出來后,平移單位基本周期長度而得,接著利用向前(Forward)追蹤方式修正兩倍、或1/2平均基本周期,即可得出一個準確的單位基本周期;再將所得到的單位基本周期序列,以每個幀為單位,在一個幀長度內的所有單位基本周期取一最佳值或平均值,而得到基本周期;之后只要將此準確的基本周期進行位編碼即可,編碼可按六位的方式進行。
有關本發(fā)明的特征與實例附圖和最佳實施例詳細說明如下。
圖1為本發(fā)明獲取語音基本周期及編碼的方法流程圖;圖2為本發(fā)明單位基本周期的獲取方法示意圖;圖3為本發(fā)明的向前追蹤二倍、1/2倍基本周期的流程圖;圖4為本發(fā)明基本周期編碼示意圖;圖5為本發(fā)明基本周期Ti編獲取的流程圖;圖6為本發(fā)明具體實施例中的波形示意圖;圖7為圖6的波形經(jīng)一低通濾波器的前一千個取樣波形;圖8為本發(fā)明具體實施例中的基本周期獲取及向前追蹤的結果。
其次,先將經(jīng)取樣的語音分割成各段幀(步驟115),每一幀長度為M(以取樣頻率每秒8千次為例,約180個取樣點);接著,計算每一個幀當中的基本周期步驟120,在此,稱之為單位基本周期??衫肁MDF來找出每個幀中的單位基本周期(以下以Pi表示),其方程序如下AMDFi(k)=Σn=0M-1|x′(n)-x′(n-k)|]]>其中,M為語音幀長度,而i則為幀數(shù),亦即,某個計算中的幀,x’為第i個幀的語音數(shù)據(jù)。
其中,每個Pi即為使AMDF(k)為最小值的k值Pi=kof(mink(AMDF(k)))]]>如上所述,在取樣頻率為每秒8千次的狀況下,k值通常為20,21,…160等。
每一個幀都可以上述的計算方法計算出一個單位基本周期,然而,為了要能更準確的計算出單位基本周期,使其變化較平緩且更具連續(xù)性,并有助于向前追蹤修正(步驟120),本發(fā)明在計算下一個單位基本周期時,以逐步平移的方式來擷取下一個語音幀(步驟115)。其做法為,從第一個幀計算完單位基本周期后,下一個單位基本周期的幀獲取范圍,是將上一個幀向右平移Pi取樣點后所得,如圖2所示,其幀重疊了M-Pi個取樣點。通過每一次平移,即可得到單位基本周期P1,P2,…,Pn。將第一個幀(平移長度<=幀長度M)之內所有的單位基本周期進行平均即可得第一個幀的平均基本周期,設此值為P0。
每計算出一個單位基本周期后,即進行向前追蹤(Forward Tracking)修正兩倍、或1/2倍基本周期(步驟130),來進行確認基本周期值的工作,其具體流程請參考圖3,步驟如下計算第一個幀的平均基本周期P0(步驟310);判斷是否為兩倍基本周期(步驟320);調整單位基本周期(步驟330);判斷是否為1/2基本周期(步驟340);調整單位基本周期(步驟350);是否為最后一個幀(步驟360);以及,下一個單位基本周期(步驟365)。
首先,先計算前幾個基本周期(第一個幀;基本周期長度的總和<幀長度)的基本周期平均值,設此平均值為P0(步驟310),此P0是平均基本周期的概略值,當作向前追蹤的初值,若已知語音的平均基本周期概略范圍,則可將P0設成一個常數(shù)。接著,在步驟320與330當中,從第1個單元基本周期P1開始,如果這個單位基本周期約等于上一個基本周期的兩倍,亦即,如果Pi>Pi-1*2-10(10是一經(jīng)驗值)(步驟330),則依照下列算式調整單位基本周期Pi=k of min(AMDF(k),k=Pi/2-3~Pi/2+3)。其中,3是一經(jīng)驗值。
接著,在步驟340與350當中,如果這個單位基本周期約等于上一個單位基本周期的1/2,亦即,如果Pi<Pi-1/2+5(5是一經(jīng)驗值)(步驟340),則依照下列算式調整單位基本周期Pi=k of min(AMDF(k),k=Pi*2-3~Pi*2+3)(步驟350)。其中,3是一經(jīng)驗值。
接著,判斷是否為最后一個幀(步驟360),若是即可停止;如果不是,再繼續(xù)進行下一個單位基本周期(步驟365)的向前追蹤。
由以上的向前追蹤,每個單位基本周期都以相同的方式做修正,然后回到步驟115,每個幀的擷取原則都與第2圖所示相同,以上一個向前追蹤修正后的單位基本周期,做為擷取下一個幀的平移長度,最后再做基本周期的擷取工作。
在圖1的步驟140當中,由于已進行過基本周期的修正過程,接著,即可擷取欲編碼的基本周期。請參考圖4,基本周期的編碼通常取一個固定長度(M)的幀(以取樣頻率每秒8千次為例,可取幀長度為20~25ms,亦即,160~200個取樣點)為單位,即在每隔一個幀取一個基本周期值編碼,因為分析的語音幀是每次位移一個單位基本周期,所以,在位移一個幀中,可有好幾個單位基本周期(Pi),此時每隔一個幀取一次的基本周期(Tj)即是從這幾個基本周期中擷取出來,并進行編碼。其中,Tj可由下列步驟得出,請參考圖51、令N=0,i=1,j=1,k=0(步驟510)2、令N=N+Pi,k=k+1(步驟520)3、如果N>M,(步驟530)則計算Tj(步驟540)且令N=N-M,j=j+1,k=0(步驟550)其中Tj算法如下如口果k<=2,Tj=1kΣl=i-k+1iPl]]>如果k>2,Tj=Pi,當Pi-1k-1Σl=i-k+1iPl|l≠d]]>有最小值,其中Pd=Pi,當Pi-1kΣl=i-k+1iPl]]>有最大值4、令i=i+1(步驟560)5、如果i<n(全部單位基本周期數(shù))(步驟570)則回到2(步驟520)6、結束最后,進入步驟150,編碼(Encoding)。如上所述,以取樣頻率為每秒8千次為例,基本周期值約在20~160取樣點之間,因此,可將基本周期以6bits進行編碼。亦即,基本周期[64]={0,20,22,24,26,28,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160};其中,0為保留的值。
圖6至圖8是語音/e/通過本發(fā)明所揭露的方法所獲得的處理結果,由此說明本發(fā)明的具體運作。圖6是語音/e/的前1000個取樣波形,圖7是語音/e/經(jīng)過低通濾波后的前1000取樣波形,圖8為初步算出的單位基本周期值(o),與經(jīng)過向前追蹤修正后的單位基本周期值(x)及最后擷取出欲編碼的基本周期(□)(fundamental period)比較。
依據(jù)本發(fā)明所提供的技術,本發(fā)明的語音基本周期參數(shù)獲取及編碼的方法,以脫機方式計算出語音的基本周期,因而無運算量的限制,并以幀重疊方式,可準確算出基本周期,有效避免兩倍、或1/2基本周期的問題,應用在語音編碼或壓縮上可對提高語音譯碼或解壓縮后的品質助益甚多。
雖然本發(fā)明通過前述的較佳實施例揭露如上,然其并非用以限定本發(fā)明,本行業(yè)的普通技術人員在不脫離本發(fā)明的精神和范圍內,可進行各種輕易思及的變化和潤飾,因此本發(fā)明的專利保護范圍應以權利要求書界定的為準。
權利要求
1.一種語音基本周期參數(shù)獲取及編碼的方法,是通過脫機方式對該語音進行取樣為一取樣語音,并通過將該取樣語音分割為多段長度相同的幀來計算該取樣語音的一個基本周期,其特征在于該方法至少包含下列步驟以一逐步平移的方式擷取該多段幀的每一段幀,并獲取該多段幀的多個單位基本周期;由每一段該幀內的該多個單位基本周期中個別擷取一基本周期;以及將該基本周期編碼。
2.如權利要求1所述的語音基本周期參數(shù)獲取及編碼的方法,其特征在于在所述獲取該語音的該單位基本周期步驟之前,還包含下列步驟提供一低通濾波器,用以將高頻的信號進行阻絕。
3.如權利要求1所述的語音基本周期參數(shù)獲取及編碼的方法,其特征在于所述的以逐步平移的方式擷取該下一段幀,是依據(jù)該第一段幀所計算出的該第一單位基本周期,向后平移該單位基本周期時間長而得,每一段該幀的選取方式相同。
4.如權利要求1或3所述的語音基本周期參數(shù)獲取及編碼的方法,其特征在于所述的獲取多個單位基本周期的步驟,還包含下列步驟擷取該取樣語音開始的一第一段幀,并計算該第一段幀的一第一單位基本周期;向前追蹤修正單位基本周期,是將該第一段幀所計算出的該第一單位基本周期向前追蹤修正一第一個兩倍基本周期與將該單元一第一個1/2倍基本周期,并重新計算該第一單位基本周期;以及以該逐步平移的方式擷取接續(xù)該第一段幀的一下一段幀,計算該多段幀的一下一個單位基本周期,重復此步驟至該多段幀的最后一段幀,以個別計算出每一個該單位基本周期。
5.如權利要求4所述的語音基本周期參數(shù)獲取及編碼的方法,其特征在于所述的單位基本周期的計算,是利用一絕對值差方函數(shù)處理該多段幀中的每一段該幀而得出該單元基本周期。
6.如權利要求4所述的語音基本周期參數(shù)獲取及編碼的方法,其特征在于所述的向前追蹤修正兩倍或1/2倍基本周期的步驟,還包含下列步驟計算該第一段幀的一平均基本周期;判斷下一個單位基本周期是否為該平均基本周期的兩倍,若是,則重新計算該單位基本周期;以及判斷該下一個單位基本周期是否為該平均基本周期之1/2倍,若是,則重新計算該單位基本周期。
7.如權利要求1所述的語音基本周期參數(shù)獲取及編碼的方法,其特征在于所述的將基本周期編碼的步驟,是將該基本周期以二進制方式進行編碼,如編為六位碼。
8.如權利要求1所述的語音基本周期參數(shù)獲取及編碼的方法,其特征在于所述語音的取樣頻率為每秒八千次。
全文摘要
本發(fā)明是一種獲取語音基本周期及編碼的方法,本發(fā)明以脫機的方式對語音進行取樣,并計算經(jīng)取樣的語音的基本周期,首先提供一低通濾波器以濾掉高頻波,接著再將語音取樣并將經(jīng)取樣的語音分割成各段長度相同的幀,再以逐步平移的方式逐一計算每個幀的單位基本周期并做基本周期的二倍、1/2倍周期修正,以獲得準確的單位基本周期;之后即可由單位基本周期序列擷取基本周期;最后再以二進制方式進行基本周期的編碼。
文檔編號G10L11/00GK1452158SQ0210558
公開日2003年10月29日 申請日期2002年4月17日 優(yōu)先權日2002年4月17日
發(fā)明者楊凰琳 申請人:無敵科技股份有限公司