Perancangan model sistem identifikasi pembicara dibangun dengan maksud untuk memudahkan dalam pembuatan aplikasi (perangkat lunak).
Aplikasi yang dibuat merupakan gabungan dari berbagai tahap yang ada di dalam sistem lersebut. Di samping ilu, model dirancang sedemikian rupa sehingga dapat memudahkan pengguna dalam menjalankan aplikasi lersebut.
Sistem yang dikembangkan seperti yang diperlihatkan pada Gambar 17, terdiri alas empat modul utama, yaitu modul perekaman, modul konfigurasi sistem, modul pelatihan, dan modul identifikasi (pengujian). Modul perekaman dibuat sebagai suatu aplikasi yang terpisah dari ketiga modul lainnya. Modul pelatihan dan identifikasi (pengujian) diletakkan sebagai submenu dari menu proses. Sedangkan modul konfigurasi sistem diletakkan sebagai submenu dari menu file.
Modul perekaman : 6 pembicara (
Pengguna (90 pengucapan)
\
! ! T
Data ucapanJ
1-1
Antar mukar-
(interface)
1 ...
1
"":""""1 Konfigurasi sistemi Ekstraksl. :..- (20 30 40 ms) &
! mformasl i " 0
, ... , (25%.50)(,)
60 data Data
~I
Pelatihan sistemI
(6 pembicara pelatihan
~ Referensi pola
Parameter HMM
!
30 data
J
Identifikasi danI
(6 pembicara)
'I
pengujian 1Gambar 17 Perancangan model sistem identifikasi pembicara
4.1 Data
Perekaman dilakukan terhadap pengucapan kata "ujar", selama 2 detik, pada frekuensi sampling (ft) sebesar 20 kHz sehingga menghasilkan 44100 sampel setiap pengucapan. Jumlah sampel diperoleh dari perkalian antara lama perekaman dan jumlah sampel per detik dari frekuensi sampling yang dipilih, yaitu 44100 = 2x22050. Pada Tabel 2 diperlihatkan jumlah sampel yang dihasilkan dari frekuensi sampling, seperti yang telah ditentukan oleh perangkat lunak Matlab.
Tabel2 Interval frekuensi sampling danjumlah sampel yang dihasilkan
Interval Jumlah sampel
frekuensi sampling
(Hz) Dalam 1 detik Dalam 2 detik
8000 s.d. 8080 8000 16000
8081 s.d 11135 11025 22050
11136 s.d. 22270 22050 44100
22271 s.d. 44100 44100 88200
Data ucapan yang digunakan di dalam sistem identifikasi pembicara diperoleh dari perekaman 6 orang responden (3 pria dan 3 wanita) dengan masing- masing melakukan 15 kali perulangan. Pengambilan data ucapan sebanyak 15 kaIi untuk setiap pembicara dilakukan dalam rentang waktu yang berurutan.
Perekaman dilakukan pada ruangan yang dikondisikan minim noise. Setiap data ucapan disimpan sebagai sebuah file audio dengan format way yang diberi nama sesuai dengan inisial pembicara dan diikuti dengan indeks urutan pengucapan (1 s.d. 15) (Lampiran 1).
4.2 Ekstraksi Informasi
Ada 4 tahap yang dilakukan di dalam mengekstraksi informasi dari setiap data ucapan, yaitu pemrosesan awal (preemphasis dan deteksi aktifnya suara), frame blocking and windowing, ekstraksi ciri dan pemrosesan akhir.
4.2.1 Deteksi Aktifnya Snara
Pada proses deteksi aktifuya suara dilakukan eliminasi terhadap elemen- clemen (nilai-nilai) dari sinyal ucapan apabila elemen-elemen tersebut tidak mengandung karakteristik ucapan seorang pembicara. Metode yang digunakan adalah voice activacy detection (VAD). Metode V AD akan berfungsi secara normal apabila 200 ms pertama dari sinyal ucapan hanya berisi background /loise.
Pada metode VAD, setiap sinyal ucapan dibagi ke dalam lebar frame 5 ms dan tanpa adanya overlap antarji-ame (TabeI3).
Tabel 3 Ketentuan dan struktur sinyal ucapan pada proses V AD Ketentuan dan struktur
Keterangan ucapan
Asumsi 200 ms pertama hanya berisi background noise
Lebar frame 5 ms
Overlap Tidak ada
Jumlah frame 401 frame
Jumlah sampel per frame 110 sampel
Jumlah sampel sinyal ucapan setelah melalui proses VAD berbeda untuk setiap pembicara. Hal ini disebabkan, kecepatan pengucapan yang tidak sarna antara seorang pembicara dan pembicara lainnya (Tabel 4). Pada Tabel 4, jumlah sampel diperoleh dari perkalian antara jumlahframe dan jumlah sarnpel per frame (110 sampel). Kepadatan ucapan diperoleh dari rasio antara jumlah sampel ucapan setelah dan sebelum proses VAD. Secara lebih detail, jumlah ji-ame dan sampel setiap sinyal ucapan disajikan pada Lampiran 1.
Tabel4 Estimasijumlahframe danjumlah sampel pada metode VAD No. Pembicara Jumlah Jumlah Kepadatan
frame sam pel ucapan
1. Mahyus Ihsan 114 12540 28.4%
2. Agus Hasim 170 18700 42.4%
3. Roni Salambue 85 9350 21.2%
4. Titi Ratnasari 60 6600 15.0%
5. Ria Arafiah 70 7700 17.5%
6. lin Ernawati 50 5500 12.5%
4.2.2 Frame Blocking allil Windowing
Pada tahap ini, setiap data ucapan dipilah-pilah berdasarkan 6 kelompok pembagi lebar frame dan overlap, yaitu kelompok I (20 ms dan 25%), kelompok 2 (20 ms dan 50%), kelompok 3 (30 ms dan 25%), kelompok 4 (30 ms dan 50%), kelompok 5 (40 ms dan 25%) dan kelompok 6 (40 ms dan 50%). Pada Tabel 5 ditampilkan jumlahframe berdasarkan 6 kelompok pembagiframe.
Untuk mendapatkan jumlah sampel dalam setiap frame, jika diketahui lebar waktuframe, dapat menggunakan persamaan (48), yaitu:
Dimana,
N=ll~;OJ
(48)L : lebar waktuframe (20 ms, 30 ms, dan 40 ms) Fs : jumlah sampel dalam satu detik (22050) N : jumlah sampel dalam setiap frame
L J
Pembulatan ke bawah terhadap nilai bilangan real Uika a<N<a+i, maka N=
a, a adalah bilangan bulat)Selanjutnya, jumlah frame setiap sinyal ucapan dapat dihitung dengan menggunakan persamaan (49), yaitu:
Di mana,
X
J
nData-Ml (49)I N-M
nData : jumlah total sampel dalam satu sinyal ucapan
N : jumlah sampel dalam setiap frame (hasil dari persamaan (48»
M : jumlah sampel overlap, dapat dihitung dari hubungan M
= L
NOJ,
di mana 0 adalah overlap antarframe dalam % X : jumlahframeI l
Pembulatan ke atas terhadap nilai bilangan real Uika a<X <a+ I, maka X=
a+ I, a adalah bilangan bulat)Dan langkah terakhir adalah menentukan posisi awal dari setiap frame dalam suatu sinyal ucapan, dapat menggunakan persamaan (50), yaitu:
p'=(i-I)(N-M)+I (50) Di mana,
urutanji-ame ke-i
N lebar frame dalam satuan sampel atau jumlah sampel dalam setiap frame (hasil dari persamaan (48»
M : jumlah sampel overlap Pi : Posisi awalframe urutan ke-i
Tabel 5 Jumlah ji-ame dan jumlah sampel per frame dari 6 kelompok pembagi frame
Inisial Jlh Jumlah frame pada lebar waktu dan overlap
20ms
.
30ms~pembicara sampel
25% 50% 25%
Mahyus 12540 38 56 25
Agus 18700 57 84 38
Rani 9350 28 42 19
Titi 6600 20 29 13
Ria 7700 23 34 16
lin 5500 17 24 11
Jumlah sampel setlap frame pada lebar waktu 20 ms adalah 441
I Jumlah sampel setiap frame pada lebar waktu 30 ms adalah 661 'Jumlah sampel setiap frame pada lebar waktu 40 ms adalah 882
40ms¥
50% 25%
37 19
56 28
28 14
19 10
23 12
16 8
50%
28 42 21 14 17 12
Jumlah sampel yang dibutuhkan untuk membangun window Hamming berasal dari jumlah sampel setiap frame yang diperoleh berdasarkan lebar waktu yang ditentukan. Misalnya, pada lebar waktu 30 ms, akan diperoleh window Hamming dengan 661 sampel. Window Hamming yang telah diperoleh, dioperasikan (perkalian titik terhadap elemen-elemen vektor yang bersesuaian) terhadap setiapframe, dimulai darifi'ame pertama hinggaframe terakbir, yaitu:
dll d" dlx W; dllW; d"W; dlxW;
Fw=DW= d" d" d,x W, d"W, d"W, d2XW,
(51)
• =
dNI dN, dNX WN dNlWN dN,WN dNXWN
Di mana,
Fw seluruhframe yang telah dikenakan operasi windowing
D data ucapan yang telah terbentuk dalamframe:frame W window Hamming dengan N sampel
dij elemen data ucapan pada urutan sampel ke-i dariframe ke-j Wi elemen window Hamming pada urutan sampel ke-i
4.2.3 Ekstraksi Ciri
Proses ekstraksi ciri dilakukan terhadap setiap frame sinyal ucapan.
Metode yang digunakan adalah LPC dengan jumlah koefisien 8 (p = 8). Hasil proses ini menyebabkan setiap frame sinyal ucapan diisi oleh 8 buah koefisien LPC. Pada tahap ini pula, perlu dihitung estimasi kesalahan pendekatan sinyal ucapan untuk setiap frame dengan menggunakan persamaan (18). Estimasi kesalahan tersebut digunakan untuk mendapatkan energi estimasi kesalahan untuk setiap frame sinyal ucapan, yang nantinya dibutuhkan untuk membangun nilai koefisien pertama cepstral (persamaan (28)) untuk setiapframe sinyal ucapan.
4.2.4 Pemrosesan Akhir
Pada tahap ini akan dilakukan dua proses untuk setiap frame sinyal ucapan, yaitu konversi dari koefisien LPC menjadi koefisien cepstral (persamaan persamaan (26), persamaan (27), dan persamaan (28)) dan pembobotan parameter cepstral (persamaan (29) dan persamaan (30)).
Setelah melalui tahap ini, seluruh koefisien cepstral yang dihasilkan Idmsus untuk data pelatihan yang terdiri atas 10 ucapan untuk masing-masing pembicara disimpan ke dalam sebuah jile data pelatihan yang diberi nama datatraining_lebarframe_overlap.mat. Struktur dari isi jile data tersebut dapat dideskripsikan pada Gambar 18.
~[Cll C"
/ _ e
21 C22Pembicara 1 U
ll
U" ... U'(IO) :. CSI
en
Pemblcara 2 U2I U" ... U'(IO)
Keterangan gambar:
U : satu data ucapan
Pembicara 6 U" U" U6(10) c : koefisien cepstral X : jumlah frame
Gambar 18 Struktur dari isijile data pelatihan untuk setiap kelompok pembagi frame
4.3 Hidden Markov Model
Model HMM untuk setiap pembicara yang dibangun merupakan model HMM jenis kiri ke kanan dengan 4 buah state. Setiap state mewakili satu fonem.
Pada Gambar 19 diperlihatkan cara pembentukan model HMM untuk kata yang dipakai oleh sistem, yaitu kata "ujar".
(a)
(b)
~--- u ---~+-Hi<-- a -->i+.r->i
Gambar 19 (a) Penentuan empat state pada sinyal ucapan (b) Topologi model HMM untuk kata "ujar"
Matriks peluang transisi (A) dan vektor distribusi state (it) dapat diperoleh dari relasi yang terbentuk antar state dan posisi awaI state (Gambar 19 (b)), yaitu:
a" a12 0 0 0 a22 a2J 0
A"
=0 0 a33 a34
(48)
0 0 0 I 4x4
1<, = I
I<P
= 1<, = 0I<J = 0
(49)
1<, = 0 4xl
, ,
Di mana p = I, 2, ... , jumlah pembicara,
L:
aij = I, '<:Ii, danL:I<,
=l.j = 1 ;= 1
4.3.1 Pelatihan pada Model HMM
Sebelum dilakukan proses pelatihan terhadap model, sistem akan membaca seluruh koefisien cepstral yang telah disimpan di dalam file data pelatihan datatraining_lebarframe_overlap.mat. File data pelatihan tersebut berisi
10 data ucapan dari setiap pembicara (total 90 data ucapan). Setiap data ucapan tersusun dari sejumlah vektor koefisien cepstral yang akan diterjemah menjadi sebuah barisan observasi 0
=
01,02, ... , OT di mana 01=
[CII C21 C31 C41 CSI C61 C71 Csll, O2=
[C 12 C22 Cn C42 CS2 C62 Cn CS2] dan demikian setemsnya hingga observasi terakhir (OT) (GambaI' 18). Untuk setiap pembicara, akan diperoleh 10 barisan observasi.Pelatihan terhadap model HMM untuk setiap pembicara menggunakan algoritma Segmental K-means. Pada awalnya, akan ditentukan inisialisasi posisi pusat cluster yang mewakili posisi 4 state di dalam barisan observasi. Inisialisasi posisi tersebut dilakukan untuk setiap pembicara terhadap 6 kelompok pembagi lebar/rame dan overlap, dapat dilihat pada Tabel6, Tabel 7, dan Tabel 8.
Tabel 6 Inisialisasi posisi pusat cluster pada lebar waktu 20 ms
Na. Inisial Jumlah frame Inisialisasi pasisi Jumlah frame Inisialisasi pasisi Dembicara (overlaD 25%) Dusa! cluster (overlaD 50%) pusa! cluster
1. Mahyus 38 [15, 22, 30, 36J 56 [12, 32, 44, 50J
2. Agus 57 [17,29,35,45J 84 [25, 42, 58, 67J
3. Rani 28 [5,17,21,25J 42 [9, 24, 32, 40J
4. Titi 20 [1,5,11,18J 29 [4,8,18,26J
5. Ria 23 [4,10, 17,21J 34 [15,16,25,31J
6. lin 17 [3,6,11,15J 24 [4, 9, 16, 22J
Tabel 7 Inisialisasi posisi pusat cluster pada lebar waktu 30 ms
Na. Inisial Jumlah frame Inisialisasi pasisi Jumlah frame Inisialisasi pasisi Dembicara (overlaD 25%) pusa! cluster (overlaD 50%) pusa! cluster
1. Mahyus 25 [2,10, 18,23J 37 [3, 12, 22, 30J
2. Agus 38 [10, 19, 25, 32J 56 [17, 29, 36, 45J
3. Rani 19 [6,11,14,17J 28 [3,16,21,25J
4. Titi 13 [1,4,8,12J 19 [2,5,12,17J
5. Ria 16 [7,8,11,12J 23 [4,8,12,18J
6. lin 11 [2,4,7,10J 16 [2,6,12,15J
Tabel 8 Inisialisasi posisi pusat cluster pada lebar waktu 40 ms
No. Inisial Jumlah frame Inisialisasi posisi Jumlah frame Inisialisasi posisi pembicara (overlap 25%) pusat cluster (overlap 50%) Dusat cluster 1. Mahyus 19 [5,11,15,18] 28 [8, 16, 22, 26]
2. Agus 28 [7,13,19,23] 42 [12, 21, 29, 34]
3. Roni 14 [3,9,11,13] 21 [4,12,16,19]
4. Titi 10 [1,4,6,9] 14 [2,6, 9, 13J
5. Ria 12 [2,5,9,11J 17 [6,8,12,16J
6. lin 8 [2,3,4,5J 12 [1,4,9,11]
Selanjutnya, pada proses pelatihan akan menghitung nilai parameter A, B,
)l (vektor rata-rata) dan Y (matriks kovarian) secara bemlang-ulang sesuai iterasi yang dilaluinya hingga iterasi terakhir dari algoritma Segmental K-means. Proses ini akan dilakukan terhadap p pembicara sehingga akan terbentuk p buah model HMM, yaitu A,P =(AP ,BP ,KP). Setelah selumh proses pelatihan model HMM selesai, nilai-nilai parameter reP, AP, BP, )lP, dan yP akan disimpan ke dalam
sebuah file parameter HMM yang diberi nama
ParameterHMM_Iebarframe_overlap.mat.
4.3.2 Identifikasi Pembicara
Setiap data ucapan yang ingin diidentifikasi pemiliknya, dibaca dari file data ucapan. Kemudian, setiap data ucapan tersebut akan dilakukan ekstraksi infonnasi sehingga menghasilkan sejumlah vektor koefisien cepstral, di mana kumpulan vektor tersebut diterjemahkan sebagai suatu barisan observasi (0
=
01,O2, ... , OT) dan dimasukkan ke dalam tiap-tiap model HMM untuk dihitung nilai
peluangnya. Penghitungan nilai peluang suatu barisan observasi terhadap sualu model HMM menggunakan prosedur Forward. Pemilik ucapan adalah pemilik model HMM yang menghasilkan nilai peluang maksimum.
4.3.3 Pengujian Sistem Identifikasi Pembicara
Pengujian sistem dilakukan dengan cara mengidentifikasikan selumh data pengujian. Tingkat identifikasi (identification accuracy) diperoleh dari rasio
antara jumlah data pengujian yang berhasil diidentifikasi dan jumlah total data pengujian.
Validasi silang digunakan untuk mendapatkan estimasi tingkat identifikasi sistem secara umum. Metode validasi silang yang digunakan pada penelitian ini adalah 3-fold cross-validation. Melalui penggunaan metode tersebut, koleksi data ucapan setiap pembicara (masing-masing 15 pengucapan) dibagi menjadi 3 bagian yang sarna dan terpisah. Satu bagian menjadi data pengujian dan 2 bagian lailmya menjadi data pelatihan sehingga terdapat 3 pasang data pelatihan-pengujian.
Pembagian dilakukan secara manual, mengikuti langkah-langkah sebagai berikut:
Terdapat 15 buah data ucapan setiap pembicara yang disimpan dalam 15 file yang diberi indeks 1,2,3,4,5,6,7,8,9,10,11,12, 13, 14 dan 15.
2 Bagian 1 terdiri atas 5 indeks ganjil peltama (1,3,5,7,9), bagian 2 terdiri atas 5 indeks genap pertama (2, 4, 6, 8, 10), dan bagian 3 terdiri atas 5 indeks terakbir (11, 12, 13, 14, 15).
3 Dibentuk 3 pasang (kelompok) data pelatihan-pengujian, yaitu:
a Kelompok 1: data pelatihan dari bagian 1 dan 3, data pengujian bagian 2.
b Kelompok 2: data pelatihan dari bagian 1 dan 2, data pengujian bagian 3.
c Kelompok 3: data pelatihan dari bagian 2 dan 3, data pengujian bagian 1.
4.4 Program Aplikasi
Aplikasi identifikasi pembicara yang telah dirancang, dikemas dalam satu program antar muka (interface) yang dibangun dengan menggunakan graphical user interface (GUJ) Matlab versi 7.01. Aplikasi tersebut hanya dapat dijalankan di dalam lingkungan perangkat lunak Matlab. Tampilan aplikasi terdiri atas form utama, form konfigurasi sistem, form pesan menunggu proses selesai, form hasil pelatihan,Jorm hasil identifikasi pembicara, dan form hasil pengujian (Lampiran 6).