語音信號合成器設(shè)計與實現(xiàn)_第1頁
語音信號合成器設(shè)計與實現(xiàn)_第2頁
語音信號合成器設(shè)計與實現(xiàn)_第3頁
語音信號合成器設(shè)計與實現(xiàn)_第4頁
語音信號合成器設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 組員組員 徐小陽徐小陽 蔣高峰蔣高峰 程軍生程軍生 賈玉飛賈玉飛 呂呂 凡凡 背景背景 1.1 概述 語音是人類相互之間進行交流時使用最多、最自然、最基本也是最重要的 信息載體。在高度信息化的今天,語音處理的一系列技術(shù)及其應用已成為信息社 會不可或缺的重要組成部分。語音的產(chǎn)生是一個復雜的過程,包括心理和生理等 方面的一系列動作。當人需要通過語音表達某種信息時,首先是這種信息以某種 抽象的形式表現(xiàn)在說話人的大腦里,然后轉(zhuǎn)換為一組神經(jīng)信號,這些神經(jīng)信號作 用于發(fā)聲器官,從而產(chǎn)生攜帶信息的語音信號。 通過語音傳遞信息是人類最重要、最有效、最常用和最方便的交換信息的 形式。語言是人類特有的功能,聲音

2、是人類常用的工具,是相互傳遞信息的最主 要的手段。因此,語音信號是人們構(gòu)成思想疏通和感情交流的最主要的途徑。并 且,由于語言和語音與人的智力活動密切相關(guān),與社會文化和進步緊密相連,所 以它具有最大的信息容量和最高的智能水平?,F(xiàn)在,人類已開始進入了信息化時 代,用現(xiàn)代手段研究語音處理技術(shù),使人們能更加有效地產(chǎn)生、傳輸、存儲、獲 取和應用語音信息,這對于促進社會的發(fā)展具有十分重要的意義。 語音合成的目的就是讓計算機說話。最簡單的語音合成應當是語音響應系 統(tǒng),其實現(xiàn)技術(shù)非常簡單。在計算機內(nèi)建立一個語音庫,將可能用到的單詞,詞 組或一些句子的聲音信號編碼后存入計算機,當鍵入所要的字,詞組或句子代碼 時

3、,就能調(diào)出對應代碼信號,并轉(zhuǎn)換成聲音。 1.2matlab Matlab 是美國 Math Works 公司推出的一種面向工程和科學計算的 交互式計算軟件,它以矩陣運算為基礎(chǔ),把計算、可視化、程序設(shè)計融 合到了一個簡單易用的交互式工作環(huán)境中。同時由于Matlab 是一個數(shù)據(jù) 分析和處理功能十分強大的工程實用軟件,它的信號處理與分析工具箱 為語音信號分析提供了十分豐富的功能函數(shù),利用這些功能函數(shù)可以快捷 而又方便地完成語音信號的處理和分析以及信號的可視化,使人機交互 更加便捷。 隨著計算機技術(shù)和信息技術(shù)的發(fā)展,語音交互已經(jīng)成為人機交互的必 要手段,而語音信號的采集和處理是人機交互的前提和基礎(chǔ)。聲

4、卡是計 算機對語音信號進行加工的重要部件,它具有對信號濾波、放大、采樣 保持、A/D和D/A轉(zhuǎn)換等功能。盡管在Windows 附件的娛樂中帶有一個 錄音機,通過它可以驅(qū)動聲卡采集語音信號并保存為語音文檔。但是要 對采集的信號進一步分析處理就必須另外編程或通過其它軟件,而且 Windows附件中的錄音機功能極其有限且不能擴展。 設(shè)計目的設(shè)計目的 (1)自行產(chǎn)生兩個語音信號(男聲和女聲) (2)分別對兩路信號進行頻譜分析和特征提取, 并畫出兩路語音信號的頻譜圖 (3)試將兩語音信號分別合成為男聲或女聲 (4)播放合成后的語音信號 設(shè)計原理設(shè)計原理 3.1.1語音信號的頻譜分析過程 傅里葉頻譜分析是

5、語音信號頻域分析中廣泛采用的一種方法。語 音波是一個平穩(wěn)過程,因此適用于周期、瞬變或平穩(wěn)隨機信號的標 準傅里葉變換不能直接表示語音信號,而應該用短時傅里葉變換對 語音信號的頻譜進行分析,相應的頻譜稱為“短時譜”。進行頻譜 分析時,在時域數(shù)據(jù)進行短時FFT處理之前都要進行加窗處理。在 FFT處理之后,普通頻譜分析可以進行頻域上的濾波處理,從而使 頻譜更加平滑。最后IFFT處理觀察恢復后的時域信號圖形,頻譜分 析過程。 3.1.2短時傅里葉變換(頻譜分析) 傅里葉頻譜分析的基礎(chǔ)是傅里葉變換,用傅里葉變換及其反變換 可以求得傅里葉譜、自相關(guān)函數(shù)、功率譜、倒譜。由于語音信號的 特性是隨著時間緩慢變化的

6、,由此引出語音信號的短時分析。如同 在時域特征分析中用到的一樣,這里的傅里葉頻譜分析也采用相同 的短時分析技術(shù)。 信號x(n)的短時傅里葉變換定義為: 式中, 為窗口函數(shù)。 可以從兩個角度理解函數(shù)的物理意義:第一種解釋是,當n固定時, n= 如,則 是將窗函數(shù)的起點移至 處截取信號x(n),再 做傅里葉變換而得到的一個頻譜函數(shù)。這是直接將頻率軸方向來理解 的。另一種解釋是從時間軸方向來理解,當頻率固定時,例如 , 則可以看做是信號經(jīng)過一個中心頻率為 的帶通濾波器產(chǎn)生的輸出。 這是因為窗口函數(shù) 通常具有低通頻率響應,而指數(shù) 對語音信 號有調(diào)制的作用,使頻譜產(chǎn)生移位,即將x(n)頻譜中對應于頻率

7、的分量平移到零頻。 3.1.3 快速傅里葉變換 有限長序列可以通過離散傅里葉變換(DFT)將其頻域也離散化成 有限長序列。但其計算量太大,很難實時地處理問題,因此引出了快 速傅里葉變換(FFT).1965年,Cooley和Tukey提出了計算離散傅里葉 變換(DFT)的快速算法,將DFT的運算量減少了幾個數(shù)量級。從此,對快速傅里 葉變換(FFT)算法的研究便不斷深入,數(shù)字信號處理這門新興學科也隨FFT的 出現(xiàn)和發(fā)展而迅速發(fā)展。根據(jù)對序列分解與選取方法的不同而產(chǎn)生了FFT的多種 算法,基本算法是2DIT和基2DIF。FFT在離散傅里葉反變換、線性卷積和線性 相關(guān)等方面也有重要應用。 快速傅里葉變

8、換(FFT),是離散傅里葉變換的快速算法,它是根據(jù)離散傅氏 變換的奇、偶、虛、實等特性,對離散傅里葉變換的算法進行改進獲得的。它對 傅氏變換的理論并沒有新的發(fā)現(xiàn),但是對于計算機系統(tǒng)或者說數(shù)字系統(tǒng)中應用離 散傅里葉變換,可以說是進了一大步。 設(shè)x(n)為N項的復數(shù)序列,由DFT變換,任一X(m)的計算都需要N次復 數(shù)乘法和N-1次復數(shù)加法,而一次復數(shù)乘法等于四次實數(shù)乘法和兩次實數(shù)加法, 一次復數(shù)加法等于兩次實數(shù)加法,即使一次復數(shù)乘法和一次復數(shù)加法定義成一次 “運算”(四次實數(shù)乘法和四次實數(shù)加法),那么求出N項復數(shù)序列的X(m), 即N點DFT變換大約就需要N2次運算。當N=1024點甚至更多的的

9、時候,需要 N2=1048576次運算,在FFT中,利用WN的周期性和對稱性,把一個N項序列 (設(shè)N=2k,k為正整數(shù)),分為兩個N/2項的子序列,每個N/2點DFT變換需要 (N/2)2次運算,再用N次運算把兩個N/2點的DFT變換組合成一個N點的DFT 變換。這樣變換以后,總的運算次數(shù)就變成N+2(N/2)2=N+N2/2。繼續(xù)上面 的例子,N=1024時,總的運算次數(shù)就變成了525312次,節(jié)省了大約50%的運算 量。而如果我們將這種“一分為二”的思想不斷進行下去,直到分成兩兩一組 的DFT運算單元,那么N點的DFT變換就只需要Nlog2N次的運算,N在1024 點時,運算量僅有1024

10、0次,是先前的直接算法的1%,點數(shù)越多,運算量的節(jié) 約就越大,這就是FFT的優(yōu)越性。 離散傅里葉變換X(k)可看成是z變換在單位圓上的等距離采樣值。同樣, X(k)也可看作是序列傅氏變換 的采樣,采樣間隔為 N=2 /N。由此看 出,離散傅里葉變換實質(zhì)上是其頻譜的離散頻域采樣,對頻率具有選擇性 ( k=2 k/N),在這些點上反映了信號的頻譜。 根據(jù)采樣定律,一個頻帶有限的信號,可以對它進行時域采樣而不丟失任 何信息,F(xiàn)FT變換則說明對于時間有限的信號(有限長序列),也可以對其進 行頻域采樣,而不丟失任何信息 。所以只有時間序列足夠長,采樣足夠密,頻 域采樣也就可較好的反映信號的頻譜趨勢,所以

11、FFT可以用以進行連續(xù)信號的 頻譜分析。 3.1.4短時傅里葉反變換(倒譜分析) 傅里葉變換建立了信號從時域到頻域的變換橋梁,而傅里葉反變換則建立了 信號從頻域到時域的變換橋梁這兩個域之間的變換為一對一映射關(guān)系。我們 知道, 可以看作是加窗后函數(shù)的傅里葉變換,為了實現(xiàn)反變換,將 進行頻率采樣,即令 =2k/L,則有 = 其中,L為頻域采樣點數(shù)。將 在時域n上每隔R個樣本采樣,則可令 = , n=rR, r=1,2,. 用 Y ( )求出其離散傅里葉反變換 (n)如下: (n)= 而 ,而 可以證明,x(n)和y(n)之間只相差一個比例因子。他們的關(guān)系如下: 3.1.5.Hilbert變換 基于

12、利用DFT求解一個序列的解析信號及hilbert變換的理論,利用 MATLAB語言編寫了擴展函數(shù)yhilbert.m,另外MATLAB工具箱本身也提供 了計算hilbert變換的函數(shù)hilbert.m, 其格式為y=Hilbert(x).但需要注意的是,該函數(shù)計算出的結(jié)果是序列的解析 信號,其虛部才是序列的hilbert變換。 Hilbert變換具有兩個性質(zhì): 性質(zhì)一:序列x(n)通過Hilbert變換器后,信號頻譜的幅度不發(fā)生變化,這 是因為hilbert變換器是全通濾波器,引起頻譜變化的只是其相位。 性質(zhì)二:序列x(n)與其Hilbert變換是正交的。 設(shè)計過程設(shè)計過程 4.1 MATLA

13、B處理音頻信號的流程 分析和處理音頻信號,首先要對音頻信號進行采集,MATLAB數(shù)據(jù)采集工具 箱提供了一整套命令和函數(shù),通過調(diào)用這些命令和函數(shù),可直接控制聲卡進行數(shù) 據(jù)采集。Windows自帶的錄音機程序也可驅(qū)動聲卡來采集語音信號,并能保存 為WAV格式文件,供MATLAB相關(guān)函數(shù)直接讀取、寫入或播放。本文以WAV 格式音頻信號作為分析處理的輸入數(shù)據(jù),用MATLAB處理音頻信號的基本流程 是:先將WAV格式音頻信號經(jīng)wavread函數(shù)轉(zhuǎn)換MATLAB列數(shù)組變量;再用 MATLAB強大的運算能力進行數(shù)據(jù)分析和處理,如時域分析、頻域分析、數(shù)字 濾波、信號合成、信號變換、識別和增強等等;處理后的數(shù)據(jù)

14、如是音頻數(shù)據(jù),則 可用wavwrite轉(zhuǎn)換成WAV格式文件或用sound、wavplay等函數(shù)直接回放。下面 分別介紹MATLAB在音量標準化、語音合成等音頻信號處理方面的技術(shù)實現(xiàn)。 4.2語音信號采樣并進行頻譜分析 4.2.1語音信號采集 該實驗以兩種男女聲音樂為分析樣本。在MATLAB中使用wavread函數(shù),可 得出聲音的采樣頻率FS為16000Hz。利用sound函數(shù),可清晰地聽到女生音樂 和男生音樂,采樣數(shù)據(jù)并畫出波形圖 4.2.2畫出頻譜圖 接下來對采樣數(shù)據(jù)作快速傅里葉(fft)變換并畫出頻譜圖和以dB為單位的信 號頻譜。 由頻譜圖2可清楚地看到樣本聲音主要以低頻為主。人的語音信號

15、頻率一般集中 在200kHz到4.5kHz之間,從聲音頻譜的包絡(luò)來看,樣本聲音的能量集中在0.1pi (1102.5)以內(nèi),0.4pi以內(nèi)的高頻部分很少。所以信號寬度近似取為1.1kHz,由采樣 定理可得FS2f0=2*1102.5=2205Hz,重放語音后仍可較清晰的聽出原聲,不存在聲 音混疊現(xiàn)象。 4.2.3語音信號合成后波形圖和頻譜圖 對男聲信號進行hilbert變換得到包絡(luò),信號對齊男聲包絡(luò)調(diào)制女聲振幅生成的數(shù) 據(jù)歸一化處理對生成文件進行FFT分析。做原始語音信號的時域圖形和語音信號的 FFT頻譜圖。 實驗代碼及結(jié)果實驗代碼及結(jié)果 5.1MATLAB源程序 %錄音時間隨便定 %錄入女生

16、語音信號 y,fs1=wavread(4.wav); %分析女生信號 y=y(:,1); t=(0:length(y)-1)/fs1; sigLength=length(y); Y=fft(y,sigLength); halflength=floor(sigLength/2); f=fs1*(0:(halflength-1)/sigLength; figure(1); plot(t,y); grid on;axis tight; title(女生語音信號); xlabel(time(s); ylabel(幅度); figure(2); plot(f,abs(Y(1:halflength); g

17、rid on;axis tight; title(女生信號FFT頻譜); xlabel(Hz); ylabel(幅度); %錄入男生語音信號 y1,fs2=wavread(6.wav); %分析男生信號 y1=y1(:,1); t1=(0:length(y1)-1)/fs2; sigLength1=length(y1); Y1=fft(y1,sigLength1); halflength1=floor(sigLength1/2); fl=fs2*(0:(halflength1-1)/sigLength1; figure(3); plot(t1,y1); grid on;axis tight;

18、title(男生語音信號); xlabel(time(s); ylabel(幅度); figure(4); plot(fl,abs(Y1(1:halflength1); grid on;axis tight; title(男生信號FFT頻譜); xlabel(Hz); ylabel(幅度); %找到女生信號開始的地方 for i=1:sigLength-4, a(i)=y(i).*y(i+1).*y(i+2).*y(i+3).*y(i+4); if a(i)=0 break; %else i=i+0; end end I=i; %找到男生信號開始的地方 for j=1:sigLength1-4

19、, a(j)=y(j).*y(j+1).*y(j+2).*y(j+3).*y(j+4); if a(j)=0 break; %else j=j+0; end end; J=j; %男生信號進行hilbert變換得到包絡(luò) H=hilbert(y1); %信號對齊 %男生包絡(luò)調(diào)制女生振幅 max1=max(I,J); for k=1:sigLength1-max1,% N(k)=y1(i).*H(j); i=i+1;j=j+1; end; N=N; %生成的數(shù)據(jù)歸一化處理 N=N/(max(abs(N)*1.05); %生成.wav文件 wavwrite(N,fs2,16,hecheng.wav); fprintf(新文件hecheng.wav已經(jīng)生成.n); fprintf(n); %對生成文件進行FFT分析 x,fs=wavread(hecheng.wav); t=(0:length(x)-1)/fs; sigLength=length(x); X=fft(x,sigLength); halflength=floor(sigL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論