第一篇:TMS320C54XDSP語音信號處理
《TMS320C54XDSP語音信號處理》
DSP課程設計報告
學
號:
0906030430
班
級:
通信四班
姓
名:
唐溧
同組姓名:
蔣雙福,梁嘉杰
指導教師:
徐淑芳
二〇一二 年
四 月
十四 日
目錄
《TMS320C54XDSP語音信號處理》..........................................1 DSP課程設計報告......................................................................1 1.課程設計目的...........................................................................3 2.課程設計題目背景描述和要求...................................................3 3.課程設計報告內容....................................................................4 4.總結.........................................................................................9
1.課程設計目的
會使用TI公司的CCS集成開發工具。
熟悉CCS的界面環境,會使用其Simulator仿真功能并能將程序載入到開發板在線調試。
通過CCS和DSP實驗箱設計出語音處理程序,掌握DSPC54x芯片的匯編語法和芯片結構,了解串口的使用原理。
通過C程序和匯編的結合,達到語音的采集,轉換,處理和輸出的目的。調試程序,掌握調試的基本操作。
2.課程設計題目背景描述和要求
2.1 DSP語音處理過程
DSP能實時處理大量訊號、處理速度快且成本低,其高品質的表現結果成為數字信息產品的核心,而現階段音頻訊號透過DSP進行處理的依賴程度也就日益加深。由于人類可接收的聲音源是模擬環境,(圖一)是說明將輸入的模擬訊號轉為數字訊號,再將處理過的數字訊號轉為模擬訊號過程。
《圖一 DSP系統的語音處理方塊圖 》
2.2 DSP 語音處理的應用
DSP的應用領用相當廣泛,在音訊上的工程技術包括回音消除、噪音抑制、語音處理(語音辨識、合成)、VOIP及聲音壓縮解壓;在應用產品上有DVD/CD播放機、音響合成器、數字錄音機、電子語音玩具、助聽器與網絡電話等。其中,音訊處理主要部份又可分為聲音的處理及合成、音訊編碼及語音辨識。
在音樂播放過程中,數字數據的呈現結果最重要是要防止在模擬儲存和運作時所造成的音質損耗。均衡器能將不同頻率范圍的訊號分別濾出,然后再各別放
大或縮小處理,最后再合成,所以能補償訊號的頻率衰減,使音質回復原音,或者也能補償輸入的不足,使音質達到理想狀態。由于人類的聽覺系統在低頻及高頻的接收上靈敏度較差,透過均衡器強化或補足聲音的功能,能彌補人們在聽覺上的盲點。例如:將頻率為100Hz的組成泛音放大,就會讓聲音中100Hz左右的低頻部份聽起來震撼一些,若覺得聲音的低頻部份不夠明顯,也可以用均衡器加以補足。像目前MP3播放器幾乎都有均衡器的功能,使用者可選定或自定不同的播放音場(搖滾、爵士、流行音樂、抒情),充份表現出音樂的個性化。另外,變聲器是透過聲音處理技術改變原始的音源呈現,此種技術可廣泛應用在電話上做安全過濾或者調整播放音調及速度后,達到語音學習的目的,成為高級語言學習機的必備功能。
2.3 課題工作
本課題探討了DSP在語音處理方面的實現方法,包括語音的有效采集,采集的方法和注意事項。并深入研究了語音識別和變聲和特殊效果的實現方法。
2.4 任務分工
梁嘉杰:負責程序編寫
唐
溧:負責算法優化
蔣雙福:負責資料查找、課程設計進度報告編寫
3.課程設計報告內容 3.1 接口電路
C5402 有兩個McBsp 多通道緩沖串行口,提供了全雙工的通信機制和雙緩存的發送寄存器和三緩存的接受寄存器,允許連續傳輸的數據流傳輸,數據長度可以為8,12,16,20,24,32,同時還提供了A律和μ律的壓縮擴展。
語音的輸入是通過自制的兩頭耳機線從手機輸入到DSP的ADC。
3.2 語音采集
實驗首先的工作是采集語音信號,由于有效語音的開始時間并不是程序啟動的時間,如果在程序已啟動就開始采集語音,那么將有相當一段的時間采集的是無效的數據,那么紀錄的將是雜音,而設備的存儲空間是有限(AIC10EVM.cmd 文
件中定義),開始我們想通過語音幅度的判斷由程序自動判別有效采集是否開始。
在程序開始后,先用一段較短的時間重復采集語音信號,并統計他們的平均值,如果他們的平均值大于某個值,就認定有效信號已經開始產生。
將計數控制部分轉移到C語言中,這樣能夠在程序中更加明確,錄制內容的長短。
_READAD50將讀取一次多通道緩沖串行口的數據。并存儲到0x3000。_READAD50: stm 0x3000,ar2 loopa: CALL IfRxRDY1 ldm McBSP1_DRR1,b stl
b,*ar2+ 3.3 語音轉存
Cmd文件中定義了app Data 從0x3200 開始,大小為12k。
我們取的長度為0x8000,存儲的首地址從0x5000開始,這樣能保證數據存儲的地址在指定的范圍內。
為了獲取更合適的數據,可以在正式讀取之前插入空周期或者重復多次采樣過程。
在0x5000開始的數據空間內,存儲了語音的信息。for(k=0;k<0x8000;)
{
READAD50();
px =(int*)(0x3000);
x_ad = *px;
y_da = x_ad;
py =(int*)(0x5000+k);
*py = y_da;
k++;
}
3.4 重復播放
重復播放只需要將存儲的語音信息讀取出來,過程和讀入是相反的。Write程序也是將0x3100的數據輸出,所以只要一直更新數據就可以播放出完整的聲音。
for(;;)
{
for(k=0;k<0x9000;)
{
px =(int*)(0x5000+k);
x_ad = *px;
y_da = x_ad;
py =(int*)(0x3100);
*py = y_da;
WRITEAD50();
k++;
}
} 3.5 實驗改進方向
程序的整個過程都只是簡單的數據轉存,但卻得到了很好的效果,最后的實驗確實達到了重復播放的效果,用同樣的原理,還可以實現聲音倒著播放,以及限定重放次數等效果。
3.6 附錄
/*********************************************************************** ** File Name: AIC10EVM.cmd **********************************************************************/ MEMORY { PAGE 0: /* program space */ VECS: origin = 0x0080, length = 0x007f /* 128bytes vector table space */ PROG: origin = 0x0100, length = 0x24ff /* 8K program memory space */ PAGE 1: /* data space */ SCRA: origin = 0x0060, length = 0x001f /* scratch pad mem space */ STCK: origin = 0x2600, length = 0x04ff /* 1K words for stack */ DAT1: origin = 0x2b00, length = 0x04ff /* 256 words for sys data */ DAT2: origin = 0x3200, length = 0x0e00 /* 12K words for appl data */ }
SECTIONS
{.vectors : {} > VECS PAGE 0 /* interrupt vector table */.text : {} > PROG PAGE 0 /* program code */
.data : {} > PROG PAGE 0 /* initialized data */.coeffs : {} > PROG PAGE 0 /* initialized parameters */.stack : {} > STCK PAGE 1 /* software stack section */.variable : {} > DAT1 PAGE 1 /* uninitialized vars for DSP&AIC10 */.bss : {} > DAT2 PAGE 1 /* uninitialized vars for applications */ } /*********************************************************************** ** End of File –– AIC10EVM.cmd ***********************************************************************/
InitC5402.asm 中部分
_READAD50: stm 0x00ff,ar3 stm 0x3000,ar2
loopa: CALL IfRxRDY1 ldm McBSP1_DRR1,b stl
b,*ar2+;
banz loopa,*ar3-
nop nop
ret nop nop
_WRITEAD50: ; stm 0x00ff,ar3 stm 0x3100,ar2 loopb: CALL IfTxRDY1
ldu *ar2+,B and
#0fffeh,b;mask the LSB stlm
B, McBSP1_DXR1;banz loopb,*ar3-nop nop ret nop
nop
wait:
stm 20h,ar3 loop1:
stm 020h,ar4 loop2: banz loop2,*ar4-banz loop1,*ar3-ret
nop nop nop nop
.end
InitC5402();/* initialize C5402 DSP */
OpenMcBSP();
for(i=0;i<4;i++)
{
for(k=0;k<0x8000;)
{
READAD50();
px =(int*)(0x3000);
x_ad = *px;
y_da = x_ad;
py =(int*)(0x5000+k);
*py = y_da;
k++;
}
}
for(;;)
{
for(k=0;k<0x9000;)
{
px =(int*)(0x5000+k);
x_ad = *px;
y_da = x_ad;
py =(int*)(0x3100);
*py = y_da;
WRITEAD50();
k++;
}
}
4.總結
程序的整個過程都只是簡單的數據轉存,但卻得到了很好的效果,最后的實驗確實達到了重復播放的效果,用同樣的原理,還可以實現聲音倒著播放,以及限定重放次數等效果。
參考文獻
[1] 周發,尉宇 基于DSP 的語音處理的硬件和軟件實現 船艦電子工程 2010年10 期 [2] 湖天 DSP音頻處理程序設計 中國電子在線網TI設計應用C5000超低功耗http://
第二篇:DSP語音信號處理
摘
要
語音信號處理是研究數字信號處理技術和語音信號進行處理的一門學科,是一門新型的學科,是在多門學科基礎上發展起來的綜合性技術,它涉及到數字信號處理、模式識別、語言學。語音信號處理是研究用數字信號處理技術對語音信號處理的一門學科。處理的目的是要得到一些語音參數以便高效的傳輸或存儲;或者是通過處理的某種運算以達到某種用途的要求。語音信號處理又是一門邊緣學科。如上所訴,它是“語言語音學”與“數字信號處理”兩個學科相結合的產物。
語音信號處理屬于信息科學的一個重要分支,大規模集成技術的高度發展和計算機技術的飛速前進,推動了這一技術的發展。在數字音頻技術和多媒體技術迅速發展的今天,傳統的磁帶語音錄放系統因體積大、使用不便、放音不清晰而受到了巨大挑戰。本次課程設計提出的體積小巧,功耗低的數字化語音存儲與回放系統,可以有效的解決傳統的語音錄放系統在電子與信息處理的使用中受到的限制。
本文提出了語音信號處理課程建設的實驗環節中的一些考慮,作為專業課程的學習,實驗內容不能僅僅停留在驗證性實驗上,還應增加實驗延伸的設計要求,是學生加深對理論分析認識的同時,強調培養學生的實際動手能力和知識綜合運用能力。從而提高語音信號的教學和實驗的質量。實驗內容采用MATLAB編程實現,不僅易于語音信號處理的實現,更易引導學生完成實驗延伸的設計。
第一章 緒論
1.1選題背景
在我們的現實生活中從磁帶、錄像帶到CD、VCD、DVD;從黑白電視機、彩色電視機、高清晰度電視機到具有數字信號處理功能的電視機;從留聲機、錄音機到語音信箱;現在正出在模擬信息到數字信息的變革之中,傳統的磁帶語音錄放系統因其體積大,使用不便,在電子與信息處理的使用中受到許多限制。
雖然,目前廣播電視系統尚未實現真正的數字化,相信在不久的將來,真正的數字電視、數字收音機、數字收錄機將進入家庭。所以,研究音頻信號的數字化存儲、處理和回放系統有著很重要的現實意義。
通過設計語音信號實驗箱可以對語音信號實現各種形式的變換,因此學會對語音信號的處理,也可自行研究將此語音處理技術應用到現實生活中。
1.2課題意義
語音信號處理的一門比較實用的電子工程的專業課程,語音是人類獲取信息的重要來源和利用信息的重要手段,通過語言相互傳遞信息是人類最重要的基本功能之一,語音是人類特有的功能,它是創造和記載幾千年來人類文明史的根本手段,是人類最重要、最有效、最常用和最方便的交換信息的形式。
語音信號處理是研究用數字信號處理技術對語音信號進行處理的一門學科,它是一門新興的學科,同時又是綜合性的多學科領域剛也涉及面很廣的交叉學科。
第二章 課程設計要求及系統原理
2.1 課程設計基本要求
(1)學會MATLAB的使用,掌握MATLAB的程序設計方法;
(2)掌握在windows環境下語音信號的采集方法;
(3)掌握數字信號處理的基本概念,基本理論和基本方法;
(4)掌握MATLAB設計方法;
(5)學會用MATLAB對信號進行分析和處理。
2.2 系統基本原理
語音采集原理是,人耳能聽到的聲音是一種范圍為20Hz—20kHz,而一般語音頻率最高為3.4kHz。語音的采集是指語音聲波信號經麥克風和高頻放大器轉換成有一定幅度的模擬量電信號,然后再轉換成數字量的全過程。
本次設計的基本原理是對語音的錄音和放音進行數字化控制。其中,關鍵技術在于:為了增加語音存儲時間,提高存儲器的利用率,采用了非失真壓縮算法對語音信號進行壓縮后再存儲,而在回放時再進行解壓縮;同時,對輸入語音信號進行數字濾波以抑制雜音和干擾,從而確保了語音回放的可靠質量。
通過設計一個GUI實驗箱,并添加相應的控制控件,添加一個聲音文件,通過MATLAB編程,使其通過各種按鈕實現語音信號處理的各種功能,最后做成一個完整的語音信號處理實驗箱。
第三章 設計方案論證
3.1 設計理論依據
3.1.1采樣定理:
在進行模擬/數字信號的轉換過程中,當采樣頻率fs.max大于信號中最高頻率fmax的2倍時,則采樣之后的數字信號完整的保留了原始信號中的信號,一般實際應用中保證采樣頻率為信號最高頻率的5—10倍;采樣定理又稱奈奎斯特定理。
3.1.2采樣頻率:
采樣頻率是指計算機每秒鐘采集多少個聲音樣本,是描述聲音文件的音質、音調、衡量聲卡、聲音文件的質量標準。采樣頻率越高,即采樣的間隔時間越短,則在單位時間內計算機得到的聲音樣本數據就越多,對聲音波形的表示也就越精確,采樣頻率與聲音頻率之間有一定的關系,根據奈奎斯特理論,只有采樣頻率高于聲音信號最高頻率的2倍的時候,才能把數字信號表示的聲音還原成為原來的聲音,這就是說采樣頻率是衡量聲卡采集、記錄和還原聲音文件的質量標準。
3.1.3采樣位數與采樣頻率
采樣位數即采樣值或取樣值,用來衡量聲音波動變化的參數,是指聲卡在采集和播放聲音文件時候使用數字聲音信號的二進制為數。采樣頻率是指錄音設備在一秒鐘內對聲音信號的采樣次數,采樣頻率越高聲音的還原就越真實越自然。
采樣位數和采樣頻率對于音頻接口來說是最為重要的兩個基本指標,也是選擇音頻接口的兩個重要標準。無論采樣頻率如何,理論上來說采樣的位數決定了音頻數據最大的力度范圍。每增加一個采樣位數相當于力度范圍增加了6dB。采樣位數越多則捕捉到的信號越精確。對于采樣率來說你可以想象它類似于一個照相機。顯然采樣率越高,計算機提取的聲音越多,對于原始的還原也越加精確。
第四章 圖形用戶界面設計
4.1 圖形用戶界面概念
圖形用戶界面或圖形用戶接口是指采用圖形方式顯示的計算機操作環境由用戶接口。與早期計算機使用的命令行界面相比,圖形界面對于用戶來說更為簡便易用。
GUI是MATLAB提供的圖形用戶界面開發環境,提供了一系列用于創建圖形用戶界面的工具,從而簡化界面布局和編程工作。
4.2用戶界面設計
4.2.1 GUI設計模板
在MATLAB主窗口中,選擇File菜單中的New菜單項,再選擇其中的GUI命令,就會顯示圖形用戶界面的設計模板。
MATLAB為GUI設計一共準備了四個模板,分別是Blank GUI、GUI with Uicontrols、GUI with Axes and Menu、Modal Question Dialog。
當用戶選擇不同的模板時,在GUI設計模板界面的右邊就會顯示出與該模板對應的GUI圖形。
4.2.2 GUI設計窗口
在GUI設計模板中選中一個模板,然后單擊OK按鈕,就會顯示GUI設計窗口,選擇不同的GUI設計模式時,在GUI設計窗口中顯示的結果是不一樣的。
GUI設計窗口由菜單欄、工具欄、空間工具欄以及圖形對象設計區等部分組成。GUI設計窗口的菜單欄有File、Edit、View、Layout、Tools和Help六個菜單項,使用其中的命令可以完成圖形用戶界面的設計操作。
4.2.3 GUI設計窗口的基本操作
(1)前面板的設計:在GUI設計窗口創建圖形對象后,通過雙擊該對象,就會顯示該對象的屬性編輯器。如下圖所示。例如,創建一個Push Button對象,并設計該對象的屬性值。
圖4-1 按鈕屬性編輯器
通過以上的按鈕屬性編輯器可以根據個人情況對按鈕的名稱、顏色、大小等方面的屬性進行修改,使按鈕在視覺上變的更加完美。
(2)按鈕功能的實現:在GUI設計窗口創建按鈕后,通過右鍵單擊按鈕,選擇View callbacks下的callback對相應的按鈕進行編程,使按鈕實現相應的功能,如下圖所示對按鈕的響應功能進行設置。
圖4-2 按鈕功能編輯器
進入到按鈕程序編輯窗口,通過編程即可實現按鈕的相應功能,如下圖:
圖4-3 按鈕的編程實現界面
通過對各個按鈕控件的修改,和對m文件程序的添加就完成對GUI窗口的設計,最后得到的圖形化操作界面如下圖所示:
圖4-4 圖形化操作界面
4.2.4 語音的錄入與打開
在MATLAB中,[y,fa,bits]=wavread(‘Blip’,[N1 N2]);用于讀取語音,7
采樣值放在向y中,fs表示采樣頻率,bits表示采樣位數。[N1 N2]表示讀取從N1點到N2點的值。
Suond(x,fs,bits);用于對聲音的回放,向量y則就代表了一個信號也就是說可以像處理一個信號表達式一樣處理這個聲音信號。
第五章 課程設計的軟件實現
5.1 部分函數語法格式
讀wav文件: x=wavread(‘filename’)數組a及b中元素相乘: a.*b 創建圖形窗口命令: figure 繪圖函數: plot(x)坐標軸: axis([xmin xmax ymin ymax])坐標軸注解: xlabel(‘?’)ylabel(‘?’)圖例注解: legend(‘?’)一階高通濾波器: y=filter([1-0.09375],1,x)分幀函數: f=enframe(x,len,inc)x為輸入語音信號,len指定了幀長,inc指定幀移,函數返回為nXlen的一個矩陣,每一行都是一幀數據。
5.2語音信號處理的相關函數
5.2.1語音信號的短時譜:
周期性聲門波可表示為:
(5-1)其中,g[n]是聲門波的單周期的波形,p[n]是間隔為P的周期采樣序列。當u[n]通過線性非時變聲道,且該聲道的單位沖擊響應為h[n]時,聲道輸出為:
(5-2)為了觀察一段語音,需要降生到輸出乘以一個一時刻τ 為中心的窗函數 w[n,τ] ,即得到:
(5-3)
這段語音信號的頻域表達式為:
(5-4)
即語音信號的譜包絡為
語譜圖就是現實時變頻譜幅度特征的圖形表達式為:
(5-5)
將語音信號短時譜程序寫入到MATLAB中得到單色語譜圖的波形如下:
圖5-1 語音信號單色語譜圖
5.2.2 自相關方法估計語音信號的聲道參數:
由均方預測誤差最小的得到正則方程:
(5-6)
其中,(5-7)
在最佳解時的誤差為
(5-8)
在自相關法中式5-6,式5-8變為
(5-9)
(5-10)由式5-9和式5-10可列出方程組式5-11
(5-11)
解方程組式5-9求出線性預測系數,通過誤差式5-11可求出增益G
(5-12)
加窗后信號頻譜圖如下:
圖5-2 加窗后信號頻譜圖
通過以上的方法,改變參數分別求得4極點模型頻率響應和6極點模型頻率響應,6極點波形如下圖所示:
圖5-3 六極點波形圖
最后通過以上方法用一個函數分別實現以上三個功能,三個波形顯示在一個界面,通過觀察圖形,查看它們之間的分別。三者比較所得到的波形如下:
圖5-4 三者比較波形圖
5.2.3 基音周期檢測
數據為濁音語音信號speech1_10k(10000樣點/秒)用25ms的漢明窗對語音信號speech1_10k進行加窗處理,并畫出所得到的加窗信號的自相關函數,再用根據中心消波法及三電平中心消波法原理改進程序,最后對比中方法基音檢測的效果并分析結果。
實驗原理及方法
(1)自相關檢測原理:對于離散的數字語音信號序列x(n),如果周期N,則自相關函數也是同周期的周期函數。即:x(n)=x(n+N)。清音信號沒有周期性,他的自相關函數也沒有周期。濁音新海具有準周期性。自相關基音檢測正是利用這一性質對語音信號進行基音檢測的。
(2)中心消波法檢測原理:中心消波處理是使用如下圖所示的中心消波函數進行處理的:
圖5-5 中心消波檢測圖
(3)三電平消波法原理:為了減少自相關計算中的乘法運算,可以把上述中心消波以后的信號y(n)的自相關用兩個信號的互相關代替,其中一個信號是y(n)另一個信號是對y(n)進行三電平量化產生的結果。且這個信號有三種可能的取值,因而這里的互相關計算只需要做加減法,而這個互相關序列的周期性與y(n)的自相關序列是近似相同的。
三電平法對語音信號處理得到的波形如下:
圖5-6 三電平法波形圖
中心消波法得到的波形如下圖:
圖5-7 中心消波法波形圖
5.3 GUI實驗箱操作界面設計
通過對各個控件的編程和對參數的設計,最后得到的GUI實驗箱操作界
面如下圖所示,通過界面上的各個按鈕即可實現相應的功能。
圖5-8 GUI實驗箱操作界面
第六章 心得體會
通過本次課程設計完成了對語音信號的讀取與打開,與課題的要求十分相符;初略的完成了界面的設計,但也存在相當的不足,達到了打開語音文件,顯示已定波形。語音信號處理時語音學與數字信號處理技術相結合的交叉學科,將語音當做一種特殊的信號,即一種“復雜向量”來看待。也就是說,體現了數字信號處理技術。
本次課程設計時希望將數字信號處理技術應用與某一實際領域,這里就是指對語音的處理。作為存儲與計算機中的語音信號,其本身就是離散化了的向量,我們只需要將這些離散的量提取出來美酒可以對其進行處理了。
本次課設,用到了處理數字信號的強有力工具MATLAB,通過MATLAB李的幾個命令函數的調用,很輕易的在實際化語音與數字信號的理論之間搭了一座橋。
最后,還利用了MATLAB的另一強大功能——GUI界面設計。設計出了一個建議的用戶應用界面,可以讓人實現界面操作。
通過本次課程設計讓我更加了解了語音信號處理在現實中的強大的應用空間,同時查閱了很多相關的資料,應用MTALAB軟件來完成,熟練掌握了MATLAB軟件,本次課程設計要求用GUI設計模塊,查閱了很多資料,更加深刻的陸奧了了這方面知識。
本次課程設計,我明白了理論的學習需要在實踐中才能得到鞏固。在課程設計中,只有動手慢慢研究,才能真正了解MATLAB軟件平臺中可以直接設計數字濾波器的各個函數的調用,對設計GUI實驗箱的所有函數的運用有了比較好的認識。
通過這個課程設計,我學到了很多MATLAB和語音信號的知識,提高了自己在語音信號設計方面的知識能力,動手能力和思維能力都得到了一定的提升,希望自己以后可以更多的繼續學習這一門課程設計方面的知識。
附 錄
1.源程序代碼:
參考文獻
[1] 劉慶華 陳紫強《基于MATLAB和DSP的語音信號處理課程的建設》 電氣電子教學學報 2006 10(3):124-128 [2] 張力 《MATLAB在語音信號處理輔助教學中的應用》 電氣電子教學學報 2005 27卷2期:96-99 [3] 鄧立新 楊震《信息技術融入“語音信號處理”課程的教學實踐》電氣電子教學學報 2005 27卷5期:13-16 [4] 胡航,《語音信號處理》 哈爾濱工業大學出版社 2005年2月,第二版:135-137 [5] 張平,《MATLAB基礎與應用》 北京航空航天大學出版社 2007,第二版:85-92 [6] 謝德芳 《數字信號處理》 北京科學出版社 2005,第一版
[7] 張雄偉 《現代語音處理技術及應用》 機械工業出版社 2006,第二版 [8] 吳家安 《語音編碼技術及應用》 機械工業出版社 2006 第一版 [9] 劉幺和 宋庭新 《語音識別與控制應用技術》 科學出版社 2008 第二版
[10] 李昌立 吳善培 《數字語音編碼實用教程》 人民郵電出版社 2004 第一版
[11] 姚天仁 《數字語音處理》 華中科技大學出版社 1992 第二版 [12] 朱敏雄 《計算機語音技術(修訂版)》 北京航空航天大學出版社 2002 第一版
[13] 王炳錫 《語音編碼》 西安電子科技大學出版社 2002 第一版
第三篇:語音信號處理實驗報告要求
實驗一:
1.簡述本次試驗的目的,關于基音周期的理論;
2.使用相關法的同學,給出程序的同時要說明所使用語音段的長度(短時平穩性),解釋怎樣在matlab中實現三電平削波(for...end循環和if elseif else end判決的使用)。給出清濁音兩組截取后的語音信號波形圖、三電平削波后的信號圖、自相關計算后的信號圖。然后根據自相關信號圖上最大峰值和次峰值之間的間隔點數,計算出基音周期和基音頻率;
3.使用倒譜法的同學,要解釋分幀后加窗的方法,給出清濁音其中各一幀的語音信號波形圖,和計算后的倒譜圖。并根據倒譜圖上對應基音周期處的峰值的位置,給出基音周期。4.使用簡化逆濾波的同學,要說明切比雪夫2型低通濾波器的使用方法(cheby2、freqz兩個函數的使用方法、參數意義),給出低通濾波后的信號波形圖、5倍抽取后的波形圖、自相關計算后信號波形圖、5倍插值后的信號波形圖,根據濁音內插后的信號圖上最大峰值和次峰值之間的間隔點數計算基音周期;5.比較所選用的兩種方法的結果。
實驗二:
1.給出倒譜法的程序,解釋漢明窗寬度的選取要求(書上有簡單解釋),解釋怎樣實現倒譜窗的matlab編程方法和倒譜窗寬度的選取(男女生有一定的差別),給出加窗后的信號波形圖、對數譜圖、倒譜圖、加窗后的信號頻譜圖,給出三個共振峰的估值。
2.給出LPC譜估計程序,不同LPC階數時的LPC譜圖,在n=?時,學生自己估計的前三個共振峰的值。
實驗三:
給出錄音的內容,判斷結果。解釋端點檢測的原理、MFCC系數的說明和DTW算法的簡單原理(參考書上都有比較詳細的解釋)。識別的結果的表格和識別的結果正確率(正確的數目,錯誤的數目,正確率)。考慮一下識別錯誤的原因(錄音的效果?端點檢測算法的可靠性?DTW算法的可靠性?等)
第四篇:專業英語7語音信號處理
1、演講的目的是溝通。有幾種方法表征語音通信的潛力。一個高度量化的方法是香農信息論思想的引入。根據信息變換理論,語音可以表示其消息內容或信息。語音特征的另一種表征方式是信號承載的消息信息,i.e.(注:i.e.意思是:即,也就是),如聲波。雖然信息論思路在先進的通信系統中發揮了重要作用,但它是基于波形的語音表示,或一些在實際應用中一直是最有用的參數模型。
2、在考慮語音通信的過程中,開始在大腦中思考消息在揚聲器中的一些抽象的表示形式是有幫助的。雖然產生語音的過程是復雜的,但該消息中的信息最終被轉換成聲學信號。在言語產生的過程中消息的信息可以被認為存在許多不同的表示方式。例如,該消息信息首先被轉換成一組能控制發音機制的神經信號(即,運動舌頭,嘴唇,聲帶等)。發音器官的運動響應于這些神經信號來完成一系列的手勢,其結果是在原始消息中包含的信息的音響波形。
3、信息雖然連通但講話本質上是一個離散的性質的信息,i.e.,即,它可以被有限集合中元素串聯的符號表示,每一個聲音的符號可以被分類,被稱為音素。每種語言都有它自己的獨特的音素,編號通常在30至50之間。例如英語可以表示為一組約42個編號的音素。
4、信息理論關注的中心問題是傳達信息的速率。講話的信息率可以通過發音器官物理上的運動速度粗略估計,人類講話的平均速率每秒約10個音素。如果每個音素表示一個二進制數,那么6位數字代碼足以代表所有的英語音素,設平均增長率為每秒10音素,并且忽略任何相鄰音素的組合,我們得到了一個大約60比特/秒的平均信息語速。換句話說,書面講話包含的信息相當于60位/秒正常講話率。當然一個“真正”的語音信息內容的下界是大大高于這個速度的,上述估計確實需要考慮一些因素,如說話者的身份和情感狀態,說話的速率,聲音的響度,等。
5、在語音通信系統中,語音信號的傳輸、存儲、和處理有許多方法。技術問題導致各種表示形式的語音信號的產生。一般來說,有兩個主要的問題存在于任何一個系統中:一是保護消息內容的語音信號。另一個是語音信號便于傳輸和存儲的表示形式?;蛘咭砸环N靈活的形式表示,這樣修改后不會對語音信號所表示的消息內容產生嚴重退化的影響。
6、語言信號必須這樣表示,信息內容能被聽眾容易的提取,或自動被機器提取。
語音信號的表示形式(而不是消息的內容)可能需要從500到1百萬比特每秒以上的提取速度。這些表示形式的設計和實現,信號處理的方法發揮基礎性作用。
7、一般的信息處理問題可用圖3-22描繪的框圖表示。在語音信號的情況下,說話者就是信源。一般測量或觀察聲波的尺寸。
8、涉及信號處理,首先根據一個給定的模型獲得信號,利用運用程序對信號進行一些更高層次的變換,以便把該信號轉換成一個更方便的形式。在這個過程中的最后一步是報文信息的提取和利用。本步驟可以由人類聽眾或由機器自動進行。例如,一個系統,其功能是自動識別揚聲器從一個給定的發言者發出的語音信號,該語音信號可能使用一個隨時間變化的頻譜表示。
9、因此,語音信號處理涉及兩個任務。一,這是語音信號的波形或參數一般表示形式的獲取手段;二,信號處理在轉換的過程中提供函數幫助,這是信號一般性質的替代形式,但更適合特定的應用程序。
10、我們將探索數字技術在語音信號處理中的作用。數字信號處理涉及離散信號的獲取與表示,伴隨變換理論,涉及和數控程序的實施用來處理離散信號的表示。數字信號的處理目的類似于模擬信號的處理。因此,在語音通信的上下文中單獨挑出數字信號處理技術做特別考慮是合理的。可以列舉一些很重要的原因。首先,最重要的大概是一些極其復雜的信號處理功能可以用數字技術來實施的事實。此外,語音信號處理中常用的算法本質上是離散時間信號處理系統。它們大多不適合作為近似的模擬系統來觀察,的確在許多情況下沒有可用的模擬實施方案。
11、數字信號處理技術在語音處理問題中被首次運用,仿真復雜的模擬系統。最初的觀點來看,模擬系統可以在計算機上進行模擬,避免為了試驗參數選擇和其他設計考慮系統建設的必要性。數字仿真模擬系統的首次應用,需要大量的處理時間。在1960年代中期,一次數字信號處理的革命發生了。主要的主要催化劑是發展快速的計算機和突飛猛進的數字信號處理技術理論。因此,數字信號處理系統具有的優點使得年輕一代有能力來模擬模擬系統的情況變得明朗。目前計算機語音處理系統在實驗室中實現,他們作為一個數字系統,可以作為實施特殊用途的數字硬件或對專用的計算機系統進行精確模擬。
12、除理論發展外,伴隨數字硬件的發展數字處理技術的優點進一步加強以致于超過模擬系統。數字系統非常可靠和緊湊。集成電路技術已經發展到可以把極其
復雜的系統實現在單個芯片上。邏輯運算的速度足以滿足許多信號處理功能所需的巨大數量的計算,可以實現實時語音采樣率。
13、在語音通信系統中使用數字技術有另外的原因。如,如果使用合適的編碼,在非常嘈雜的信道,數字形式的語音信號能可靠地傳輸。語音信號的數字形式與其他形式的數據的相同。因此,可以使用一個通信網絡同時傳輸話音和數據,除解碼外沒有必要區分它們。在安全方面語音信號的傳輸需要數字表示,它具有明顯的優勢超過了模擬系統。為了保密,對信息比特進行加擾,最終能在接收器解讀。這些和許多其他的原因,數字技術正在被越來越多地應用于語音通信問題。
14、考慮應用數字信號處理技術來處理語音通信問題,專注于三個主題它是非常有幫助的:語音信號的數字表示形式,實施先進的處理技術和很大程度上依賴于數字信號處理的應用程序類。
第五篇:語音信號處理與識別
信號系統課程設計報告
歐陽光亮
2012029020025
語音信號處理與識別
目的:理解時域和頻域尺度變換基本概念,掌握信號時頻域分析方法,正確理解采樣定理,準確理解濾波器的概念。內容:
(1)使用Matlab中wavrecord命令錄制一段3秒的語音信號,使用wavplay命令播放,錄制命令和播放命令中的采樣頻率設置成相同和不同兩種情況,對觀察到的現象進行分析并結合課本中的知識對該現象進行解釋;(2)使用不同的采樣頻率錄制一段3秒的語音信號,畫出信號的時域波形和頻譜;找到語音信號的主要頻譜成分所在的帶寬;觀察并分析不同采樣頻率對波形和頻譜的影響;尋找聲音信號不出現明顯失真的最低采樣頻率;(3)錄制一段男生的語音信號和一段女生的語音信號,對兩段音頻信號進行混合,設計濾波器將混合的語音信號分開成單獨的男聲和女聲信號,如果分離效果不好,對原因進行解釋。
Matlab命令:wavrecord, wavplay, wavwrite, wavread, save, load, fft, fftshift, filter, plot, subplot, figure.過程:(1)相同:
fs1=16000;
%取樣頻率 fs2=16000;
%播放頻率 duration=5;
%錄音時間
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是總的采樣點數
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;
wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav
不同:
fs1=16000;
%取樣頻率 fs2=8000;
%播放頻率 duration=5;
%錄音時間
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是總的采樣點數
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;
wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav');現象:第二次播放時,聲音明顯失真。
理由:采樣頻率和播放頻率不一樣時聲音信號會失真。(2)
fs1=16000;
%取樣頻率 fs2=16000;
%播放頻率 duration=5;
%錄音時間
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是總的采樣點數
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;
wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav');
wav=wavread('E:matlabrecord3.wav');Fs=16000;n=length(wav);f=(0:n-1)*16000/n;mag=abs(fft(wav));subplot(2,1,1);plot(wav);subplot(2,1,2);plot(f,mag)
采樣頻率為1600010.5y/幅度0-0.5-101234x/t采樣頻率為16000567x 1084600500400y/幅度***400060008000x/f***16000
fs1=8000;
%取樣頻率 fs2=8000;
%播放頻率 duration=5;
%錄音時間
fprintf('Press any key to start %g seconds of recording...n',duration);
pause;
fprintf('Recording...n');
y=wavrecord(duration*fs1,fs1);
%duration*fs 是總的采樣點數
fprintf('Finished recording.n');
fprintf('Press any key to play the recording...n');
pause;wavplay(y,fs2);wavwrite(y,fs1,'E:matlabrecord3.wav');
wav=wavread('E:matlabrecord3.wav');Fs=8000;n=length(wav);f=(0:n-1)*16000/n;mag=abs(fft(wav));subplot(2,1,1);plot(wav);subplot(2,1,2);plot(f,mag)wavplay(wav,8000)
采樣頻率為8000hz1 0.5y/幅度0-0.5-1 00.511.52x/s采樣頻率為8000hz2.533.5x ***0500y/幅度***00x/hz***16000
由圖可知:語音信號的主要頻譜成分所在的帶寬為(0—1200hz),帶寬為1200hz。
當采樣頻率較小時,頻譜圖上顯示帶寬較大,波形較稀松。
最低采樣頻率應為,聲音信號的最高頻率的兩倍,由圖可知為2400hz。(3)女聲:
wav1=wavread('E:matlabrecord1.wav');wav2=wavread('E:matlabrecord2.wav');wav=wav1+wav2;fp1=800;fp2=1500;fp=[fp1,fp2];fr1=650;fr2=1900;fr=[fr1,fr2];Fs=16000;ap=1;as=40;[n,fn]= buttord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');[b,a]=butter(n,fn);Y1=filter(b,a,wav);Y=fft(Y1);mag=abs(Y);n=length(wav);f=(0:n-1)*16000/n;subplot(3,1,1);mag1=abs(fft(wav));plot(f,mag1)subplot(3,1,2);plot(f,mag);subplot(3,1,3);plot(Y1);wavplay(Y1,16000)
混合400300y/幅度***060008000x/頻率女聲***16000400300y/幅度 2001000 ***00f/hz***160000.20.1y/幅度0-0.1-0.201234x/t567x 1084
男聲:
wav1=wavread('E:matlabrecord1.wav');wav2=wavread('E:matlabrecord2.wav');wav=wav1+wav2;fp1=200;fp2=600;fp=[fp1,fp2];fr1=100;fr2=1000;fr=[fr1,fr2];Fs=16000;ap=3;as=40;[n,fn]= buttord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');[b,a]=butter(n,fn);Y1=filter(b,a,wav);Y=fft(Y1);mag=abs(Y);n=length(wav);f=(0:n-1)*16000/n;subplot(3,1,1);mag1=abs(fft(wav));plot(f,mag1)subplot(3,1,2);plot(f,mag);subplot(3,1,3);plot(Y1);wavplay(Y1,16000)
混合頻譜圖200150y/幅度***30004000x/hz男聲頻譜圖***040y/幅度***8000x/hz男聲時域圖***160000.040.02y/幅度0-0.02-0.0401234x/s567x 1084
分離效果不佳,原因:男女聲頻率有很多重疊的地方。