freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于連續(xù)隱馬爾科夫模型的語音識(shí)別-閱讀頁

2024-11-27 20:57本頁面
  

【正文】 三、使用多個(gè)觀察值序列訓(xùn)練 實(shí)際中,訓(xùn)練一個(gè) HMM,經(jīng)常要用到不止一個(gè)觀察值序列,那么,對(duì)于 K 個(gè)觀察值序列訓(xùn)練 HMM 時(shí),要對(duì)BaumWelch 算法的重估公式加以修正。這個(gè)問題的一種 解決方法是增加訓(xùn)練數(shù)據(jù),這往往是難以辦到的。第三種可能的解決辦法是合并兩個(gè)模型的參數(shù),即對(duì)兩個(gè)針對(duì)同一事件的表示不同程度的細(xì)節(jié)和隱健性的模型進(jìn)行合并。而事實(shí)上,在實(shí)際語音識(shí)別測(cè)試時(shí),這些觀 39 察值矢量又可能出現(xiàn),因而需要對(duì)訓(xùn)練好的模型進(jìn)行平滑處理,而一般為了避免過分平滑。 合并兩個(gè) HMM 的問題可以表述為 λ= ωλ1+( 1— ω) λ2。因此,問題的關(guān)鍵就是合并權(quán)值 ω的估計(jì)。但這中方法的局限也是很明顯的:過分依賴于人的經(jīng)驗(yàn)判斷,而且工作量也很大。這種方法最早是由 Jelinek 提出,隨后被廣泛使用在基于 HMM 的語音識(shí)別系統(tǒng)中,它的基本思想為:設(shè) b1jk 和 b2jk為 λ1和 λ2模型中狀態(tài)j 對(duì)應(yīng)的觀察值概率, bjk 為 λ 中狀態(tài) j 對(duì)應(yīng)的觀察值概率,那么,由上式有: bjk= ωb1jk+( 1ω) b2jk 此式可以理解為 λ 模型中狀態(tài) j 被 3 個(gè)狀態(tài) j*、 j1和 j2所取代。那么,估計(jì)權(quán)值ω 的問題就轉(zhuǎn)化為一個(gè)典型的 HMM 問題,因此,由 HMM 訓(xùn)練算法就可直接估計(jì)出權(quán)值 ω。因此,要求用以估計(jì) λ1和 λ2。由此得到很多 ω 的值,再用一個(gè)循環(huán)遞歸處理,可以求出多由的權(quán)值 ω。雖然進(jìn)來有人給出了其快速算法,但在實(shí)際應(yīng)用中完整地實(shí)現(xiàn)消去插值法來估計(jì)權(quán)值 ω仍 然相當(dāng)困難。 41 另外,從 BaumWelch 算法的重估公式可以看出推導(dǎo)出一種 HMM 相對(duì)可靠性度量方法。這種估計(jì)權(quán)值的方法可以簡(jiǎn)述如下。由此,可以認(rèn)為,正是狀態(tài)數(shù)目描述了 HMM 的相對(duì)可靠程度。 由于這種估計(jì)權(quán)值的方法由 BaumWelch 算法中重估公式導(dǎo)出,因而在最大似然意義上是最佳的,而其,對(duì)每一個(gè)狀態(tài)都選取一個(gè)合并的權(quán)值,而不是對(duì)整個(gè)待合并的 HMM 選取權(quán)值,除了保存模型參數(shù)之外,還應(yīng)保存相應(yīng)的狀態(tài)數(shù)目,因此,需占用較多的存儲(chǔ)空間。 二、 MATLAB 簡(jiǎn)介 MATLAB 是 MathWorks 公司開發(fā)的科學(xué)計(jì)算機(jī),其名稱取自 MATrix LABoratory。此后, MATLAB 又推出了許多版本,隨之,MATLAB 的功能也越來越強(qiáng)大, 工具箱也不斷增加,系統(tǒng)越來越龐大。 而計(jì)算觀察向量 x 對(duì)于某個(gè) HMM 狀態(tài)的輸出概率,也就是 x 對(duì)該狀態(tài)的 若干高斯混合元的輸出概率的線性組合,用下面的代碼來實(shí)現(xiàn)。 for j = 1: m = (j,:)。 w = (j)。 end % 加上 realmin, 以防止 中計(jì)算 log(prob)時(shí)溢出 if prob==0, prob=realmin。 它們都是 T N 的矩陣,分別保存為 alpa 和 beta,另外還要保留計(jì)算過程中用到的標(biāo)定系數(shù)數(shù)組 c,這在 Baum- Welch訓(xùn)練算法中會(huì)用到。 46 計(jì)算完畢,將 c、 alpha、 beta、 ksai 和 gama 組裝到結(jié)構(gòu) param中,作為輸出變量返回。 %序列的 長(zhǎng)度 init = 。 %轉(zhuǎn)移概率 mix = 。 %HMM 狀態(tài)數(shù) 47 % 給定觀察序列 O, 計(jì)算前向概率 alpha alpha = zeros(T,N)。 for i = 1:N alpha(1,i) = init(i) * mixture(mix(i),x)。t=1 的前向概率 c = zeros(T,1)。 alpha(1,:) = c(1) * alpha(1,:)。 for j = 1:N temp = temp + alpha(t1,j) * trans(j,i)。 end c(t) = 1/sum(alpha(t,:))。 end % 給定觀察序列 O, 計(jì)算后向概率 beta beta = zeros(T,N)。 end % t=T1:1 的后向概率和標(biāo)定 for t = T1:1:1 x = O(t+1,:)。 end end beta(t,:) = c(t) * beta(t,:)。 49 for t = 1:T1 denom = sum(alpha(t,:).*beta(t,:))。 ksai(t,i,j) = c(t) * nom/denom。 for t = 1:T pab = zeros(N,1)。 end x = O(t,:)。 for j = 1:mix(l).M m = mix(l).mean(j,:)。 prob(j) = mix(l).weight(j) * pdf(m, v, x)。 50 for j = 1:mix(l).M gama(t,l,j) = tmp * prob(j)/sum(prob)。 = alpha。 = ksai。 三、 識(shí)別算法的實(shí)現(xiàn) HMM 的識(shí)別一般都是用 Vitebi 算法,這里用到了對(duì)數(shù)。 在 Viterbi 算法中,對(duì)起始概率和轉(zhuǎn)移概率有一個(gè)取對(duì)數(shù)的操作。 ind0 = find (trans=0)。 trans(ind1) = log (trans(find))。首先 find 函數(shù)分別找到大于 0 和小于等于 0 的元素的下標(biāo),然后用下標(biāo)分別給 trans矩陣的不同元素賦值,這樣就不會(huì)出現(xiàn)對(duì) 0 取對(duì)數(shù)的警告錯(cuò)誤了。 %初始概率 trans = 。 %高斯混合 N = 。 %語音幀數(shù) % 計(jì)算 log(init)。 ind0 = find(init=0)。 init(ind1) = log(init(ind1))。 ind1 = find(trans0)。 trans(ind0) = inf。 % 初始化 delta = zeros(T,N)。 q = zeros(T,1)。 for i = 1:N delta(1,i) = init(i) + log(mixture(mix(i),x))。)。 delta(t,j) = delta(t,j) + log(mixture(mix(j),x))。 % 回溯最佳狀態(tài)路徑 for t=T1:1:1 q(t) = fai(t+1,q(t+1))。 四、訓(xùn)練過程的 Baum- Welch 算法 54 利用 BaumWelch 算法,按照公式計(jì)算轉(zhuǎn)移概率,用公式計(jì)算各 pdf 的均值、方差和權(quán)系數(shù)。 function hmm = baum(hmm, samples) mix = 。 %HMM 狀態(tài)數(shù) K = length(samples)。 %參數(shù)階數(shù) % 計(jì)算前向 , 后向概率矩陣 , 考慮多觀察序列和下溢問題 disp(39。)。%d 39。 end fprintf(39。) 55 % 重估轉(zhuǎn)移概率矩陣 : trans disp(39。) for i = 1:N1 denom = 0。 denom = denom + sum(tmp(:))。 for k = 1:K tmp = param(k).ksai(:,i,j)。 end (i,j) = nom / denom。重估混合高斯參數(shù) ...39。%d,%d 39。 nomvar = zeros(1,SIZE)。 for k = 1:K T = size(samples(k).data,1)。 nommean = nommean + param(k).gama(t,l,j) * x。 denom = denom + param(k).gama(t,l,j)。 (l).var (j,:) = nomvar / denom。 denom = 0。 nom = nom + sum(tmp(:))。 denom = denom + sum(tmp(:))。 end fprintf(39。) end 五、 HMM 參數(shù)的初始化 在進(jìn)行 BaumWelch 迭代前,首先要對(duì) HMM 的參數(shù)進(jìn)行初始化。初始化的過程中,首先將初始概率 賦值為只有第一個(gè)元素為 1,其他元素為 0 的數(shù)組,其長(zhǎng)度為該 HMM 的狀態(tài)數(shù) N。這里采用了按狀態(tài)對(duì)觀察序列的參數(shù)平均分段,然后將所有觀察序 列中屬于一個(gè)段的參數(shù)組成一個(gè)大的矩陣,調(diào)用 58 Voice Box 工具箱中的聚類函數(shù) kmeans,由聚類結(jié)果,計(jì)算得到各 pdf 的均值、方差和權(quán)系數(shù)。 %語音樣本 N = length(M)。 = M。 (1) = 1。 for i=1:N1 (i,i) = 。 end (N,N) = 1。 samples(k).segment=floor([1:T/N:T T+1])。 for k = 1:K seg1 = samples(k).segment(i)。 vector = [vector 。 end mix(i) = getmix(vector, M(i))。 function mix = getmix(vector, M) [mean esq nn] = kmeans(vector,M)。 tmp = vector(ind,:)。 end % 計(jì)算每個(gè)聚類中的元素?cái)?shù),歸一化為各 pdf 的權(quán)重 weight = zeros(M,1)。 end weight = weight/sum(weight)。 = mean。 % M*SIZE = weight。本例中是計(jì)算所有觀察序列的輸出概率,對(duì)其進(jìn)行累加,得到總和輸出概率。另外,設(shè)定最大迭代次數(shù)為一個(gè)常數(shù),當(dāng)?shù)螖?shù)超過此常數(shù)時(shí),也停止迭代。228。246。 % 計(jì)算語音參數(shù) disp(39。)。data39。 ~isempty(samples(k).data) continue。 end 62 end hmm = inithmm(samples, M)。\n 第 %d 遍訓(xùn)練 \n\n39。 %計(jì)算輸出總概率 pout(loop)=0。 end fprintf(39。, pout(loop)) %比較兩個(gè) HMM 距離 if loop1 if abs((pout(loop)pout(loop1))/pout(loop)) 5e3 fprintf(39。)。迭代 40 次仍不收斂 , 退出 39。 程序中,輸入?yún)?shù)有兩個(gè),結(jié)構(gòu)數(shù)組 samples 內(nèi)包含了觀察序列的信息,每個(gè) samples(k)都包含兩個(gè)成員 samples(k).wave和 samples(k).data,分別為該觀察序列的原始語音和參數(shù)。數(shù)組 M 包含了各狀態(tài)對(duì)應(yīng)的高斯混合數(shù)。下面是一段訓(xùn)練程序的腳本文件。 for k=1:10 file=sprintf(39。,i,k)。 samplesz{i}{k}=wavread(file)。 sample(k).data=[]。 end save(39。, 39。)。首先用函數(shù) wavread 將其讀入,再用函數(shù) vad 進(jìn)行端點(diǎn)檢測(cè),計(jì)算出 MFCC 參數(shù)后,交由識(shí)別函數(shù) 計(jì)算得到其對(duì)數(shù)形式的輸出概率,最后用 max 函數(shù)找到識(shí)別結(jié)果。 for i=1:11 for k=1:10 fname = sprintf(39。,i,k)。 x = wavread(fname)。 m = mfcc(x)。 for j=1:11 pout(j)=viterbi(hmm{j}, m)。 % fprintf(39。識(shí)別為類型 %d\n39。 詞 匯 類 別 : 186。 第 %d 識(shí) 別 為 類型 %d\n39。 end end end rate=sum(re)/66。系統(tǒng)識(shí)別率: %d\n39。 第 三節(jié) 實(shí)驗(yàn)結(jié)果 本語音識(shí)別系統(tǒng)所用的語音庫(kù)是十個(gè)足球術(shù)語的語音,它們分別為鏟球、沖撞、點(diǎn)球、防守、紅牌、加速、進(jìn)球、起動(dòng)、手球、暫
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1