Title: Konusma Isleme
1Konusma Isleme
- Konusma dosyalari üzerinde yapilabilecekler
hakkinda bir çalisma
2Giris
- Rasgele istatistik sinyaller üzerinde yapilan
islemlerin konusma sinyaline uygulanmasi - Konusma (speech), ses (audio) degildir
- fmax(konusma) 3.4 kHz
- fmax(ses) 20 kHz
- Sinyal, hemen her zaman parçalara ayrilir ve
islemler stationary kabul edilen bu parçalar
üzerinde yapilir
3Uygulamalar
- Bu doküman boyunca yapilacak uygulamalar
asagidaki konusma dosyasi üzerinde olacaktir
konusma.wav
4Voiced vs. Unvoiced
- Konusma, voiced (ötümlü) ve unvoiced (ötümsüz)
olarak ikiye ayrilir - Voiced, yüksek seslere unvoiced, kisik seslere
ya da gürültüye karsilik gelir - Stationary kabul edilen parçalarin
voiced/unvoiced olarak siniflandirilmasi
yapilacak diger islemler için önemlidir - Siniflandirma
- Sinyalin enerjisi
- Normalize otokorelasyon katsayilari
- Sifir geçisleri
5V/UV Classification Enerji metodu
- Sinyalin toplam enerjisi belli bir threshold
degerinden yüksekse voiced olur. - Burdaki m, alinan parçadaki sample sayisidir
6Uygulama
- Dokümanin en basinda verilen konusma dosyasi
- Matlabta açilacak
- Parçalara bölünecek
- Tüm parçalarin enerjilerinin bir degerden yüksek
olup olmadigina bakilacak - Islem tekrar kullanilabilir olmasi için bir
fonksiyon olarak hazirlanacak
7Uygulama
function samples,vuv vuv_energy( file_name
) Verilen ses dosyasini voiced / unvoiced olarak
siniflandirir Fonksiyon oncelikle dosyayi acar
ve 20 ms lik parcalara boler. Eger dosya 20
ms olarak tam bolunemiyorsa son 20 ms den
kisa olan bolum kullanilmaz. Daha
sonra bolunen parcalarin enerjileri hesaplanir
enerjisi 1.5 ten az olan parcalar unvoiced kabul
edilir speech,fs,nbits wavread(file_name) wi
ndow_ms 20 threshold 1.5 alinacak
parcalarin sample sayisi window
window_msfs/1000 sinyal uzunlugu
kontrolu speech speech(1(length(speech) -
mod(length(speech),window)),1) samples
reshape(speech,window,length(speech)/window) ene
rgies sqrt(sum(samples.samples))' vuv
energies gt threshold
8Uygulama
- Konusma sinyalinin uzunlugu 500ms
- 20ms lik toplam 25 parça
- Kirmizi ile gösterilen voiced / unvoiced data
noktalari kendinden sonra gelen 20ms konusma
parçasinin voiced ya da unvoiced oldugunu gösterir
9LPC Analizi
- Konuyla ilgili anahtar kelimeler
- Linear Predictive Coding
- Linear Regression
- Time series analysis
- All-pole filtering
- Sistem kendi katsayilarini degistirir
- Giris sinyaline göre sistem degisir
- Sistem sinyali, önceki degerleriyle hesaplamaya
çalisir
10LPC Sistem
- sn islenen sinyal
- en hata sinyali
- ai LPC katsayilari
- Sistem, katsayilarini ennin enerjisini minimum
yapacak sekilde ayarlar
11Uygulama - LPC
- Görülebilir sonuçlar elde edebilmek için voiced
bir parça üzerinde LPC analiz ve sentez islemleri
yapilacak - LPC sentez filtresinin genlik tepkesinin sinyalin
genlik spektrumu ile olan ilgisi incelenecek. - V/UV siniflandirma için vuv_energy kullanilacak
12Uygulama - LPC
- Bulunan voiced parçalardan ikincisi kullanilacak
- vuv_energynin voiced olarak belirledigi ilk
parçanin bir kismi unvoiced olabilir - Matlab LPC katsayilarini direk verir ama en i
direk vermez
13Uygulama - LPC
function sample, lpc_coef, e lpc_a(
file_name, predictor )Basit lpc analizi
Verilen dosya icindeki voiced parcalar bulunur
Ikinci voiced parcanin lpc katsayilari ve bu lpc
analizinin hatasi hesaplanirsamples,vuv
vuv_energy(file_name) ikinci voiced pencere
seçilirfor i 1length(vuv) if i 1
vuv(i - 1) 1 vuv(i) 1 sample
samples(1length(samples),i) break
endendlpc_coef lpc(sample,predictor)e
filter(lpc_coef, 1, sample)
14Uygulama - LPC
LPC katsayilari 1.0000 -1.2920
0.2980 -0.1749 0.5167 0.1699
-0.4452 -0.0797 0.1563 0.0553
0.0033
15Uygulama - LPC
- Zaman bölgesi sinyallere bakarak
- Iletilmesi gereken veri miktari ciddi miktarda
azalmistir - LPC Analiz islemi ayni zamanda bir sikistirma
islemidir - denebilir
16Uygulama - LPC
sinyal parcasinin frekans spektrumusample_f
fft(sample,1024)1/A(z) filtresinin durtu
tepkesiir filter(1,lpc_coef,1
zeros(11023,1))1/A(z) filtresinin frekans
tepkesifr fft(ir)genlik spektrumunun yarisi
cizdirilir cunku diger yarisicizilen yarinin
simetrigidirsemilogy(01/5121-1/512,abs(sample_f
(1512)))holdgenlik tepkesinin, sinyalin
spekturumuna oturabilmesiicin bir miktar
yukseltilirplot(01/5121-1/512,3abs(fr(1512)))
17Uygulama - LPC
- Mavi grafik sinyalin genlik spektrumu
- Kirmizi grafik LPC Sentez (1/A(z)) filtresinin
genlik tepkesi - 1/A(z) filtresinin genlik tepkesinin tepe
noktalari sinyalin formantlaridir
18LSF LSP(Line Spectral Frequencies Pairs)
- LPC katsayilari özel bir islemle LSFlere
dönüstürülür - Bu sayede elde edilen LSPler
- 0-1 ya da 0-pi araliginda
- Pozitif
- Küçükten büyüge ya da büyükten küçüge sirali
- Iletimde kolaylik saglar
19LSF LSP
- P(z) ve Q(z) polinomlarinin kökleri LSFleri
verir - Bu kökler
- Birim çember üzerinde
- Interlaced (Birbiri içine girmis)
- Buna karsilik 1/A(z) filtresinin kökleri
- Fazlasiyla daginik
- Eger otokorelasyon metoduyla hesaplanmissa hepsi
birim çember içinde
201/A(z) kökleri
poles roots(lpc_coef)zplane(,poles)
21Uygulama LSF
P(z) katsayilarip 1,lpc_coef(2end)
fliplr(lpc_coef(2end)),1poles_P
roots(p) zplane(,poles_P) hold Q(z)
katsayilari q 1,lpc_coef(2end) -
fliplr(lpc_coef(2end)),-1 poles_Q
roots(q) zplane(,poles_Q)
22Uygulama LSF
- 0 ve 1 de ise yaramayan birer kök var
- Bunlardan kurtulmak için P(z) ve Q(z)
polinomlarini modifiye etmek gerekir
23Uygulama LSF
0 ve 1 deki kökler çizdirme esnasinda kullanilmadi
24LSF LSP
- P(z) polinomunun köklerinin gösterdigi frekanslar
formantlardir - Q(z) polinomunun kökleri ise sinyalin genlik
spektrumunun zarfinin çizilmesini saglar
25Uygulama LSF
- Sinyalin kendi genlik spektrumunun çizilmesi
grafigi fazla karmasiklastirdigindan sadece zarfi
çizildi
26Hidden Markov Model
- Deterministik bir olayi stokastik bir sekilde
modelleme - Modellenecek sistemin bir Markov chain oldugunu
kabul ederek izlenebilir parametrelerden gizli
parametrelerin hesaplanmasi
27HMM - Örnek
x gizli durumlar y izlenebilir çiktilar a
geçis olasiliklari b çikti olasiliklari
http//en.wikipedia.org/wiki/ImageMarkovModel.png
28HMMKullanim Alanlari
- Pattern Recognition
- Bioinformatics
- Hand-written Word Recognition
- Adaptive Power Management
- Speech Recognition
29HMM - Ergodic
- Durumlarin her birinden tüm durumlara geçis mümkün
30HMM - LTR
- Durum geçisleri soldan saga yönde, ters yönde
geçis yok
31HMM
- Markov Chain
- A aij state transition matrixDurumdan
duruma geçme olasiligi - ? pi initial probabilitiesBaslangiç durumu
olasiliklari - B bjot bjk observation probability
matrixj durumunda k çiktisinin olma olasiligi
32HMM - aij
0.3 0.5 0.2 0 0 0
0 0.4 0.3 0.3 0 0
0 0 0.4 0.2 0.4 0
0 0 0 0.7 0.2 0.1
0 0 0 0 0.5 0.5
0 0 0 0 0 1.0
a11 a12 a13 a14 a15 a16
a21 a22 a23 a24 a25 a26
a31 a32 a33 a34 a35 a36
a41 a42 a43 a44 a45 a46
a51 a52 a53 a54 a55 a56
a61 a62 a63 a64 a65 a66
( of states) X ( of states)
33HMM - pi
p1 p2 p3 p4 p5 p6
0.5 0.5 0 0 0 0
- Durum sayisi uzunlugunda bir vektör
34HMM - bjk
b11 b21 b31 b41 b51 b61
b12 b22 b32 b42 b52 b62
b1M b2M b3M b4M b5M b6M
( of states) X ( of outputs)
- Durum sayisi X Görülebilecek çikti sayisi
35HMM - Örnek
- 6 kutu içinde çesitli renk toplar var
- 10 farkli renk var her kutuda her renkten esit
olmayan sayida top var - Baslangiç kutusunu belirlemek için yazi-tura
atiliyor (Yazi 1 Tura 2) - 50 kere
- Zar atilip bir kutu seçiliyor
- Seçilen kutudan rasgele bir top aliniyor
- Rengi kaydedilip top yerine konuyor
36HMM
- Çiktilara bakarak toplarin hangi kutulardan
çekildiginin bulunmasi - Her bir çikti için olasiliklarin hesaplanmasi
- Baum-Welch gibi bir beklenti artirma (expectation
maximization) algoritmasi kullanimi
37HMM Baum Welch
- Bir HMMin parametrelerinin (A,B)
- maximum-likelihood tahminleri
- maximum a posteriori tahminleri
- HMM ise
- Baum-Welch, verilen çiktilarin olma olasiligini
maksimize eden HMMi bulur
38HMM Baum Welch
- Algoritma verilen baslangiç olasiligi ile
baslatilir - t zamaninda j durumunda olan,O1, O2, Ot çikti
sirasinin olasiligini hesaplar (forward
probabilities)
39HMM Baum Welch
- Çikti sirasinin olusmasinin olasiligi bu
degerlerin toplanmasiyla bulunabilir - Bu olasiliga Baum-Welch olasiligi denir
- O çiktisinin izlenme olasiligi, mümkün tüm durum
siralari üzerinden toplanmis olur
40HMM Viterbi
- Çiktiyi olusturmus olabilecek maksimum olasilikli
durum sirasini verir - Baum-Welch toplama islemi yaparken Viterbi
maksimumunu alir - PV genelde PBW den küçüktür
- PBW nin PV ye esit olmasi sadece tek bir durum
sirasi mümkün oldugunda olur
41HMM Viterbi
- En olasi durum sirasini hesaplamak da mümkündür
- t zamaninda s1 durumundayken t-1 zamanindaki en
olasi durumu kaydetmekle yapilir - Bu degerler tüm j ler için hesaplandiktan sonra
en olasi durum sirasi data üzerinde geri giderek
bulunur
42HMM Örnek
- 3 vazo, R G B toplar
- O RGGBRB
b1(R) 0.3 b2(R) 0.1 b3(R) 0.4
b1(G) 0.5 b2(G) 0.4 b3(R) 0.1
b1(B) 0.2 b2(B) 0.5 b3(R) 0.5
?(j) 0.8, 0.2, 0.0
43HMM Örnek
function alfa, phi, mu hmm( A, B, I, O
) alfa zeros(length(O),length(I)) for i
1length(O) for j 1length(I) if i
1 alfa(1,j) I(j)B(1,j)
continue end for k
1length(I) alfa(i,j) alfa(i,j)
alfa(i-1,k)A(k,j) end alfa(i,j)
alfa(i,j) B(O(i),j) end end
44HMM Örnek
1 2 3
1 0.240000000 0.020000000 0.000000000
2 0.036000000 0.070400000 0.001200000
3 0.005400000 0.021344000 0.004344000
4 0.000324000 0.006158800 0.008575200
5 0.000029160 0.000269030 0.004908200
6 0.000001750 0.000064012 0.002534800
45HMM Örnek
function alfa, phi, mu hmm( A, B, I, O
) phi zeros(length(O),length(I)) mu
zeros(length(O),length(I)) for i 1length(O)
for j 1length(I) if i 1
phi(1,j) I(j)B(1,j) continue
end for k 1length(I)
val phi(i-1,k)A(k,j) if val gt
phi(i,j) phi(i,j) val
mu(i,j) k end end
phi(i,j) phi(i,j) B(O(i),j) end end
46HMM Örnek
1 2 3
1 0.240000000 0.020000000 0.000000000
2 0.036000000 0.067200000 0.001200000
3 0.005400000 0.010752000 0.004032000
4 0.000324000 0.002150400 0.003225600
5 0.000029160 0.000086016 0.001290200
6 0.000001750 0.000017203 0.000645120
1 2 3
1 0 0 0
2 1 1 2
3 1 2 2
4 1 2 2
5 1 2 3
6 1 2 3
47HMM Training Baum Welch
- Algoritma rasgele bir degerle baslatilir
- t zamaninda j durumunda olacak,O1, O2, Ot
çikti sirasinin olasiligini hesaplar (forward
probabilities)
48HMM Training Baum Welch
- t zamaninda j durumunda olan modelin,Ot1, OT
çikti sirasiyla bitme olasiligini hesaplar
(backward probabilities)
49HMM Training Baum Welch
50HMM Training Baum Welch
- Hesaplanan degerlerleA, B ve ? hesaplanir ve
yerlerine konup islem tekrar gerçeklestirilir