跳到主要內容區
:::

214_090-003AP-TW

發佈日期 : 2009-04-29
      發明專利說明書
  ※申請案號:
  ※申請日期:          ※IPC分類:
一、發明名稱: (中文/英文)

 

  語音編/解碼方法及語音編/解碼器(全文下載)

 

二、申請人: 共 人

 

  指定 為應受送達人

 

   
三、發明人:
   
 ◎專利代理人:
   
 
四、聲明事項
 

 

  主張專利法第二十七條第一項國際優先權:

 

  主張專利法第二十九條第一項國內優先權:

 

  □ 主張專利法第二十六條微生物:

 

 □ 熟習該項技術者易於獲得,不須寄存
五、中文發明摘要:
    本發明包含了語音編/解碼方法及語音編/解碼器的設計。在語音編碼方法方面,其特色在於使整個語音資料經過壓縮後能呈現高壓縮率的資料型態,本發明能將位元率由始語音64Kbps降至1.6Kbps,比傳統的壓縮法提供了更低的位元率,並能提供不錯的音質表現,如此可達到利用最少的記憶體,儲存最大的語音資料;在語音解碼方法方面,在激發源中適當的參入一些隨機雜訊,如此可以模擬出較多可能的語音特徵來產生各種的有聲語音。此外,一個以應用導向積體電路設計方式完成之編/解碼器硬體架構亦在本發明中提出,架構的設計依據軟體部份進行最佳化,其執行速度上比數位訊號處理器來的快,適合多線編碼等需要快速運算的系統,具成本也比數位訊號處理器來的低。
 
六、英文發明摘要:
   
 
七、指定代表圖:
 (一)本案指定代表圖為:
 (二)本代表圖之元件代表符號簡單說明:

 

   
 
八、本案若有化學式時,請揭示最能顯示發明特徵的化學式:
   
 
九、發明說明:
  【發明領域】
本發明係有關一種語音編/解碼方法及語音編/解碼器的設計,特別是一種將位元率由始語音64Kbps降至1.6Kbps之語音編/解碼方法及語音編/解碼器的設計。
【發明背景】
基本上數位語音編碼(Digital Speech Coding)的主要目的是將語音數位化,並且將其適當的編碼壓縮,以減少數位語音訊號在傳輸時所需的位元率(Bit Rate),降低傳輸訊號所需之頻寬及增加傳輸線路的使用效能。除了降低語音傳輸的位元率之外,還必須確保在接收端所接收到壓縮後的語音資料,能夠合成具有合理音質的語音。目前,各種語音編碼技術無不致力於位元率的降低以及合成音質的提升。
低位元率語音編碼器的發展,繼FS1016 CELP4.8Kbps之後,美國國防部於1996年宣佈了混合激發線性預測編碼器(MELP)為2.4Kbps的新標準,造成了2.4K及更低位元率編碼器的研究潮流。本發明人在研究了目前2.4K標準如LPC10及混合激發線性預測編碼器混合激發線性預測編碼器等之後,進而發展出1.6kbps語音壓縮方法。語音技術的硬體化,是語音產品化、生活化的主要關鍵。本發明以應用導向積體電路設計方式完成之1.6kbps語音編碼器之硬體架構,執行速度上比數位訊號處理器來的快,適合多線編碼等需要快速運算的系統,且成本也比數位訊號處理器來的低。
【發明概要】
本發明之主要目的係提供一種語音編碼方法,將位元率由始語音64Kbps降至1.6Kbps,以減少數位語音訊號在傳輸時所需的位元率(Bit Rate),降低傳輸訊號所需之頻寬及增加傳輸線路的使用效能。
本發明之另一目的係提供一種語音解碼方法,以確保在解壓縮後的語音質料,能夠具有合理音質的語音。
本發明又一目的係以應用導向積體電路設計方式完成語音編/解碼器之硬體架構,執行速度上比數位訊號處理器來的快,適合多線編碼等需要快速運算的系統,且成本也比數位訊號處理器來的低。
為達上述目的,本發明提出一種語音編碼方法,係將語音訊號以8KHz取樣,再予以分成許多主音框(frame),做為編碼參數傳輸單位,其中一個主音框總共傳送48個位元,且該每個主音框大小為240點,位元率為1.6Kbps,該編碼參數包括有:線性頻譜對參數(Line Spectrum Pair,LSP)、增益參數、有聲/無聲判斷參數、音高週期參數以及一個位元之同步位元;其中該線性頻譜對參數之求出方法係將該主音框的語音先用漢明視窗(Hamming Window)作前處理,再求其自相關係數做線性預測分析,求取十階線性預測係數,接著轉換成線性頻譜對參數;該增益參數係利用上述線性預測分析所求得的自相關係數和線性預測係數求出;該有聲/無聲判斷參數係利用越零率(Zerocrossing rate)、能量(Energy)以及線性預測係數的第一階係數做綜合判斷;該音高週期參數之求出方法包括以下步驟:步驟一:將該主音框的所有取樣點找出其絕對最大值,也就是找出振幅大小最大點之值;若此值為正,則以最大值為主找音高,將此最大值點設為音高,並將最大值點及其前後19點清除為零;若此值為負,則以最小值為主找音高,將此最小值點設為音高,並將最小值點及其前後19點清除為零;步驟二:設定上述振幅最大點之值的0.68倍為臨界值(Threshold);步驟三:若此主音框是以正源為主找音高,則重新找出目前主音框的最大值,若此值大於臨界值,則設此點為音高,並將目前最大值點及其前後19點清除為零;若此主音框是以負源為主找音高,則重新找出目前主音框的最小值,若此值小於臨界值,則設此點為音高,並將目前最小值點及其前後19點清除為零;步驟四:反覆利用步驟三尋找音高,直到以正源為主找音高所有的點都小於臨界值為止,或以負源為主找音高所有的點都大於臨界值為止;步驟五:將音高的位置依照從小到大的順序排序,可得P1、P2、P3、P4、P5、P6;步驟六:將所有音高的位置求取間距Di=Pi+1-Pi,i=1,2,…,N(N為音高的個數),並將間距加以平均,就可得音高週期。
另外,在解碼端,係將每個主音框分為四個次音框,每個次音框合成時的十階線性預測係數是由目前主音框量化後之線性頻譜對參數與前一個主音框之線性頻譜對參數的量化值內插,反求而得;另外,在激發源部份,若為有聲,採用混合激發,由音高週期產生的脈衝串加上隨機雜訊組成;若為無聲,則僅用隨機雜訊表示;此外,在產生有聲或無聲激發源後,該激發源必須經過平滑化濾波器加強該激發源的平滑;最後,將上述十階線性預測係數與過去合成之十個語音訊號相乘,再加上上述語音激發源訊號與增益,即可得到對應於目前語音激發源訊號之合成語音。
此外,配合上述方法,本發明提出一種語音編/解碼器,其係以應用導向超大型積體電路架構(ASIC)之方式來設計,其中編碼端包括:一漢明視窗處理單元,其係將每個主音框的語音先用漢明視窗(Hamming Window)作前處理;一自相關運算單元,係將上述處理過之語音求其自相關係數;一線性預測係數擷取單元,係將上述自相關係數做線性預測分析,求取十階線性預測係數;一線性頻譜對參數擷取單元,係將上述十階線性預測係數轉換為線性頻譜對參數,並加以量化編碼;一增益擷取單元,係利用上述自相關係數和線性預測係數求出增益參數;一音高週期擷取單元,係用以將上述主音框求取音高週期;以及一有聲/無聲判斷單元,係利用越零率(Zero crossingrate)、能量(Energy)以及上述線性預測係數的第一階係數做綜合判斷該語音訊號係有聲/無聲。
在解碼端包括:一脈衝串產生器(Impulse TrainGenerator),係接受上述音高週期以產生脈衝串;一第一隨機雜訊產生器(Random Noise Generator),係用以產生隨機雜訊,在上述有聲/無聲判斷單元判斷為有聲時,該隨機雜訊與上述脈衝串傳送至一加法器以產生激發源;一第二隨機雜訊產生器,係用以產生隨機雜訊;在上述有聲/無聲判斷單元判斷為無聲時,該隨機雜訊直接表示為激發源;一線性頻譜對參數(LSP)內插單元(LSP Interpolation),係接受上述線性頻譜對參數,由目前生音框量化後之線性頻譜對參數與前一個主音框之線性頻譜對參數的量化值以加權指數內插;一線性頻譜對參數轉線性預測係數濾波器(LSP to LPC),係用以將上述內插後之線性頻譜對參數求出每個次音框合成時的十階線性預測係數;一合成濾波器(Synthetic Filter),係將上述十階線性預測係數與過去合成之十個語音訊號相乘,再加上上述語音激發源與上述增益,即可得到對應於目前語音激發源訊號之合成語音。
【發明詳細說明】
為詳細揭露本發明,以下以較佳實施例配合圖式做詳細說明。本發明係以應用導向超大型積體電路架構(ASIC)之方式來設計,將語音訊號以8KHz取樣,再予以分成許多主音框(frame),做為編碼參數傳輸單位,每個主音框的大小為30ms(240樣本點),其中編碼端架構示意圖,如圖一所示,包括:一漢明視窗處理單元11,其係將每個主音框的語音光用漢明視窗(Hamming Window)作前處理;一自相關運算單元12,係將上述處理過之語音求其自相關係數;一線性預測係數擷取單元13,係將上述自相關係數做線性預測分析,求取十階線性預測係數;一線性頻譜對參數擷取單元14,係將上述十階線性預測係數轉換為線性頻譜對參數,並加以量化編碼;一增益擷取單元15,係利用上述自相關係數和線性預測係數求出增益參數;一音高週期擷取單元16,係用以將上述主音框求取音高週期參數;以及一有聲/無聲判斷單元17,係利用越零率(Zerocrossing rate)、能量(Energy)以及上述線性預測係數的第一階係數做綜合判斷該語音訊號係有聲/無聲。
本發明之編碼方法,係將每個主音框的語音先用漢明視窗(Hamming Window)作前處理,再運用求其自相關係數做線性預測分析,求取十階線性預測係數,接著轉換成線頻譜對參數(Line Spectrum Pair, LSP),這和LPC-10的反射係數(Reflection Coefficients)不同,它的物理意義是當聲門全開或全閉時,在頻譜圖中會形成一對對線狀的紋理,而且接近共振頻率(resonant frequencies)出現的位置,它是交錯地出現,其值的大小介於0到π之間,故線頻譜對參數具有良好的穩定度(Stability)。此外,它有量化與內插以降低位元率的特性,所以我們可以將所求出的十階線性預測係數轉換為線頻譜對參數,並加以量化編碼。
除了線頻譜對參數外,本方法尚需傳送增益、有聲/無聲判斷、音高週期等語音參數,分述如下:
(1)增益(Gain)
增益可以利用線性預測分析所求得的自相關係數和線性預測係數求出,其式子如下:
其中G為增益,R(k)為自相關係數,a(k)為線性預測係數,n為線性預測的階數。
(2)有聲語音還是無聲語音之判斷
每個主音框要判斷為有聲語音還是無聲語音,這個判斷是為了選取不同的激發源,若是有聲音,則選取有聲的激發源,若是無聲音,則選取無聲的激發源,所以有聲音/無聲音的判斷是非常重要的,否則判斷錯了,激發源也就隨之判錯,聲音的品質也會下降。要判斷有聲音/無聲音的方法很多,在本發明使用了三種常用的方法,其方法如下:a.越零率(Zero crossing rate):越零率顧名思義乃語音訊號S(n)通過零值的次數,也就是兩連續樣本間具有不同的正負號次數,以式子表示則為:sign[S(n)]≠sign[S(n+1)]如果越零率高,則表示此段語音為無聲語音,若越零率低,則表示此段語音為有聲語音,因為無聲語音像摩擦音的能量多集中在3KHz以上,所以越零率會偏高。b.能量(Energy):語音訊號S(n)的能量E(n)定義為
若能量大,則表示為有聲語音;若能量小,則表示為無聲語音,且能量在計算自相關R(0)時已求得了。c.線性預測係數的第一階係數:若此係數大,則表示為有聲語音;若此係數小,則表示為無聲語音。
上述三種方法如果有兩個方法判斷為有聲語音,則此主音框為有聲語音,反之,則為無聲語音。
(3)音高週期(Pitch)
音高週期之演算法如下:步驟1:將主音框的所有取樣點找出其絕對最大值,也就是找出振幅大小最大點之值,若此值為正,則以最大值為主找音高,將此最大值點設為音高。並將最大值點及其前後19點清除為零;若此值為負,則以最小值為主找音高,將此最小值點設為音高,並將最小值點及其前後19點清除為零。這是因為語音的波形有些由正源比較好看出音高的位置,有些則是由負源比較好看出音高的位置。而我們的音高週期最小值約為20,所以可以將所找出之音高附近的19點設為零。步驟2:設定振幅最大點之值的0.68倍為臨界值(Threshold)。步驟3:若此主音框是以正源為主找音高,則重新找出目前主音框的最大值,若此值大於臨界值,則設此點為音高,並將目前最大值點及其前後19點清除為零。若此主音框是以負源為主找音高,則重新找出目前主音框的最小值,若此值小於臨界值,則設此點為音高,並將目前最小值點及其前後19點清除為零。步驟4:如此反覆利用步驟3尋找音高,直到以正源為主找音高所有的點都小於臨界值為止,或以負源為主找音高所有的點都大於臨界值臨界值為止。步驟5:因為所求的音高的位置順序是按照值的大小所排列,所以在求取音高週期之前必須將音高的位置依照從小到大的順序排序,可得P1、P2、P3、P4、P5、P6。步驟6:最後,將所有音高的位置求取間距Di=Pi+1-Pi,i=1,2,...,N(N為音高的個數),並將間距加以平均,就是音高週期P了。
在解碼端,架構圖如圖二,其每個主音框又可分為四個次音框,每個次音框的大小為7.5ms(60樣本點),其包括:一脈衝串產生器(Impulse Train Generator)21,係接受音高週期參數以產生脈衝串;一第一隨機雜訊產生器(Random Noise Generator)22,係用以產生隨機雜訊,在上述有聲/無聲判斷單元17判斷為有聲時,該隨機雜訊與上述脈衝串傳送至一加法器以產生激發源;一第二隨機雜訊產生器23,係用以產生隨機雜訊;在上述有聲/無聲判斷單元17判斷為無聲時,該隨機雜訊直接表示為激發源;一線性頻譜對參數(LSP)內插單元(LSPInterpolation)24,係接受上述線性頻譜對參數,由目前主音框量化後之線性頻譜對參數與前一個主音框之線性頻譜對參數的量化值以加權指數內插;一線性頻譜對參數轉線性預測係數濾波器(LSP to LPC)25,係用以將上述內插後之線性頻譜對參數求出每個次音框合成時的十階線性預測係數;一合成濾波器(Synthetic Filter),係將上述十階線性預測係數與過去合成之十個語音訊號相乘,再加上語音激發源與增益參數,即可得到對應於目前語音激發源訊號之合成語音。
本發明之解碼方法中次音框合成時的線性預測係數是由目前主音框量化後之線性頻譜對參數與前一個主音框之線性頻譜對參數的量化值內插,反求而得,內插加權指數見表一。
在激發源部份,若為有聲,採用混合激發,由音高週期產生的脈衝串加上隨機雜訊組成。混和激發的目的是在週期的激發源中適當的參入一些隨機雜訊,如此可以模擬出較多可能的語音特徵來產生各種的有聲語音,才不會產生像傳統線性預測分析機械聲的感覺和擾人的雜訊,使合成的語音自然度增加,提高有聲語音的音質,這點是傳統線性預測分析所最欠缺的;若為無聲,則僅用隨機雜訊表示。
另外,本方法加入了以下兩種增進合成語音品質的策略:
(1)激發源平滑化濾波器
激發源平滑化濾波器可以使解碼端擁有更佳之語音激發源。a.在有聲音方面,其平滑化濾波器如圖三A所示,為A(z)=0.125+0.75z-1+0.125z-2b.在無聲音方面,其平滑化濾波器如圖三B所示,為A(z)=-0.125+0.25z-1+0.125z-2
(2)主音框間高週期之連續性
在主音框和主音框的連接,必須考慮其連續性的問題,處理的方法是記錄前主音框的剩餘點的大小,而在目前主音框則是由剩餘點加上目前主音框的音高週期開始產生激發的脈衝串,例如前主音框的音高週期為50,則會剩餘點為40,若目前主音框的音高週期為75,則目前主音框產生脈衝串的起點則改為35,如此加強主音框和主音框之間的連續,如圖四所示。
本發明之編碼方法因為不用反射係數而改用線性頻譜對參數,所以可節省位元的數目,其位元配置為每個主音框以34個位元傳送十階線性頻譜對參數,有聲/無聲判斷用1個位元,音高週期用7個位元,增益用5個位元,1個位元的同步位元,一個主音框總共傳送48個位元,每個主音框大小為240點,位元率為1.6KbpS。
以下針對編碼方法中採用到的自相關運算、線性預測係數擷取、線性頻譜對參數擷取、增益擷取及音高週期擷取,首先分析其運算式,再根據運算式提出其硬體架構之設計方式。
【自相關運算之硬體架構設計方式】
自相關運算在所有語音參數求取的計算量是最大的,如果以10階的自相關運算為例必須計算R0到R10共11個,而以R0為例;所需要的乘法數目為240,加法數目為239:R1的乘法數目為239,加法數目為238,依此類推到R11所需的乘法數目為230,加法數目為229;若以唯讀記憶體控制(Control ROM)之方式來控制乘加與載入暫存器的方式;其控制字組(Control Word)要5159筆,太大也太沒效率了。
因為自相關演算法有固定的週期性,所以本發明提出一個有限狀態機方式的解法;改直接由有限狀態機發出控制訊號到資料路徑;首先觀察自相關演算法以一個音框240點為例: 無論計算到哪一階,其終止條件都是式子(1.1)當中X(m+k)=X(239),我們在電路上採用二組位址計數器c1與c2來表示X(m)與X(m+k)的值,在計算每一階的c1與2之範圍分佈如圖五所示,計算自相關的有限狀態機只要發現c2=239時就可以轉移狀態去計算下一階了。將自相關分成6個狀態(STATE),描述如下:S1:Load R1S2:Load R2S3:Load R4 (eXecute R1×R2)S4:Load R3S5:EXecute R3+R4S6:If (c2==239)End of calculation R(0..10)and storage it.
Else c2=c2+1,c1=c1+1;S0: Stop State
在控制單元內有二組位址計數器c1與c2用來產生X(m)與X(m+k)位址,在有限狀態機的狀態6會判斷c2是否為239來終止自相關在某一階的乘加運算。自相關的運算為乘加所組成的資料路徑所以一個乘法器乘完之後緊接著就是加法器來做累加,而累加暫存器會存放計算好的自相關值並透過移位器(Barrel Shifter)將自相關值正規化在16384以下。
【線性預測係數擷取之硬體架構設計方式】
求完自相關係數後緊接著是求取線性預測係數,我們採用 E(i):預測誤差R(i):自相關係數Ki:偏導數係數:i階預測參數的第j個S(n):輸入語音訊號h(n):漢明窗
在本發明中將德賓演算法的三個迴圈予以展開成一筆接一筆的指令藉由寫微指令集的方式來控制資料路徑做擷取線性預測係數的運算,以i=5為例,展開的演算法如圖六所示。由於演算中存在除法運算;以10階德賓演算法為例,存在著10次的除法運算分別為a11(第一階的第一個)、a22、a33、a44、a55,a66、a77、a88、a99、a1010(第十階的第十個)。根據資料範圍分析,這些除出來的值是不會超出正負3.0的;於是我們設計一個除法器專門求取線性預測係數。方法以二分法的觀念求商,除了符號位元之外總共有15個位元要變動,方法如下:
以一個5.0除3.0的範例來描述演算法運算的整個過程如圖七所示,最後得到商的值為0001_1010_1010_1011(1.666748)。
【線頻譜對參數擷取之硬體架構設計方式】
首先說明線性預測係數轉線頻譜對參數之方法,線頻譜對參數的物埋意義分別表示聲帶全開與全閉條件下的頻譜對參數多項式P(z)與Q(z),這兩個多項式具有線性關係,可以提供解碼時做良好的線性內插使用,使得編碼的位元率能降低:所以廣泛應用到各種語音編碼器上。 (2.1)、(2.2)兩式若再進一步推導則可得: 在(2.6)中共用15次相乘、5次相加,而(2.8)只用4次相乘、5次相加,減少相乘的次數則可大幅提高其準確度。而(2.8)與(2.9)的g1~g5與h1~h5可直接有下列式子轉換過來 g5=0.03125*P5-0.0625*P3+0.0625*P1g4=0.0625*P4-0.1875*P2+0.3125g3=0.125*P3-0.5*P1g2=0.25*P2-1.25g1=0.5*P1h5=0.03125*Q5-0.0625*Q3+0.0625*Q1h4=0.0625*Q4-0.1875*Q2+0.3125h3=0.125*Q3-0.5*Q1h2=0.25*Q2-1.25h1=0.5*Q1
圖八顯示線性頻譜對參數擷取單元之硬體架構圖,我們以三級之管線架構來實現整個運算,管線之第-級讀取資料進入暫存器,第二級以乘法器33執行乘法運算,第三級以加法器34執行加法運算。
各階之線頻譜對參數索引值以表格(Look Up Table,LUT)存放。在此我們解根之前必須先將多項式的係數g1~g5與h1~h5之係數先算好並放在RAM32中。解LSP事實上便是求解根,我們採取勘根定理來解根,亦即當P(a)P(b)<0時,a、b之間便存在P(x)之根。所以架構中需要比較電路來判斷P(a)P(b)之正負,由於P(a)、P(b)皆為二補數,故此比較電路以一個互斥閘即可實現。
整個運算的開始或結束均由線頻譜對參數之有限狀態機(LSP_FSM)31來控制,頻譜對參數之有限狀態機的作用在於當比較電路找到根時會送出一個信號告知頻譜對參數之有限狀態機目前所要找的根己找到,執行存索引的動作,並且繼續找下一階的線頻譜對參數索引(LSPINDEX),直到全部10階的線頻譜對參數索引都找出後就停止,所以一序列的線頻譜對參數索引求取之運算時序都需經由頻譜對參數之有限狀態機來控制。此外,控制器(Controller)31會依照線頻譜對參數之有限狀態機的指示來控制表格(LUT)送出值到暫存器(REG)內,或暫存器組(Register File)的內容放到暫存器內,並且控制其它運算單元的動作。
【增益擷取之硬體架構設計方式】
增益的運算見式(3.1),由於存在開根號運算我們將式子(3.1)修改成式子(3.2)就可避設額外設計開根號電路了,如此一來運算只而加、減、乘就可以了,其電路架構如圖九所示。首先將式(3.2)等號右邊的值經資料路徑算出並存放在R5暫存器42中,而G的值有32筆索引值對應到32種不同的增益值,儲存在唯讀記憶體(ROM)43中;可藉由查表的方式依序找出增益值,並且送入乘法器44中得到輸出為G的平方之值且儲存在R3暫存器中,由控制單元的增益有限狀態機41來比對R3與R5的值,一直比對到最接近的值便將索引值編碼起來。 為了簡化硬體之設計,我們將音高週期擷取之方法簡化如下:(1)在一個音框中找出絕對值最大的值定為尖峰值(Peak),若尖峰值為正則以正源為主找音高週期;若peak為負則以負源為主找音高週期.以圖3-4為例,其peak為負所以,以負源主找音高週期。(2)取一臨界值(TH)為0.68乘上尖峰值的值。(3)超過臨界值的樣本點才予以考慮,從第一點開始找出第一個大於等於臨界值值的樣本點;假設位置在sp[n],接著跳30個樣本點sp[n+30]並將計數器(Counter)計為30,從sp[n+30]往後找第二個樣本點,每找一個便將計數器值加1;直到找到第二個大於等於臨界值為止,此時的計數器值即為音高週期。
本發明編碼後所產生的48個位元,由一組48個位元所組成的暫存器來存放,其資料放順序按照參數擷取之順序來排列第0到第33個位元存放10階線頻譜對參數索引值,第34到38存放增益索引值,第39存放有聲/無聲位元,第40到46存放音高週期,第48個位元位元保留做以後擴充使用。
綜上所述,本發明所提供之語音編/解碼方法及語音編/解器,不僅可達預期之實用功效外並且為前所未見之新設計,已符合專利法發明之要件,爰依法具文申請之。為此,謹請貴審查委員詳予審查,並祈早日賜準專利,至感德便。
以上已將本發明一詳細說明,惟以上所述者,僅為本發明之較佳實施例而已,當不能限定本發明實施之範圍即凡依本發明申請專利範圍所作之均等變化與修飾等,應仍屬本發明之專利涵蓋範圍意圖保護之範疇。
圖一顯示本發明之編碼端架構示意圖;圖二顯示本發明之解碼端架構示意圖;圖三A顯示在激發源為有聲音時之平滑化濾波器;圖三B顯示在激發源為無聲音時之平滑化濾波器;圖四顯示本發明中主音框間高週期之連續圖;圖五顯示自相關運算內部變數範圍;圖六顯示德賓演算法展開之例子;圖七顯示圖六演算法運算的整個過程;圖八顯示線性頻譜對參數擷取單元之硬體架構圖圖九顯示增益擷取單元之硬體架構。
【主要元件編號】
11   漢明視窗處理單元12   自相關運算單元13   線性預測係數擷取單元14   線性頻譜對參數擷取單元15   增益擷取單元16   音高週期擷取單元17   有聲/無聲判斷單元21   脈衝串產生器22   第一隨機雜訊產生器23   第二隨機雜訊產生器24   線性頻譜對參數內插單元25   線性頻譜對參數轉線性預測係數濾波器26   合成濾波器31   線頻譜對參數有限狀態機及控制器 32   隨機存取記憶體33   乘法器34   加法器35   唯讀記憶體36   多工器41   增益有限狀態機及控制器42   隨機存取記憶體43   唯讀記憶體44   乘法器45   加/減法器46   多工器

 

 
十、申請專利範圍:
    1.一種語音編碼方法,係將語音訊號以8KHz取樣,再予以分成許多主音框(frame),每個主音框的大小為30ms(240樣本點),做為編碼參數傳輸單位,該編碼參數包括有:線性頻譜對參數(Line Spectrum Pair, LSP)、增益參數、有聲/無聲判斷參數、音高週期參數以及一個位元之同步位元;其中該線性頻譜對參數之求出方法係將該主音框的語音先用漢明視窗(Hamming Window)作前處理,再求其自相關係數做線性預測分析,求取十階線性預測係數,接著轉換成線性頻譜對參數;該增益參數係利用上述線性預測分析所求得的自相關係數和線性預測係數求出;該有聲/無聲判斷參數係利用越零率(Zero crossing rate)、能量(Energy)以及線性預測係數的第一階係數做綜合判斷;該音高週期參數之求出方法包括以下步驟:步驟一:將該主音框的所有取樣點找出其絕對最大值,也就是找出振幅大小最大點之值;若此值為正,則以最大值為主找音高,將此最大值點設為音高,並將最大值點及其前後適當取樣點清除為零;若此值為負,則以最小值為主找音高,將此最小值點設為音高,並將最小值點及其前後適當取樣點清除為零;步驟二:設定上述振幅最大點之值的適當倍數為臨界值(Threshold);步驟三:若此主音框是以正源為主找音高,則重新找出目前主音框的最大值,若此值大於臨界值,則設此點為音高,並將目前最大值點及其前後適當取樣點清除為零;若此主音框是以負源為主找音高,則重新找出目前主音框的最小值,若此值小於臨界值,則設此點為音高,並將目前最小值點及其前後適當取樣點清除為零;步驟四:反覆利用步驟三尋找音高,直到以正源為主找音高所有的點都小於臨界值為止,或以負源為主找音高所有的點都大於臨界值為止;步驟五:將音高的位置依照從小到大的順序排序,可得P1、P2、P3、P4、P5、P6;步驟六:將所有音高的位置求取間距Di=Pi+1-Pi,i=1,2,…,N(N為音高的個數),並將間距加以平均,就可得音高週期。
  2.如申請專利範圍第1項所述之語音編碼方法,其中該有聲/無聲判斷參數利用越零率(Zero crossing rate)、能量(Energy)以及線性預測係數的第一階係數做綜合判斷之方法如下:a.越零率:越零率係該語音訊號S(n)通過零值的次數,也就是兩連續樣本間具有不同的正負號次數,以式子表示則為:sign[S(n)]≠sign[S(n+1)]如果越零率高,則表示此段語音為無聲語音,若越零率低,則表示此段語音為有聲語音。b.能量:該語音訊號S(n)的能量E(n)定義為: 若能量大,則表示為有聲語音;若能量小,則表示為無聲語音;c.線性預測係數的第一階係數:若此係數大,則表示為有聲語音;若此係數小,則表示為無聲語音;上述三種方法如果有兩個方法判斷為有聲語音,則此主音框為有聲語音,反之,則為無聲語音。
  3.如申請專利範圍第1項所述之語音編碼方法,其中該音高週期參數之求出方法中之適當取樣點係為19點。
  4.如申請專利範圍第3項所述之語音編碼方法,其中該音高週期參數之求出方法中,步驟二之適當倍數為0.68倍。
  5.如申請專利範圍第4項所述之語音編碼方法,其中一個主音框總共傳送48個位元,位元配置為:34個位元傳送上述十階線性頻譜對參數,1個位元傳送上述有聲/無聲判斷參數,7個位元傳送上述音高週期參數,5個位元傳送上述增益參數以及1個位元傳送上述同步位元;且該每個主音框大小為240點,位元率為1.6 Kbps。
  6.一種語音解碼方法,係將每個主音框分為四個次音框,每個次音框合成時的十階線性預測係數是由目前主音框量化後之線性頻譜對參數與前一個主音框之線性頻譜對參數的量化值內插,反求而得;另外,在激發源部份,若為有聲,採用混合激發,也音高週期產生的脈衝串加上隨機雜訊組成;若為無聲,則僅用隨機雜訊表示;此外,在產生有聲或無聲激發源後,該激發源必須經過平滑化濾波器加強該激發源的平滑;最後,將上述十階線性預測係數與過去合成之十個語音訊號相乘,再加上上述語音激發源訊號與增益,即可得到對應於目前語音激發源訊號之合成語音。
  7.一種語音編/解碼器,其係以應用導向超大型積體電路架構(ASIC)之方式來設計,將語音訊號以8KHz取樣,再予以分成許多主音框(frame),做為編碼參數傳輸單位,可分為編碼端與解碼端,其中編碼端包括:一漢明視窗處理單元,其係將每個主音框的語音先用漢明視窗(Hamming Window)作前處理;一自相關運算單元,係將上述處理過之語音求其自相關係數;一線性預測係數擷取單元,係將上述自相關係數做線性預測分析,求取十階線性預測係數;一線性頻譜對參數擷取單元,係將上述十階線性預測係數轉換為線性頻譜對參數,並加以量化編碼;一增益擷取單元,係利用上述自相關係數和線性預測係數求出增益參數;一音高週期擷取單元,係用以將上述主音框求取音高週期參數;以及一有聲/無聲判斷單元,係利用越零率(Zero crossing rate)、能量(Energy)以及上述線性預測係數的第一階係數做綜合判斷該語音訊號係有聲/無聲;在該解碼端,每個主音框可分為四個次音框,該解碼端包括:一脈衝串產生器(Impulse Train Generator),係接受上述音高週期參數以產生脈衝串;一第一隨機雜訊產生器(Random Noise Generator),係用以產生隨機雜訊,在上述有聲/無聲判斷單元判斷為有聲時,該隨機雜訊與上述脈衝串傳送至一加法器以產生激發源;一第二隨機雜訊產生器,係用以產生隨機雜訊,在上述有聲/無聲判斷單元判斷為無聲時,該隨機雜訊直接表示為激發源;一線性頻譜對參數(LSP)內插單元(LSP Interpolation),係接受上述線性頻譜對參數,由目前主音框量化後之線性頻譜對參數與前一個主音框之線性頻譜對參數的量化值以加權指數內插;一線性頻譜對參數轉線性預測係數濾波器(LSP to LPC),係用以將上述內插後之線性頻譜對參數求出每個次音框合成時的十階線性預測係數;一合成濾波器(Synthetic Filter),係將上述十階線性預測係數與過去合成之十個語音訊號相乘,再加上上述語音激發源與上述增益參數,即可得到對應於目前語音激發源訊號之合成語音。
  8.如申請專利範圍第7項所述之語音編/解碼器,其中一個主音框總共傳送48個位元,位元配置為:34個位元傳送上述十階線性頻譜對參數,1個位元傳送上述有聲/無聲判斷參數,7個位元傳送上述音高週期參數,5個位元傳送上述增益參數以及1個位元傳送上述同步位元;且該每個主音框大小為240點,位元率為1.6 Kbps。
  9.如申請專利範圍第7項所述之語音編/解碼器,其中該自相關運算單元係直接由有限狀態機發出控制訊號到資料路徑,其執行以下方程式:且在控制單元內有二組位址計數器c1與c2用來產生x(m)與x(m+k)位址,該有限狀態機分成6個狀態:狀態一係讀取R1,狀態二係讀取R2,狀態三係讀取R4(同時執行R1×R2),狀態四係讀取R3,狀態五係執行R3+R4,狀態六係判斷如果c2=239,則結束計算並且將其儲存;否則c2=c2+1且c1=c1+1。
  10.如申請專利範圍第7項所述之語音編/解碼器,其中該線性預測係數擷取單元係將十階德賓演算法的三個迴圈予以展開成一筆接一筆的指令,藉由寫微指令集的方式來控制資料路徑做擷取線性預測係數的運算;該線性預測係數擷取單元係包括一除法器,利用二分法求取線性預測係數。
  11.如申請專利範圍第7項所述之語音編/解碼器,其中該線性頻譜對參數擷取單元係包括:一隨機存取記憶體,係用以儲存事先算好之多項式的係數;一比較電路,係用一互斥閘以根據勘根定理來解根,並在找到根時送出一個信號告知頻譜對參數之有限狀態機;一頻譜對參數之有限狀態機,係接受上述信號,執行存索引的動作,並且繼續找下一階的線頻譜對參數索引(LSP INDEX),直到全部十階的線頻譜對參數索引都找出後就停止;一控制器,係依照上述線頻譜對參數之有限狀態機的指示來控制表格(LUT)送出值到暫存器(REG)內,或暫存器組(Register File)的內容放到暫存器內,並且控制其它運算單元的動作。
 
十一、圖式:
   
 








瀏覽數:
登入成功