《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于AVR和FPGA高精度數(shù)字式移相發(fā)生器的設(shè)計(jì)
基于AVR和FPGA高精度數(shù)字式移相發(fā)生器的設(shè)計(jì)
現(xiàn)代電子技術(shù)
摘要: 基頻與共振峰參數(shù)的準(zhǔn)確提取對(duì)于共振峰編碼算法質(zhì)量起著至關(guān)重要的作用。在本課題中采用改進(jìn)的雙重傅里葉變換算法進(jìn)行語(yǔ)音參數(shù)提取。本課題分析算法所需要的語(yǔ)音頻譜是由機(jī)語(yǔ)公司的SA-0505語(yǔ)譜儀分析得到。機(jī)語(yǔ)公司的SA-0505頻譜分析儀最高分辨精度為頻率分辨精度為5 Hz,時(shí)間分辨精度為5 ms。分析結(jié)果是各頻率分量的幅值函數(shù),不包含相位信息。由于語(yǔ)音信號(hào)中相位信息不影響語(yǔ)音分辨,所以在此基礎(chǔ)上的進(jìn)一步工作有很大意義。
關(guān)鍵詞: FPGA avr 移相發(fā)生器 編碼 解碼
Abstract:
Key words :

1引 言

  語(yǔ)音編碼算法利用語(yǔ)音信號(hào)的冗余信息及某些人耳不敏感的信息,可以在低比特率上獲得較高質(zhì)量的重建語(yǔ)音,壓縮編碼一直是通信中的關(guān)鍵技術(shù)。語(yǔ)音信號(hào)研究者們一直在尋求一種在保持語(yǔ)音質(zhì)量不顯著下降的情況下使語(yǔ)音信號(hào)的編碼比特率最小的方法,特別地,低比特率語(yǔ)音編碼體制(比特率在4.8 kb/s以下)因其廣泛的需求而得到研究者的重視。

  語(yǔ)音編碼器的性能常常用比特率、延時(shí)、復(fù)雜度和質(zhì)量4個(gè)屬性來(lái)進(jìn)行衡量,因此,在分析語(yǔ)音編碼器的性能時(shí),主要應(yīng)該考慮這些屬性。值得注意的是,這些屬性之間不是孤立的,而是相互緊密聯(lián)系的,例如,低比特率的編碼器一般比高比特率的編碼器有更大的延時(shí)、更高的算法復(fù)雜度和較低的語(yǔ)音質(zhì)量。因此在對(duì)各種編碼算法進(jìn)行取舍時(shí),應(yīng)根據(jù)實(shí)際應(yīng)用環(huán)境,在這些屬性之間進(jìn)行權(quán)衡。

  共振峰參數(shù)編碼算法在低碼率的音頻編碼中應(yīng)用越來(lái)越廣泛。與基于時(shí)域波形的壓縮算法相比,他在傳輸?shù)倪^(guò)程中只需要傳輸構(gòu)造信號(hào)所用的基頻和共振峰參數(shù),因此可以大大地降低傳輸?shù)拇a率,實(shí)現(xiàn)低碼率下的多媒體通信。而且,基于共振峰參數(shù)的算法無(wú)須嚴(yán)格限制信號(hào)的結(jié)構(gòu),他可以靈活地描述音頻信號(hào)的特征。這一靈活性決定了基于共振峰參數(shù)的算法,可以滿足對(duì)音頻信號(hào)進(jìn)行方便訪問(wèn)和控制的需要。

2 基頻及共振峰提取

  基頻與共振峰參數(shù)的準(zhǔn)確提取對(duì)于共振峰編碼算法質(zhì)量起著至關(guān)重要的作用。在本課題中采用改進(jìn)的雙重傅里葉變換算法進(jìn)行語(yǔ)音參數(shù)提取。本課題分析算法所需要的語(yǔ)音頻譜是由機(jī)語(yǔ)公司的SA-0505語(yǔ)譜儀分析得到。機(jī)語(yǔ)公司的SA-0505頻譜分析儀最高分辨精度為頻率分辨精度為5 Hz,時(shí)間分辨精度為5 ms。分析結(jié)果是各頻率分量的幅值函數(shù),不包含相位信息。由于語(yǔ)音信號(hào)中相位信息不影響語(yǔ)音分辨,所以在此基礎(chǔ)上的進(jìn)一步工作有很大意義。

  在實(shí)際的語(yǔ)音參數(shù)提取過(guò)程中,首先應(yīng)用機(jī)語(yǔ)語(yǔ)譜儀分析語(yǔ)音信號(hào),得到語(yǔ)音的時(shí)頻分析圖譜。如圖l所示。

    對(duì)各時(shí)刻的頻譜序列進(jìn)行傅里葉變換,圖2所示時(shí)刻的頻譜序列的傅里葉變換如圖3所示。

  從圖2中可以看出,由于實(shí)際的語(yǔ)音是準(zhǔn)周期信號(hào)和實(shí)際上是短時(shí)間信號(hào)的頻率分析,其頻譜序列不是周期性沖激函數(shù)序列的采樣,而是近似三角脈沖的采樣,所以其傅里葉變換的幅度譜呈現(xiàn)高頻衰減性質(zhì)。從圖3中可以觀察到頻譜序列的幅度譜是周期信號(hào)和高頻衰減信號(hào)的乘積。實(shí)際語(yǔ)音分析過(guò)程中各時(shí)刻頻譜序列的傅里葉變換后衰減幅度差異很大,低頻部分有時(shí)會(huì)出現(xiàn)分支脈沖的幅值大于下一個(gè)周期主脈沖的幅值,這對(duì)信號(hào)周期地分辨產(chǎn)生一定的干擾,而無(wú)法準(zhǔn)確估計(jì)基頻值。所以本文在確定基頻時(shí)利用高頻部分衰減幅度差異較小的特點(diǎn),分析其周期特性并用來(lái)計(jì)算語(yǔ)音基頻。

  共振峰參數(shù)包括共振峰頻率、頻帶寬度和幅值,共振峰信息包含在語(yǔ)音頻譜的包絡(luò)中。因此共振峰參數(shù)提取的關(guān)鍵是估計(jì)語(yǔ)音頻譜包絡(luò),并認(rèn)為譜包絡(luò)中的最大值就是共振峰。利用語(yǔ)音頻譜傅里葉變換相應(yīng)的低頻部分進(jìn)行逆變換,就可以得到語(yǔ)音頻譜的包絡(luò)曲線。依據(jù)頻譜包絡(luò)線各峰值能量的大小確定出第1~第4共振峰,如圖4所示。
 

  對(duì)于提取參數(shù)準(zhǔn)確性的測(cè)試,可以在時(shí)域和頻域上與人工分析的結(jié)果進(jìn)行比較,這種方法可以定量計(jì)算出提取算法的準(zhǔn)確度,但工作量大不易實(shí)現(xiàn)。由于基頻和共振峰兩個(gè)基本信息是語(yǔ)音信號(hào)辨別的主要特征點(diǎn),所以判斷兩個(gè)參數(shù)重建語(yǔ)音信號(hào)的語(yǔ)音質(zhì)量就可了解參數(shù)提取算法的性能。語(yǔ)音信號(hào)重建采用諧波合成方法,即首先根據(jù)共振峰信息建立語(yǔ)音頻譜的包絡(luò),然后根據(jù)頻譜包絡(luò)確定基頻及其各次諧波的幅值并合成語(yǔ)音信號(hào)。本文應(yīng)用所得到的參數(shù)重新生成語(yǔ)音,主觀分辨合成語(yǔ)音的質(zhì)量,據(jù)此判斷參數(shù)提取算法準(zhǔn)確度。在短時(shí)間內(nèi)語(yǔ)音信號(hào)可以被看作是平穩(wěn)信號(hào),所以每一幀的語(yǔ)音頻譜也可以簡(jiǎn)化為一組離散信號(hào),離散的量化值就是基頻。根據(jù)離散頻譜利用式(1),式(2)合成語(yǔ)音信號(hào):

  V(t)為合成語(yǔ)音信號(hào),fp為基頻。為避免出現(xiàn)尖峰信號(hào),設(shè)定了相位φn(ω)函數(shù):

  比較3種方式確定的離散頻譜所合成的語(yǔ)音信號(hào):

  (1)直接對(duì)原語(yǔ)譜圖離散;

  (2)對(duì)所得的語(yǔ)譜包絡(luò)離散;

  (3)對(duì)根據(jù)共振峰值確定的頻譜包絡(luò)離散。

  此方式的具體方案是:由于人耳對(duì)共振峰的參數(shù)中的中心頻率敏感,而對(duì)幅值和帶寬不敏感,所以本文只用共振峰的中心頻率和最大幅值兩個(gè)參數(shù)信息來(lái)合成語(yǔ)音。

  根據(jù)成年人語(yǔ)音信號(hào)的共振峰帶寬大約300 Hz,將各共振峰的帶寬統(tǒng)一定為300 Hz。重新作語(yǔ)音頻譜包絡(luò)線時(shí),以各共振峰中心頻率值為中點(diǎn)、最大能量為幅度作寬度為300 Hz的門(mén)信號(hào),然后根據(jù)新生成的包絡(luò)線確定基頻的各次諧波的幅值。用第一種語(yǔ)譜圖合成語(yǔ)音聽(tīng)起來(lái)只是音質(zhì)略有變化,可以清晰分辨每個(gè)音節(jié),完整保留原語(yǔ)音的語(yǔ)調(diào)、語(yǔ)氣和說(shuō)話人音質(zhì)特征等信息。這說(shuō)明算法能夠準(zhǔn)確提取基頻信息,而且這種合成方法可以合成出高質(zhì)量的語(yǔ)音信號(hào)。用第二種語(yǔ)譜圖合成的語(yǔ)音中說(shuō)話人音質(zhì)特征有些不清楚,其他方面與第一種相同。第三種語(yǔ)譜圖和成的語(yǔ)音中說(shuō)話人音質(zhì)特征完全被過(guò)濾掉,個(gè)別音節(jié)有些含糊,但語(yǔ)氣、語(yǔ)調(diào)信息完整保留。

3 共振峰語(yǔ)音編碼

  共振峰編碼算法需要基頻和共振峰兩種參數(shù)。通過(guò)實(shí)驗(yàn)表明應(yīng)用基頻、共振峰信息不但可以重建語(yǔ)音中的元音和濁輔音部分,還可以重建清輔音部分。首先是因?yàn)閰?shù)提取算法在清輔音部分時(shí)所確定的基頻參數(shù)不穩(wěn)定,根據(jù)不穩(wěn)定參數(shù)重建的語(yǔ)音信號(hào)會(huì)出現(xiàn)跳變,這種跳變信號(hào)與清輔音的頻譜相似。更重要的原因人耳對(duì)于輔音的聽(tīng)辨要點(diǎn)是過(guò)渡音征,所以只要準(zhǔn)確提供共振峰值就能重建清輔音部分。根據(jù)語(yǔ)音信號(hào)合成的研究表明,表示濁音信號(hào)最主要的是前三個(gè)共振峰。一個(gè)語(yǔ)音信號(hào)的共振峰模型,只用前三個(gè)時(shí)變共振峰頻率就可以得到可懂度很好的合成濁音。考慮到特殊情況下可能會(huì)出現(xiàn)偽共振峰,本算法在確定編碼參數(shù)時(shí)根據(jù)共振峰幅值大小保留4個(gè)共振峰參數(shù)。

  3.1 參數(shù)量化

  語(yǔ)音編碼算法最主要的兩個(gè)主要指標(biāo)是比特率和語(yǔ)音質(zhì)量。低速率語(yǔ)音編碼算法要求在語(yǔ)音可懂的基礎(chǔ)上最大限度地降低比特率。為確定各參數(shù)的最大量化度,我們對(duì)各參數(shù)進(jìn)行不同程度量化后重新合成語(yǔ)音,并評(píng)價(jià)各量化程度的語(yǔ)音質(zhì)量。

  正常語(yǔ)音的基頻變化范圍為50~500 Hz,基頻量化實(shí)驗(yàn)時(shí)發(fā)現(xiàn)當(dāng)基頻量化精度為20 Hz時(shí),重建的語(yǔ)音信號(hào)仍然清晰。所以編碼時(shí)基頻最低可以用5 b表示,但為了提高抗誤碼能力用8 b對(duì)基頻進(jìn)行編碼。共振峰的量化分為頻率值量化和幅值量化。根據(jù)參數(shù)提取算法可知,共振峰曲線是基頻及其各次諧波的包絡(luò)線。我們可以認(rèn)為語(yǔ)音頻譜是基頻及其諧波對(duì)共振峰曲線采樣信號(hào),所以可以以基頻值作為描述共振峰曲線的精度。共振峰的中心頻率值就可以用基頻的第幾次諧波確定,所以變化范圍是1~32,編碼時(shí)用5 b表示。人耳對(duì)共振峰幅值不敏感,通過(guò)語(yǔ)音實(shí)驗(yàn)表明當(dāng)時(shí)域上以16位采樣精度錄制語(yǔ)音,信號(hào)振幅變化范圍210~215時(shí)用3 b對(duì)幅值編碼時(shí)就能清楚表現(xiàn)語(yǔ)音。所以對(duì)于每個(gè)共振峰可以用8 b量化,其中5 b表示中心頻率,3 b表示幅值。

  3.2 編碼規(guī)則

  編碼中語(yǔ)音幀周期可以分為動(dòng)態(tài)和固定兩種形式。動(dòng)態(tài)形式是每幀的周期根據(jù)基頻來(lái)確定,即每幀是一個(gè)基頻周期。這種方式在解碼時(shí)語(yǔ)音清晰度自然度最好,但由于幀周期的長(zhǎng)度小導(dǎo)致編碼率高。固定形式是幀的周期是一定的,根據(jù)實(shí)際情況可以設(shè)定為10~40 ms。周期長(zhǎng)度與音質(zhì)成反比,與壓縮率成正比。本算法中幀周期采用固定形式設(shè)定為25 ms。根據(jù)頻譜能量值判斷是否有語(yǔ)音,當(dāng)沒(méi)有語(yǔ)音時(shí)以一個(gè)0字節(jié)編碼。我們采用一個(gè)字節(jié)表示靜音幀,是為了提高算法的抗誤碼能力。
 

  3.3 結(jié)果

  用本算法對(duì)一段正常語(yǔ)速朗讀的語(yǔ)音材料進(jìn)行編碼及解碼,解碼后語(yǔ)音可懂性好,平均碼率1 400 b/s。

4 結(jié) 語(yǔ)

  理論上只要有準(zhǔn)確的基頻和共振峰參數(shù),就可以恢復(fù)出原語(yǔ)音信號(hào)除嗓音音質(zhì)特征外其他所有特征。本算法所用的參數(shù)只有基頻和4個(gè)共振峰,對(duì)于語(yǔ)音信號(hào)這些參數(shù)是分辨語(yǔ)音信息的特征參數(shù)。當(dāng)編碼信息中只含有這些參數(shù),則可以認(rèn)為就每幀信號(hào)來(lái)講沒(méi)有冗余信息,也就是對(duì)于每幀信號(hào)編碼達(dá)到了最大壓縮。如果在本算法基礎(chǔ)上要進(jìn)一步提高壓縮率,只能針對(duì)幀與幀間的關(guān)聯(lián)來(lái)設(shè)計(jì),如矢量量化算法等。

  本編碼算法的延時(shí)短、復(fù)雜度低,可以用于實(shí)時(shí)的語(yǔ)音信號(hào)傳輸。在比特率、延時(shí)、復(fù)雜度3個(gè)評(píng)價(jià)指標(biāo)上其性能良好,解碼后語(yǔ)音有輕微的機(jī)器音和個(gè)別音節(jié)含糊。導(dǎo)致語(yǔ)音音質(zhì)差的因素有兩個(gè):一是參數(shù)量化時(shí)出現(xiàn)誤差,根據(jù)實(shí)驗(yàn)分析誤差主要是共振峰量化誤差,所以量化編碼時(shí)根據(jù)實(shí)際要求在音質(zhì)和編碼率間進(jìn)行選擇;二是語(yǔ)音重建算法,本文重建時(shí)只是簡(jiǎn)單地用門(mén)函數(shù)表示共振峰幅頻特性,如果能在深入研究共振峰幅頻特性的基礎(chǔ)上改進(jìn)重建算法,解碼后語(yǔ)音音質(zhì)一定會(huì)得到改善。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。