tbs 09 Aplikasi Pengolahan Sinyal Digital Speech Recognition 3

advertisement
Konsep Speech Recognition
Bagian 3
(dynamic time warpingDTW)
MK: Aplikasi Pengolahan Sinyal Digital
Bersama: Tri Budi Santoso
Laboratorium Sinyal, PENS-ITS
Referensi:
Rabiner & Schafer, “Introduction to Digital Speech Processing”
Mark Hasegawa-Johnson, “Lecture Note in Speech Production, Speech Coding and Speech Recognition”
1
Dynamic time warping
• Dynamic time warping merupakan sebuah algoritma untuk
pengkuran kemiripan diantara dua deretan data yang memiliki
kecepatan variasi data berbeda.
• Sebagai contoh, orang mengucapkan kata “saya” dan “sayya”.
• DTW juga diaplikasikan pada sinyal video, audio, dan graphics.
• A well known application has been automatic speech
recognition, to cope with different speaking speeds.
2
In general
• In general, DTW adalah suatu metode yang memungkinkan
suatru komputer untuk mendapatkan suatu kondisi optimal
match antara dua sekuen yang diberikan (e.g. time series)
dengan batasan tertentu.
• Sekuen-sekuen ini dibengkokkan ("warped“) secara nonlinear
di dalam dimensi waktu untuk menentukan suatu ukuran
kemiripan diantara mereka secara independent pada variasi
non linear tertentu di dalam dimensi waktu.
• Metode sequence alignment ini seringkali digunakan di dalam
kontek hidden Markov models.
3
Contoh cuplikan program…
int DTWDistance(char s[1..n], char t[1..m], int d[1..n,1..m]){
declare int DTW[0..n,0..m]
declare int i, j, cost
for i := 1 to m
DTW[0,i] := infinity
for i := 1 to n
DTW[i,0] := infinity
DTW[0,0] := 0
for i := 1 to n
for j := 1 to m
cost:= d[s[i],t[j]]
DTW[i,j] := cost + minimum(DTW[i-1,j ], // insertion
DTW[i ,j-1],// deletion
DTW[i-1,j-1]) // match
return DTW[n,m]
}
4
Contoh penjelasan dengan Matlab
Dynamic Time Warping calculates the similarity between 2 vectors.
If you pass in 2 vectors it returns the unnormalized distance between the
vectors, the accumulated distance between them, the length of the warping
path (the normalizing factor), and the warping path points.
To compare 2 vectors A and B call:
[Dist,D,k,w]=dtw(A,B)
Dist is the unnormalized distance
D is the accumulated distance
k is the length of the warping path
(the normalizing factor)
w is a matrix containing the points along the warping pat
5
Dynamic Time Warping (DTW)
Nama lain:
• Sequence alignment
• Pattern matching
• String edit
• …?
6
Dynamic Time Warping pada Sinyal Wicara untuk
kasus “word based”
• Pola ucapan yang keluar dari seorang sumber suara (secara
alamiah, bebas) lebih komplek dibanding sebuah steady
sound (misal penyiar berita).
• Seringkali ucapan untuk kata yang sama, terucap dengan
durasi berbeda, misal “s-a-t-u” terucap sebagai “s-s-a-t-u-u”.
Jika hal ini terjadi, maka perangkat dengan template matching
biasa tidak akan mampu merecognize sebagai kata “s-a-t-u”.
7
• Pertimbangkan dua vektor feature sinyal speech xi=(x1,x2,….xT), dan
yi=(y1,y2,….,yT)
• Perbedaan(misal Eucledian distance) antara x dan y dinyatakan
sebagai:
d x, y    d ix , i y 
Tx
i x 1
Jika keduanya berada dalam ukuran waktu yang sama, maka setiap
kenaikan nilai pada x juga terjadi kenaikan pada y dalam skala waktu
yang sama
8
iy
Keduanya x dan y
dalam skala sama
iy
ix
Keduanya x dan y
dalam skala berbeda
ix
9
Contoh Kasus DTW pada sinyal Wicara
“word” based DTW
• Berikut ini sebuah proses DTW pada template matching yang
disederhanakan pada 5 frame sinyal wicara.
• Perhatikan dua gambar dibagian berikutnya, keduanya
merupakan sinyal dalam domain waktu yang akan
mengalami proses template matching
• Walaupun keduanya sama mengucapkan a-d-a, tetapi cara
pengucapan berbeda. Atas diucapkan sebagai “aada”,
sedangkan yang bawah diucapkan sebagai “ada”
• Jika hasil dari feature measurement masing-masing
dimatching
10
Frame 1
Frame 2
Frame 3
Frame 4
Frame 5
11
Proses pencarian Jarak antar frame-frame, dengan membuat alat
bantu berupa simbol seperti berikut
g(i,j)
d(i,j)
Jarak kumulatif global
Jarak lokal: jarak antara frame pattern input dengan frame
pattern standar
Jarak = jarak Euclidean dari fitur sinyal speech, misal formant 1
dan formant 2
Jarak lokal d(2,1) berarti jarak (beda nilai fitur) antara frame ke-2
sinyal input dengan frame ke-1 sinyal standar
 g (i, j  1)  d (i, j )
g (i, j )  min  g (i  1, j  1)  2d (i,
 g (i  1, j )  d (i, j )
g(i-1,j)
g(i,j)
d(i,j)
g(i-1,j-1)

j )

Jarak Kumulatif Global:
g(i,j-1)
12
Simbol diatas mewakili nilai jarak antara frame input dengan frame standar.
Penataan bisa sbb, sinyal input ke frame horisontal, sinyal standar dg frame vertikal
Frame ke j
4
3
2
1
g(1,4)
g(2,4)
g(3,4)
g(4,4)
d(1,4)
d(2,4)
d(3,4)
d(4,4)
g(1,3)
g(2,3)
g(3,3)
g(4,3)
d(1,3)
d(2,3)
d(3,3)
d(4,3)
g(1,2)
g(2,2)
g(3,2)
g(4,2)
d(1,2)
d(2,2)
d(3,2)
d(4,2)
g(1,1)
g(2,1)
g(3,1)
g(4,1)
d(1,1)
d(2,1)
d(3,1)
d(4,1)
3
4
1
2
Frame ke i
13
Inisialisasi
Merupakan kondisi awal, dan didapatkan dari pengukuran jarak Euclidean
antar frame-frame yang ditetapkan sebagai jarak lokal:
g (1,1)  d (1,1)
i
g (i, l )   d (m, l )
g(1,2) = d(1,1)+d(1,2) = 1+4 = 5
g(1,3) = d(1,1)+d(1,2) + d(1,3) = 1+4+3 = 8
g(1,4) = d(1,1)+d(1,2) + d(1,3) + d(1,3) = 1+4+3+2 = 10
m 1
j
g (l , j )   d (l , m)
m 1
g(2,1) = d(1,1)+d(2,1) = 1+3 = 4
g(3,1) = d(1,1)+d(2,1) + d(3,1) = 1+3+3 = 7
g(4,1) = d(1,1)+d(2,1) + d(3,1) + d(4,1) = 1+3+3+1 = 8
14
Dengan penyederhanaan perhitungan, diperoleh jarak-jarak lokal untuk
inisialisasi, sehingga diagram DTW menjadi seperti gambar berikut…
tujuan
Frame ke j
4
3
2
8
g(2,4)
g(3,4)
g(4,4)
1
1
3
4
7
g(2,3)
g(3,3)
g(4,3)
3
1
3
5
4
g(2,2)
g(3,2)
g(4,2)
3
1
1
6
1
5
8
11
1
4
3
3
1
2
3
4
start
1
Frame ke i
15
Dengan mengacu pada nilai minimum untuk jarak
kumulatif global…..
 g (i, j  1)  d (i, j )
g (i, j )  min  g (i  1, j  1)  2d (i,
 g (i  1, j )  d (i, j )
 g (2,1)  d (2,2) 


g (2,2)  min  g (1,1)  2d (2,2)
 g (1,2)  d (2,2) 
5  1  6 
 min 1  2 1  3  3
4  1  5 

j )

Lintasan terpilih
untuk menuju g(2,2)
16
Dengan cara yang sama….
4
8
g(2,4)
g(3,4)
g(4,4)
1
1
3
4
7
g(2,3)
g(3,3)
g(4,3)
3
1
3
5
3
g(3,2)
g(4,2)
1
1
6
3
4
2
4+1
3
1+2
1
1
Frame
ke j
1
1
1+4
4+1
5
5+3
8
8+3
11
4
3
3
2
3
4
Frame ke
17 i
Dengan cara yang sama….
4
8
g(2,4)
g(3,4)
g(4,4)
1
1
3
4
7
4
g(3,3)
g(4,3)
3
1
3
5
4
g(4,2)
1
6
3
4+2
3+6
3+1
4
2
4+1
1
3
1+2
1
1
Frame
ke j
1
1
3+1
3
1+4
4+1
5
5+2
5+3
8
8+3
11
4
3
3
2
3
4
Frame ke
18 i
Dengan cara yang sama….
4
8
g(2,4)
g(3,4)
g(4,4)
1
1
3
4
7
g(4,3)
3
5
4+6
3
7
4
3
1
4+3
4+2
3+6
3+1
4
2
4+1
1+2
1
1
Frame
ke j
1
1
3+1
3
1
3
1+4
4+10
4+3
4+6
1
4+1
5
4
g(4,2)
6
5+2
5+3
8
8+3
11
4
3
3
2
3
4
Frame ke
19 i
Dengan cara yang sama….
4
8
g(2,4)
10
1
1
3
4+6
3
7
4
3
1
2
4+1
1
1
Frame
ke j
1
1
3+1
3
1+2
1+4
12
5
4
4+6
1
4+1
5
7+5
12+4
4+10
4+3
1
3
7
3+6
3+1
4
4
3
4+2
g(4,4)
7+8
7+3
4+3
10+4
g(4,2)
6
5+2
5+3
8
8+3
11
4
3
3
2
3
4
Frame ke
20 i
Dengan cara yang sama….
4
8
g(2,4)
10
1
1
3
4+6
7
4
3
1
14
4
7+8
7+3
7
4+3
10+4
7+5
12+4
12
3
3
4+2
3+6
4
2
4+1
1+2
1
1
Frame
ke j
1
1
3+1
3
1
3
1+4
4+10
4+3
3+1
4
4+6
1
4+1
5
5
g(4,2)
6
5+2
5+3
8
8+3
11
4
3
3
2
3
4
Frame ke
21 i
Dengan cara yang sama….
4
8
g(2,4)
10
1
1
3
4+6
3
7
4
3
1
2
4+1
1
1
Frame
ke j
1
1
3+1
3
1+2
1+4
12
5
4
4+6
1
4+1
5
7+5
12+4
4+10
4+3
1
3
7
3+6
3+1
4
4
3
4+2
14
7+8
7+3
4+3
10+4
g(4,2)
6
5+2
5+3
8
8+3
11
4
3
3
2
3
4
Frame ke
22 i
Trace back untuk mengetahui fungsi DTW
14 didapat dari
14 - 10 - 7 - 4 - 3 - 1
(4,4) - (3,4) - (3,3) - (3,2) - (2,2) - (1,1)
atau
(4,4) - (3,4) - (3,3) - (2,3) - (2,2) - (1,1)
Misal kita pilih yang pertama, dan diurutkan…
(1,1) (2,2) (3,2) (3,3) (3,4) (4,4)
23
Download