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

下載本文檔

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

文檔簡介

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

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

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

4、信號(hào)濾波、放大、采樣保持、A/D和D/A轉(zhuǎn)換等功能。盡管在Windows 附件的娛樂中帶有一個(gè)錄音機(jī),通過它可以驅(qū)動(dòng)聲卡采集語音信號(hào)并保存為語音文檔。但是要對(duì)采集的信號(hào)進(jìn)一步分析處理就必須另外編程或通過其它軟件,而且Windows附件中的錄音機(jī)功能極其有限且不能擴(kuò)展。設(shè)計(jì)目的設(shè)計(jì)目的(1)自行產(chǎn)生兩個(gè)語音信號(hào)(男聲和女聲)(2)分別對(duì)兩路信號(hào)進(jìn)行頻譜分析和特征提取,并畫出兩路語音信號(hào)的頻譜圖(3)試將兩語音信號(hào)分別合成為男聲或女聲(4)播放合成后的語音信號(hào)設(shè)計(jì)原理設(shè)計(jì)原理3.1.1語音信號(hào)的頻譜分析過程 傅里葉頻譜分析是語音信號(hào)頻域分析中廣泛采用的一種方法。語音波是一個(gè)平穩(wěn)過程,因此適用于周期

5、、瞬變或平穩(wěn)隨機(jī)信號(hào)的標(biāo)準(zhǔn)傅里葉變換不能直接表示語音信號(hào),而應(yīng)該用短時(shí)傅里葉變換對(duì)語音信號(hào)的頻譜進(jìn)行分析,相應(yīng)的頻譜稱為“短時(shí)譜”。進(jìn)行頻譜分析時(shí),在時(shí)域數(shù)據(jù)進(jìn)行短時(shí)FFT處理之前都要進(jìn)行加窗處理。在FFT處理之后,普通頻譜分析可以進(jìn)行頻域上的濾波處理,從而使頻譜更加平滑。最后IFFT處理觀察恢復(fù)后的時(shí)域信號(hào)圖形,頻譜分析過程。3.1.2短時(shí)傅里葉變換(頻譜分析) 傅里葉頻譜分析的基礎(chǔ)是傅里葉變換,用傅里葉變換及其反變換可以求得傅里葉譜、自相關(guān)函數(shù)、功率譜、倒譜。由于語音信號(hào)的特性是隨著時(shí)間緩慢變化的,由此引出語音信號(hào)的短時(shí)分析。如同在時(shí)域特征分析中用到的一樣,這里的傅里葉頻譜分析也采用相同的

6、短時(shí)分析技術(shù)。信號(hào)x(n)的短時(shí)傅里葉變換定義為: 式中, 為窗口函數(shù)。 可以從兩個(gè)角度理解函數(shù)的物理意義:第一種解釋是,當(dāng)n固定時(shí),n= 如,則 是將窗函數(shù)的起點(diǎn)移至 處截取信號(hào)x(n),再做傅里葉變換而得到的一個(gè)頻譜函數(shù)。這是直接將頻率軸方向來理解的。另一種解釋是從時(shí)間軸方向來理解,當(dāng)頻率固定時(shí),例如 ,則可以看做是信號(hào)經(jīng)過一個(gè)中心頻率為 的帶通濾波器產(chǎn)生的輸出。這是因?yàn)榇翱诤瘮?shù) 通常具有低通頻率響應(yīng),而指數(shù) 對(duì)語音信號(hào)有調(diào)制的作用,使頻譜產(chǎn)生移位,即將x(n)頻譜中對(duì)應(yīng)于頻率 的分量平移到零頻。3.1.3 快速傅里葉變換 有限長序列可以通過離散傅里葉變換(DFT)將其頻域也離散化成有限長

7、序列。但其計(jì)算量太大,很難實(shí)時(shí)地處理問題,因此引出了快速傅里葉變換(FFT).1965年,Cooley和Tukey提出了計(jì)算離散傅里葉變換(DFT)的快速算法,將DFT的運(yùn)算量減少了幾個(gè)數(shù)量級(jí)。從此,對(duì)快速傅里葉變換(FFT)算法的研究便不斷深入,數(shù)字信號(hào)處理這門新興學(xué)科也隨FFT的出現(xiàn)和發(fā)展而迅速發(fā)展。根據(jù)對(duì)序列分解與選取方法的不同而產(chǎn)生了FFT的多種算法,基本算法是2DIT和基2DIF。FFT在離散傅里葉反變換、線性卷積和線性相關(guān)等方面也有重要應(yīng)用。 快速傅里葉變換(FFT),是離散傅里葉變換的快速算法,它是根據(jù)離散傅氏變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅里葉變換的算法進(jìn)行改進(jìn)獲得的。它對(duì)

8、傅氏變換的理論并沒有新的發(fā)現(xiàn),但是對(duì)于計(jì)算機(jī)系統(tǒng)或者說數(shù)字系統(tǒng)中應(yīng)用離散傅里葉變換,可以說是進(jìn)了一大步。 設(shè)x(n)為N項(xiàng)的復(fù)數(shù)序列,由DFT變換,任一X(m)的計(jì)算都需要N次復(fù)數(shù)乘法和N-1次復(fù)數(shù)加法,而一次復(fù)數(shù)乘法等于四次實(shí)數(shù)乘法和兩次實(shí)數(shù)加法,一次復(fù)數(shù)加法等于兩次實(shí)數(shù)加法,即使一次復(fù)數(shù)乘法和一次復(fù)數(shù)加法定義成一次“運(yùn)算”(四次實(shí)數(shù)乘法和四次實(shí)數(shù)加法),那么求出N項(xiàng)復(fù)數(shù)序列的X(m),即N點(diǎn)DFT變換大約就需要N2次運(yùn)算。當(dāng)N=1024點(diǎn)甚至更多的的時(shí)候,需要N2=1048576次運(yùn)算,在FFT中,利用WN的周期性和對(duì)稱性,把一個(gè)N項(xiàng)序列(設(shè)N=2k,k為正整數(shù)),分為兩個(gè)N/2項(xiàng)的子序列

9、,每個(gè)N/2點(diǎn)DFT變換需要(N/2)2次運(yùn)算,再用N次運(yùn)算把兩個(gè)N/2點(diǎn)的DFT變換組合成一個(gè)N點(diǎn)的DFT變換。這樣變換以后,總的運(yùn)算次數(shù)就變成N+2(N/2)2=N+N2/2。繼續(xù)上面的例子,N=1024時(shí),總的運(yùn)算次數(shù)就變成了525312次,節(jié)省了大約50%的運(yùn)算量。而如果我們將這種“一分為二”的思想不斷進(jìn)行下去,直到分成兩兩一組的DFT運(yùn)算單元,那么N點(diǎn)的DFT變換就只需要Nlog2N次的運(yùn)算,N在1024點(diǎn)時(shí),運(yùn)算量僅有10240次,是先前的直接算法的1%,點(diǎn)數(shù)越多,運(yùn)算量的節(jié)約就越大,這就是FFT的優(yōu)越性。 離散傅里葉變換X(k)可看成是z變換在單位圓上的等距離采樣值。同樣,X(k

10、)也可看作是序列傅氏變換 的采樣,采樣間隔為 N=2 /N。由此看出,離散傅里葉變換實(shí)質(zhì)上是其頻譜的離散頻域采樣,對(duì)頻率具有選擇性( k=2 k/N),在這些點(diǎn)上反映了信號(hào)的頻譜。 根據(jù)采樣定律,一個(gè)頻帶有限的信號(hào),可以對(duì)它進(jìn)行時(shí)域采樣而不丟失任何信息,F(xiàn)FT變換則說明對(duì)于時(shí)間有限的信號(hào)(有限長序列),也可以對(duì)其進(jìn)行頻域采樣,而不丟失任何信息 。所以只有時(shí)間序列足夠長,采樣足夠密,頻域采樣也就可較好的反映信號(hào)的頻譜趨勢,所以FFT可以用以進(jìn)行連續(xù)信號(hào)的頻譜分析。3.1.4短時(shí)傅里葉反變換(倒譜分析)傅里葉變換建立了信號(hào)從時(shí)域到頻域的變換橋梁,而傅里葉反變換則建立了信號(hào)從頻域到時(shí)域的變換橋梁這兩

11、個(gè)域之間的變換為一對(duì)一映射關(guān)系。我們知道, 可以看作是加窗后函數(shù)的傅里葉變換,為了實(shí)現(xiàn)反變換,將 進(jìn)行頻率采樣,即令 =2k/L,則有 =其中,L為頻域采樣點(diǎn)數(shù)。將 在時(shí)域n上每隔R個(gè)樣本采樣,則可令 = , n=rR, r=1,2,.用 Y ( )求出其離散傅里葉反變換 (n)如下:(n)= 而 ,而可以證明,x(n)和y(n)之間只相差一個(gè)比例因子。他們的關(guān)系如下:3.1.5.Hilbert變換 基于利用DFT求解一個(gè)序列的解析信號(hào)及hilbert變換的理論,利用MATLAB語言編寫了擴(kuò)展函數(shù)yhilbert.m,另外MATLAB工具箱本身也提供了計(jì)算hilbert變換的函數(shù)hilbert

12、.m,其格式為y=Hilbert(x).但需要注意的是,該函數(shù)計(jì)算出的結(jié)果是序列的解析信號(hào),其虛部才是序列的hilbert變換。Hilbert變換具有兩個(gè)性質(zhì):性質(zhì)一:序列x(n)通過Hilbert變換器后,信號(hào)頻譜的幅度不發(fā)生變化,這是因?yàn)閔ilbert變換器是全通濾波器,引起頻譜變化的只是其相位。性質(zhì)二:序列x(n)與其Hilbert變換是正交的。設(shè)計(jì)過程設(shè)計(jì)過程4.1 MATLAB處理音頻信號(hào)的流程 分析和處理音頻信號(hào),首先要對(duì)音頻信號(hào)進(jìn)行采集,MATLAB數(shù)據(jù)采集工具箱提供了一整套命令和函數(shù),通過調(diào)用這些命令和函數(shù),可直接控制聲卡進(jìn)行數(shù)據(jù)采集。Windows自帶的錄音機(jī)程序也可驅(qū)動(dòng)聲卡

13、來采集語音信號(hào),并能保存為WAV格式文件,供MATLAB相關(guān)函數(shù)直接讀取、寫入或播放。本文以WAV格式音頻信號(hào)作為分析處理的輸入數(shù)據(jù),用MATLAB處理音頻信號(hào)的基本流程是:先將WAV格式音頻信號(hào)經(jīng)wavread函數(shù)轉(zhuǎn)換MATLAB列數(shù)組變量;再用MATLAB強(qiáng)大的運(yùn)算能力進(jìn)行數(shù)據(jù)分析和處理,如時(shí)域分析、頻域分析、數(shù)字濾波、信號(hào)合成、信號(hào)變換、識(shí)別和增強(qiáng)等等;處理后的數(shù)據(jù)如是音頻數(shù)據(jù),則可用wavwrite轉(zhuǎn)換成WAV格式文件或用sound、wavplay等函數(shù)直接回放。下面分別介紹MATLAB在音量標(biāo)準(zhǔn)化、語音合成等音頻信號(hào)處理方面的技術(shù)實(shí)現(xiàn)。4.2語音信號(hào)采樣并進(jìn)行頻譜分析4.2.1語音信

14、號(hào)采集 該實(shí)驗(yàn)以兩種男女聲音樂為分析樣本。在MATLAB中使用wavread函數(shù),可得出聲音的采樣頻率FS為16000Hz。利用sound函數(shù),可清晰地聽到女生音樂和男生音樂,采樣數(shù)據(jù)并畫出波形圖4.2.2畫出頻譜圖接下來對(duì)采樣數(shù)據(jù)作快速傅里葉(fft)變換并畫出頻譜圖和以dB為單位的信號(hào)頻譜。 由頻譜圖2可清楚地看到樣本聲音主要以低頻為主。人的語音信號(hào)頻率一般集中在200kHz到4.5kHz之間,從聲音頻譜的包絡(luò)來看,樣本聲音的能量集中在0.1pi(1102.5)以內(nèi),0.4pi以內(nèi)的高頻部分很少。所以信號(hào)寬度近似取為1.1kHz,由采樣定理可得FS2f0=2*1102.5=2205Hz,重

15、放語音后仍可較清晰的聽出原聲,不存在聲音混疊現(xiàn)象。4.2.3語音信號(hào)合成后波形圖和頻譜圖 對(duì)男聲信號(hào)進(jìn)行hilbert變換得到包絡(luò),信號(hào)對(duì)齊男聲包絡(luò)調(diào)制女聲振幅生成的數(shù)據(jù)歸一化處理對(duì)生成文件進(jìn)行FFT分析。做原始語音信號(hào)的時(shí)域圖形和語音信號(hào)的FFT頻譜圖。實(shí)驗(yàn)代碼及結(jié)果實(shí)驗(yàn)代碼及結(jié)果5.1MATLAB源程序%錄音時(shí)間隨便定%錄入女生語音信號(hào)y,fs1=wavread(4.wav); %分析女生信號(hào)y=y(:,1);t=(0:length(y)-1)/fs1;sigLength=length(y);Y=fft(y,sigLength);halflength=floor(sigLength/2);

16、f=fs1*(0:(halflength-1)/sigLength;figure(1);plot(t,y);grid on;axis tight;title(女生語音信號(hào));xlabel(time(s);ylabel(幅度);figure(2);plot(f,abs(Y(1:halflength);grid on;axis tight;title(女生信號(hào)FFT頻譜);xlabel(Hz);ylabel(幅度); %錄入男生語音信號(hào) y1,fs2=wavread(6.wav); %分析男生信號(hào)y1=y1(:,1);t1=(0:length(y1)-1)/fs2;sigLength1=lengt

17、h(y1);Y1=fft(y1,sigLength1);halflength1=floor(sigLength1/2);fl=fs2*(0:(halflength1-1)/sigLength1;figure(3);plot(t1,y1);grid on;axis tight;title(男生語音信號(hào));xlabel(time(s);ylabel(幅度);figure(4);plot(fl,abs(Y1(1:halflength1);grid on;axis tight;title(男生信號(hào)FFT頻譜);xlabel(Hz);ylabel(幅度); %找到女生信號(hào)開始的地方for i=1:sig

18、Length-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; %找到男生信號(hào)開始的地方for j=1:sigLength1-4, 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; %男生信號(hào)進(jìn)行hilbert變換得到包絡(luò)H=hilbert(y1); %信號(hào)對(duì)齊%男生包絡(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);%對(duì)生成文件進(jìn)行FFT分析 x,fs=wavread(hecheng.wav);t=(0:length(x)-1)/fs;sigLength=length(x);X=fft(x,sigLength);halflength=floor

溫馨提示

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

評(píng)論

0/150

提交評(píng)論