




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、設(shè)計(jì)任務(wù)及要求1二、語(yǔ)音識(shí)別的簡(jiǎn)單介紹2.1 語(yǔ)者識(shí)別的概念22.2 特征參數(shù)的提取32.3 用矢量量化聚類法生成碼本32.4 VQ 的說(shuō)話人識(shí)別4三、算法程序分析3.1 函數(shù)關(guān)系.43.2 代碼說(shuō)明53.2.1 函數(shù)mfcc53.2.2 函數(shù)disteu53.2.3 函數(shù) vqlbg .63.2.4 函數(shù)test 63.2.5 函數(shù)testDB73.2.6 函數(shù) train 83.2.7 函數(shù) melfb 8四、演示分析.9五、心得體會(huì).11附: GUI 程序代碼12設(shè)計(jì)任務(wù)及要求用 MATLAB 實(shí)現(xiàn)簡(jiǎn)單的語(yǔ)音識(shí)別功能;具體設(shè)計(jì)要求如下:用 MATLAB 實(shí)現(xiàn)簡(jiǎn)單的數(shù)字19的語(yǔ)音識(shí)別功
2、能。二、 語(yǔ)音識(shí)別的簡(jiǎn)單介紹基于VQ的說(shuō)話人識(shí)別系統(tǒng),矢量量化起著雙重作用。在訓(xùn)練階段,把每一個(gè)說(shuō)話者所提取的特征參數(shù)進(jìn)行分類,產(chǎn)生不同碼字所組成的碼本。在識(shí)別 ( 匹配 )階段, 我們用VQ方法計(jì)算平均失真測(cè)度( 本系統(tǒng)在計(jì)算距離d 時(shí), 采用歐氏距離測(cè)度) ,從而判斷說(shuō)話人是誰(shuí)。語(yǔ)音識(shí)別系統(tǒng)結(jié)構(gòu)框圖如圖1 所示 。圖 1 語(yǔ)音識(shí)別系統(tǒng)結(jié)構(gòu)框圖2.1 語(yǔ)者識(shí)別的概念語(yǔ)者識(shí)別就是根據(jù)說(shuō)話人的語(yǔ)音信號(hào)來(lái)判別說(shuō)話人的身份。語(yǔ)音是人的自然屬性之一,由于說(shuō)話人發(fā)音器官的生理差異以及后天形成的行為差異,每個(gè)人的語(yǔ)音都帶有強(qiáng)烈的個(gè)人色彩,這就使得通過(guò)分析語(yǔ)音信號(hào)來(lái)識(shí)別說(shuō)話人成為可能。 用語(yǔ)音來(lái)鑒別說(shuō)話人的
3、身份有著許多獨(dú)特的優(yōu)點(diǎn),如語(yǔ)音是人的固有的特征,不會(huì)丟失或遺忘;語(yǔ)音信號(hào)的采集方便,系統(tǒng)設(shè)備成本低;利用電話網(wǎng)絡(luò)還可實(shí)現(xiàn)遠(yuǎn)程客戶服務(wù)等。因此,近幾年來(lái),說(shuō)話人識(shí)別越來(lái)越多的受到人們的重視。與其他生物識(shí)別技術(shù)如指紋識(shí)別、手形識(shí)別等相比較,說(shuō)話人識(shí)別不僅使用方便,而且屬于非接觸性,容易被用戶接受,并且在已有的各種生物特征識(shí)別技術(shù)中,是唯一可以用作遠(yuǎn)程驗(yàn)證的識(shí)別技術(shù)。因此,說(shuō)話人識(shí)別的應(yīng)用前景非常廣泛:今天, 說(shuō)話人識(shí)別技術(shù)已經(jīng)關(guān)系到多學(xué)科的研究領(lǐng)域,不同領(lǐng)域中的進(jìn)步都對(duì)說(shuō)話人識(shí)別的發(fā)展做出了貢獻(xiàn)。說(shuō)話人識(shí)別技術(shù)是集聲學(xué)、語(yǔ)言學(xué)、計(jì)算機(jī)、信息處理和人工智能等諸多領(lǐng)域的一項(xiàng)綜合技術(shù),應(yīng)用需求將十分廣闊
4、。在吃力語(yǔ)音信號(hào)的時(shí)候如何提取信號(hào)中關(guān)鍵的成分尤為重要。語(yǔ)音信號(hào)的特征參數(shù)的好壞直接導(dǎo)致了辨別的準(zhǔn)確性。2.2 特征參數(shù)的提取對(duì)于特征參數(shù)的選取,我們使用mfcc 的方法來(lái)提取。MFCC參數(shù)是基于人的聽(tīng)覺(jué)特性利用人聽(tīng)覺(jué)的屏蔽效應(yīng),在Mel 標(biāo)度頻率域提取出來(lái)的倒譜特征參數(shù)。MFCC參數(shù)的提取過(guò)程如下:1. 對(duì)輸入的語(yǔ)音信號(hào)進(jìn)行分幀、加窗,然后作離散傅立葉變換,獲得頻譜分布信息。設(shè)語(yǔ)音信號(hào)的DFT為:N 1j 2 nkXa(k)x(n)e N ,0 k N 1( 1)n1其中式中x(n) 為輸入的語(yǔ)音信號(hào),N表示傅立葉變換的點(diǎn)數(shù)。2. 再求頻譜幅度的平方,得到能量譜。3. 將能量譜通過(guò)一組Mel
5、 尺度的三角形濾波器組。我們定義一個(gè)有M個(gè)濾波器的濾波器組(濾波器的個(gè)數(shù)和臨界帶的個(gè)數(shù)相近),采用的濾波器為三角濾波器,中心頻率為f(m),m=1,2,3, · · · , M本系統(tǒng)取M=100。4. 計(jì)算每個(gè)濾波器組輸出的對(duì)數(shù)能量。N12S(m) ln( | Xa(k) |2 Hm(k),( 2)0mM1其中 H m (k) 為三角濾波器的頻率響應(yīng)。5. 經(jīng)過(guò)離散弦變換(DCT)得到MFC系數(shù)。CM1C(n) S ( m)cos( n(m 0.5/ m),(3) m00nN1MFCC系數(shù)個(gè)數(shù)通常取20 30, 常常不用0 階倒譜系數(shù),因?yàn)樗从车氖穷l譜能量,故在
6、一般識(shí)別系統(tǒng)中,將稱為能量系數(shù),并不作為倒譜系數(shù),本系統(tǒng)選取 20 階倒譜系數(shù)。2.3 用矢量量化聚類法生成碼本我們將每個(gè)待識(shí)的說(shuō)話人看作是一個(gè)信源,用一個(gè)碼本來(lái)表征。碼本是從該說(shuō)話人的訓(xùn)練序列中提取的MFCC特征矢量聚類而生成。只要訓(xùn)練的序列足夠長(zhǎng),可認(rèn)為這個(gè)碼本有效地包含了說(shuō)話人的個(gè)人特征,而與講話的內(nèi)容無(wú)關(guān)。本系統(tǒng)采用基于分裂的LBG的算法設(shè)計(jì)VQ碼本,Xk(k 1,2, ,K)為訓(xùn)練序列, B為碼本。具體實(shí)現(xiàn)過(guò)程如下:1. 取提取出來(lái)的所有幀的特征矢量的型心( 均值 ) 作為第一個(gè)碼字矢量B1。2. 將當(dāng)前的碼本Bm根據(jù)以下規(guī)則分裂,形成2m個(gè)碼字。BmBm(1)BmBm(1)4)其中
7、m從1 變化到當(dāng)前的碼本的碼字?jǐn)?shù),3. 根據(jù)得到的碼本把所有的訓(xùn)練序列兩個(gè)公式計(jì)算訓(xùn)練矢量量化失真量的總和是分裂時(shí)的參數(shù),本文 =0.01 。( 特征矢量) 進(jìn)行分類,然后按照下面Dn以及相對(duì)失真(n為迭代次數(shù),初始n=0, D 1 =,B為當(dāng)前的碼書(shū)),若相對(duì)失真小于某一閾值 ,迭代結(jié)束,當(dāng)前2m個(gè)碼字的碼書(shū),轉(zhuǎn)。否則,轉(zhuǎn)下一步。 量化失真量和:KD(n) min d(Xk,B)( 5)k1相對(duì)失真:6)D(n1) DnDn4. 重新計(jì)算各個(gè)區(qū)域的新型心,得到新的碼書(shū),轉(zhuǎn)3。5. 重復(fù) , 和步, 直到形成有M個(gè)碼字的碼書(shū)(M 是所要求的碼字?jǐn)?shù)) ,其中D0=10000。2.4 VQ 的說(shuō)話
8、人識(shí)別設(shè)是未知的說(shuō)話人的特征矢量X1, ,XT, 共有T幀是訓(xùn)練階段形成的碼書(shū),表示碼書(shū)第m個(gè)碼字,每一個(gè)碼書(shū)有M個(gè)碼字。 再計(jì)算測(cè)試者的平均量化失真D,并設(shè)置一個(gè)閾值,若D小于此閾值,則是原訓(xùn)練者,反之則認(rèn)為不是原訓(xùn)練者。D 1/Tmind(xj ,Bm) ( 7)j11mM3、 算法程序分析在具體的實(shí)現(xiàn)過(guò)程當(dāng)中,采用了 matlab 軟件來(lái)幫助完成這個(gè)項(xiàng)目。在 matlab中主要由采集,分析,特征提取,比對(duì)幾個(gè)重要部分。以下為在實(shí)際的操作中,具體用到得函數(shù)關(guān)系和作用一一列舉在下面。3.1 函數(shù)關(guān)系主要有兩類函數(shù)文件Train.m 和 Test.m在 Train.m 調(diào)用 Vqlbg.m 獲
9、取訓(xùn)練錄音的vq 碼本, 而 Vqlbg.m 調(diào)用 mfcc.m獲取單個(gè)錄音的mel 倒譜系數(shù),接著 mfcc.m 調(diào)用 Melfb.m- 將能量譜通過(guò)一組Mel 尺度的三角形濾波器組。在 Test.m 函數(shù)文件中調(diào)用Disteu.m 計(jì)算訓(xùn)練錄音(提供vq 碼本)與測(cè)試錄音(提供mfcc) mel 倒譜系數(shù)的距離,即判斷兩聲音是否為同一錄音者提供。Disteu.m 調(diào)用 mfcc.m 獲取單個(gè)錄音的mel 倒譜系數(shù)。mfcc.m 調(diào)用Melfb.m-將能量譜通過(guò)一組Mel 尺度的三角形濾波器組。3.2 具體代碼說(shuō)明3.2.1 函數(shù) mffc:function r = mfcc(s, fs)m
10、 = 100;n = 256;1 = length(s);nbFrame = floor(l - n) / m) + 1; %沿 - 方向取整for i = 1:nfor j = 1:nbFrameM(i, j) = s(j - 1) * m) + i); %對(duì)矩陣M賦值endendh = hamming(n); % 加 hamming 窗,以增加音框左端和右端的連續(xù)性M2 = diag(h) * M;for i = 1:nbFrameframe(:,i) = fft(M2(:, i); %對(duì)信號(hào)進(jìn)行快速傅里葉變換FFTendt = n / 2;tmax = l / fs;m = melfb(
11、20, n, fs); %將上述線性頻譜通過(guò)Mel 頻率濾波器組得到Mel 頻譜 , 下面在將其轉(zhuǎn)化成對(duì)數(shù)頻譜n2 = 1 + floor(n / 2);z = m * abs(frame(1:n2, :).2;r = dct(log(z); % 將上述對(duì)數(shù)頻譜,經(jīng)過(guò)離散余弦變換(DCT)變換到倒譜域,即可得到Mel 倒譜系數(shù)(MFCC參數(shù))3.2.2 函數(shù) disteu- 計(jì)算測(cè)試者和模板碼本的距離function d = disteu(x, y)M, N = size(x); %音頻x 賦值給【M, N】M2, P = size(y); %音頻y 賦值給【M2, P】if (M = M2)
12、error(' 不匹配! ') % 兩個(gè)音頻時(shí)間長(zhǎng)度不相等endd = zeros(N, P);if (N < P)% 在兩個(gè)音頻時(shí)間長(zhǎng)度相等的前提下copies = zeros(1,P);for n = 1:Nd(n,:) = sum(x(:, n+copies) - y) .2, 1);endelsecopies = zeros(1,N);for p = 1:Pd(:,p) = sum(x - y(:, p+copies) .2, 1)' end% 成對(duì)歐氏距離的兩個(gè)矩陣的列之間的距離endd = d.0.5;3.2.3 函數(shù) vqlbg- 該函數(shù)利用矢量量化
13、提取了音頻的vq 碼本function r = vqlbg(d,k)e = .01;r = mean(d, 2);dpr = 10000;for i = 1:log2(k)r = r*(1+e), r*(1-e);while (1 = 1)z = disteu(d, r);m,ind = min(z, , 2);t = 0;for j = 1:2ir(:, j) = mean(d(:, find(ind = j), 2);x = disteu(d(:, find(ind = j), r(:, j); for q = 1:length(x)t = t + x(q);endendif (dpr -
14、 t)/t) < e) break;elsedpr = t; endendend3.2.4 函數(shù) testfunction finalmsg = test(testdir, n, code)for k = 1:n% read test sound file of each speakerfile = sprintf('%ss%d.wav', testdir, k);s, fs = wavread(file);v = mfcc(s, fs);%distmin = 4;%d = disteu(v, code1); %得到測(cè)試人語(yǔ)音的mel 倒譜系數(shù)閾值設(shè)置處就判斷一次,因?yàn)槟?/p>
15、板里面只有一個(gè)文件計(jì)算得到模板和要判斷的聲音之間的23變換得到一個(gè)距離的量dist = sum(min(d,2) / size(d,1); %測(cè)試閾值數(shù)量級(jí)msgc = sprintf(' 與模板語(yǔ)音信號(hào)的差值為:%10f ', dist);disp(msgc);% 此人匹配if dist <= distmin % msg = sprintf('求 !n', k);finalmsg = '定disp(msg);end% 此人不匹配一個(gè)閾值,小于閾值,則就是這個(gè)人。第 %d 位說(shuō)話者與模板語(yǔ)音信號(hào)匹配, 符合要此位說(shuō)話者符合要求!' % 界面
16、顯示語(yǔ)句,可隨意設(shè)if dist > distminmsg = sprintf('第 %d位說(shuō)話者與模板語(yǔ)音信號(hào)不匹配, 不符合要求 !n', k);finalmsg= ' 此位說(shuō)話者不符合要求!'%界面顯示語(yǔ)句,可隨意設(shè)定disp(msg);endend3.2.5 函數(shù) testDB這個(gè)函數(shù)實(shí)際上是對(duì)數(shù)據(jù)庫(kù)一個(gè)查詢, 根據(jù)測(cè)試者的聲音, 找相應(yīng)的文件, 并且給出是誰(shuí)的提示function testmsg = testDB(testdir, n, code) nameList='1','2','3','
17、;4','5','6','7','8','9' ;% 這個(gè)是我們要識(shí)別的9個(gè)數(shù)for k = 1:n%數(shù)據(jù)庫(kù)中每一個(gè)說(shuō)話人的特征file = sprintf('%ss%d.wav', testdir, k);%找出文件的路徑s, fs = wavread(file);對(duì)找到的文件取mfcc變換v = mfcc(s, fs); distmin = inf;k1 = 0;for l = 1:length(code)d = disteu(v, codel);dist = sum(min(d,2)
18、/ size(d,1);if dist < distmindistmin = dist;% 者的識(shí)別這里和 test 函數(shù)里面一樣但多了一個(gè)具體語(yǔ)k1 = l;endendmsg=nameListk1 msgbox(msg);end3.2.6 函數(shù) train- 該函數(shù)就是對(duì)音頻進(jìn)行訓(xùn)練,也就是提取特征參數(shù)function code = train(traindir, n)k = 16;for i = 1:n% number of centroids required對(duì)數(shù)據(jù)庫(kù)中的代碼形成碼本file = sprintf('%ss%d.wav', traindir, i);
19、 disp(file);s, fs = wavread(file);v = mfcc(s, fs);codei = vqlbg(v, k);%話人的VQ碼本end3.2.7 函數(shù) melfb- 確定矩陣的濾波器function m = melfb(p, n, fs)計(jì)算 MFCC's 提取特征特征,返回值是Mel 倒譜系數(shù),是一個(gè)log 的 dct 得到的訓(xùn)練VQ碼本通過(guò)矢量量化,得到原說(shuō)f0 = 700 / fs;fn2 = floor(n/2);lr = log(1 + 0.5/f0) / (p+1);% convert to fft bin numbers with 0 for
20、DC term bl = n * (f0 * (exp(0 1 p p+1 * lr) - 1);直接轉(zhuǎn)換為FFT的數(shù)字模型b1 = floor(bl(1) + 1;b2 = ceil(bl(2);b3 = floor(bl(3);b4 = min(fn2, ceil(bl(4) - 1;pf = log(1 + (b1:b4)/n/f0) / lr;fp = floor(pf);pm = pf - fp;r = fp(b2:b4) 1+fp(1:b3);c = b2:b4 1:b3 + 1;v = 2 * 1-pm(b2:b4) pm(1:b3);m = sparse(r, c, v, p,
21、 1+fn2)4、 演示分析我們的功能分為兩部分: 對(duì)已經(jīng)保存的9 個(gè)數(shù)字的語(yǔ)音進(jìn)行辨別和實(shí)時(shí)的判斷說(shuō)話人說(shuō)的是否為一個(gè)數(shù). 在前者的實(shí)驗(yàn)過(guò)程中, 先把 9 個(gè)數(shù)字的聲音保存成 wav的格式, 放在一個(gè)文件夾中, 作為一個(gè)檢測(cè)的數(shù)據(jù)庫(kù). 然后對(duì)檢測(cè)者實(shí)行識(shí)別 , 系統(tǒng)給出提示是哪個(gè)數(shù)字.在第二個(gè)功能中, 實(shí)時(shí)的錄取一段說(shuō)話人的聲音作為模板, 提取 mfcc 特征參數(shù) , 隨后緊接著進(jìn)行遇著識(shí)別, 也就是讓其他人再說(shuō)相同的話, 看是否是原說(shuō)話者.實(shí)驗(yàn)過(guò)程及具體功能如下:先打開(kāi) Matlab 使 Current Directory 為錄音及程序所所在的文件夾再打開(kāi)文件“enter .m”,點(diǎn)run
22、 運(yùn)行,打開(kāi)enter 界面,點(diǎn)擊“進(jìn)入”按鈕進(jìn)入系統(tǒng)。(注:文件包未封裝完畢,目前只能通過(guò)此方式打開(kāi)運(yùn)行。) (如下圖 figure1 )figure1在對(duì)數(shù)據(jù)庫(kù)中已有的語(yǔ)者進(jìn)行識(shí)別模塊選擇載入語(yǔ)音庫(kù)語(yǔ)音個(gè)數(shù);點(diǎn)擊語(yǔ)音庫(kù)錄制模版進(jìn)行已存語(yǔ)音信息的提取;點(diǎn)擊錄音 -test 進(jìn)行現(xiàn)場(chǎng)錄音;點(diǎn)擊語(yǔ)者判斷進(jìn)行判斷數(shù)字,并顯示出來(lái)。在實(shí)時(shí)語(yǔ)者識(shí)別模塊點(diǎn)擊實(shí)時(shí)錄制模板上的“錄音 -train ”按鈕 , 是把新語(yǔ)者的聲音以wav格式存放在”實(shí)時(shí)模板”文件夾中 , 接著點(diǎn)擊“實(shí)時(shí)錄制模板”,把新的模板提取特征值。隨后點(diǎn)擊實(shí)時(shí)語(yǔ)者識(shí)別模板上的“錄音 -train ”按鈕 , 是把語(yǔ)者的聲音以wav格式存放
23、在”測(cè)試”文件夾中, 再點(diǎn)擊 “實(shí)時(shí)語(yǔ)者識(shí)別”, 在對(duì)測(cè)得的聲音提取特征值的同時(shí),和實(shí)時(shí)模板進(jìn)行比對(duì),然后得出是否是實(shí)時(shí)模板中的語(yǔ)者。另外面板上的播放按鈕都是播放相對(duì)應(yīng)左邊錄取的聲音。想要測(cè)量多次,只要接著錄音,自動(dòng)保存,然后程序比對(duì)音頻就可以。退出只要點(diǎn)擊菜單File/Exit ,退出程序。程序運(yùn)行截圖:( fig.2 )運(yùn)行后系統(tǒng)界面5、 心得體會(huì)實(shí)驗(yàn)表明,該系統(tǒng)能較好地進(jìn)行語(yǔ)音的識(shí)別,同時(shí), 基于矢量量化技術(shù)() 的語(yǔ)音識(shí)別系統(tǒng)具有分類準(zhǔn)確,存儲(chǔ)數(shù)據(jù)少,實(shí)時(shí)響應(yīng)速度快等綜合性能好的特點(diǎn)矢量量化技術(shù)在語(yǔ)音識(shí)別的應(yīng)用方面,尤其是在孤立詞語(yǔ)音識(shí)別系統(tǒng)中得到很好的應(yīng)用,特別是有限狀態(tài)矢量量化技術(shù)
24、,對(duì)于語(yǔ)音識(shí)別更為有效。通過(guò)這次課程設(shè)計(jì),我對(duì)語(yǔ)音識(shí)別有了更加形象化的認(rèn)識(shí),也強(qiáng)化了MATLAB的應(yīng)用,對(duì)將來(lái)的學(xué)習(xí)奠定了基礎(chǔ)。the existingvalue pairsvia varargin.附: GUI 程序代碼function varargout = untitled2(varargin)% UNTITLED2 M-file for untitled2.fig% UNTITLED2, by itself, creates a new UNTITLED2 or raises % singleton*.% H = UNTITLED2 returns the handle to a ne
25、w UNTITLED2 or the handleto% the existing singleton*.%UNTITLED2('CALLBACK',hObject,eventData,handles,.) calls thelocal% function named CALLBACK in UNTITLED2.M with the given input arguments.%UNTITLED2('Property','Value',.) creates a new UNTITLED2 orraises the% existing single
26、ton*. Startingfrom the left, propertyare% applied to the GUI before untitled2_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. Allinputs are passed to untitled2_OpeningFcn% *See GUI Options on GUIDE's Tools menu. Choose "GUI allo
27、ws only one% instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help untitled2 % Last Modified by GUIDE v2.5 08-Jun-2010 23:58:57% Begin initialization code - DO NOT EDITgui_Singleton = 1;gu
28、i_State = struct('gui_Name' ,mfilename,.'gui_Singleton', gui_Singleton,'gui_OpeningFcn', untitled2_OpeningFcn,'gui_OutputFcn', untitled2_OutputFcn,'gui_LayoutFcn', ,.'gui_Callback', );if nargin && ischar(varargin1)gui_State.gui_Callback = str2f
29、unc(varargin1); end if nargoutvarargout1:nargout = gui_mainfcn(gui_State, varargin:);elsegui_mainfcn(gui_State, varargin:);end % End initialization code - DO NOT EDIT % - Executes just before untitled2 is made visible.function untitled2_OpeningFcn(hObject, eventdata, handles, varargin)% This functio
30、n has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% varargin command line arguments to untitled2 (see VARARGIN)% Choose default command line output for untitled2
31、 handles.output = hObject;% Update handles structure guidata(hObject, handles);'tag', 'axes13');) );'tag', 'axes12');axes(findobj( imshow( '3.jpg axes(findobj(imshow( '1.jpg');% UIWAIT makes untitled2 wait for user response (see UIRESUME) % uiwait(handles.
32、figure1);% - Outputs from this function are returned to the command line.function varargout = untitled2_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB
33、% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure varargout1 = handles.output;% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata
34、 reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)Channel_Str=get(handles.popupmenu3,'String' );'Value' )?±?Channel_Number=str2double(Channel_Strget(handles.popupmenu3,);global moodle;moodle = train( ' 模版 '
35、; ,Channel_Number)%? y?óó ?ò ?DDìáè % - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handglobal data1;globa
36、l moodle ;test( ' 測(cè)試 ' ,1,moodle)%êê±ó?ò ?ì 2a% function Open_Callback(hObject, eventdata, handles)% hObject handle to Open (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) f
37、ilename,pathname=uigetfile('' )file=get(handles.edits,filename,pathname) y,f,b=wavread(file);% function Exit_Callback(hObject, eventdata, handles)% hObject handle to Exit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user dat
38、a (see GUIDATA) exit% function About_Callback(hObject, eventdata, handles)% hObject handle to About (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)H= ' 語(yǔ)者識(shí)別' helpdlg(H, 'help text' )% function Fi
39、le_Callback(hObject, eventdata, handles)% hObject handle to File (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% function Edit_Callback(hObject, eventdata, handles)% hObject handle to Edit (see GCBO)% eventdata
40、 reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%function Help_Callback(hObject, eventdata, handles)% hObject handle to Help (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles
41、 and user data (see GUIDATA)% - Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)ms
42、g= ' 請(qǐng)速度錄音?'msgbox(msg)clearglobal data1;%global dataDN1;AI = analoginput( 'winsound' );chan = addchannel(AI,1:2);duration = 3;%1 second acquisitionset(AI, 'SampleRate' ,8000)ActualRate = get(AI,'SampleRate' );set(AI, 'SamplesPerTrigger' ,duration*ActualRate)s
43、et(AI, 'TriggerType' , 'Manual' )blocksize = get(AI,'SamplesPerTrigger' );Fs = ActualRate;start(AI)trigger(AI)data1,time,abstime,events = getdata(AI);fname=sprintf( 'E:Matlab 語(yǔ)音識(shí)別系統(tǒng)實(shí)時(shí)模版s1.wav')%dataDN1=wden(data1,'heursure','s','one',5,'sym
44、8');denoisewavwrite(data1,fname)msgbox(fname)% - Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user
45、 data (see GUIDATA)global data1;%global dataDN1;sound(data1)%sound(dataDN1)axes(handles.axes1) %set to plot at axes1plot(data1);%plot(dataDN1);xlabel( ' 訓(xùn)練采樣序列' ),ylabel( ' 信號(hào)幅 ' );%xlabel('? á· 2é ?ù DòáD'),ylabel('sym8D?2 ¨ ? ?oó?
46、D?o?·ù');grid on ;clear% - Executes on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see G
47、UIDATA)msg= ' 請(qǐng)速度錄音?'msgbox(msg)clearglobal data2;%global dataDN2;AI = analoginput( 'winsound' );chan = addchannel(AI,1:2);duration = 3;%1 second acquisitionset(AI, 'SampleRate' ,8000)ActualRate = get(AI,'SampleRate' );set(AI, 'SamplesPerTrigger' ,duration*Act
48、ualRate)set(AI, 'TriggerType' , 'Manual' )blocksize = get(AI,'SamplesPerTrigger' );Fs = ActualRate;start(AI)trigger(AI)data2,time,abstime,events = getdata(AI);fname=sprintf( 'E:Matlab 語(yǔ)音識(shí)別系統(tǒng)測(cè)試 s1.wav')%dataDN1=wden(data1,'heursure','s','one',5,
49、'sym8');denoisewavwrite(data2,fname)msgbox(fname)% - Executes on button press in pushbutton10.function pushbutton10_Callback(hObject, eventdata, handles)% hObject handle to pushbutton10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handl
50、es and user data (see GUIDATA)global data2;%global dataDN2;sound(data2)%sound(dataDN2)axes(handles.axes2) %set to plot at axes1plot(data2);%plot(dataDN2);xlabel( ' 測(cè)試采樣序列' ),ylabel( ' 信號(hào)幅 ' );%xlabel('2a ê ?2é ?ù DòáD'),ylabel('sym8D?2 ¨ ? ?o
51、ó?D?o?·ù');%grid on ;clear% - Executes on button press in pushbutton11.function pushbutton11_Callback(hObject, eventdata, handles)% hObject handle to pushbutton11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user
52、data (see GUIDATA) global moodle ;testDB( ' 測(cè)試 ' ,1,moodle)% - Executes on button press in pushbutton12.function pushbutton12_Callback(hObject, eventdata, handles)% hObject handle to pushbutton12 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure
53、with handles and user data (see GUIDATA)global moodle;moodle = train( ' 實(shí)時(shí)模板' ,1)% - Executes on selection change in popupmenu3.function popupmenu3_Callback(hObject, eventdata, handles)% hObject handle to popupmenu3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents =
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人土地?zé)o償贈(zèng)與合同范本
- 個(gè)人家政保潔合同范本
- 制定合同范本 作用
- fidic條件合同范本
- 買(mǎi)賣(mài)延期合同范本
- 醫(yī)用機(jī)甲租賃合同范本
- 凈水設(shè)備售賣(mài)合同范本
- 勞動(dòng)合同范本藥店
- 出租和諧公寓合同范本
- 修建垃圾臺(tái)合同范本
- 侯馬北車輛段2023年運(yùn)用機(jī)考復(fù)習(xí)題-曲沃作業(yè)場(chǎng)
- 手術(shù)室停電和突然停電應(yīng)急預(yù)案PPT演示課件
- 職業(yè)病危害告知卡(油漆)
- 抗震支吊架安裝檢驗(yàn)批
- 橋梁各部位加固及橋梁維修技術(shù)總結(jié)
- 絲綢之路簡(jiǎn)介
- GB/T 40336-2021無(wú)損檢測(cè)泄漏檢測(cè)氣體參考漏孔的校準(zhǔn)
- 馬工程教材《公共財(cái)政概論》PPT-第十一章 政府預(yù)算
- 第九章臺(tái)灣近現(xiàn)代史略
- FZ/T 01085-2009熱熔粘合襯剝離強(qiáng)力試驗(yàn)方法
- 人工智能發(fā)展史課件
評(píng)論
0/150
提交評(píng)論