Anda di halaman 1dari 163

PROYEK AKHIR

APLIKASI PENGENALAN WICARA UNTUK


SISTEM AKSES BUKU PERPUSTAKAAN

MARATUS SOLIHAH
NRP. 7203.040.006

Dosen Pembimbing :
TRI BUDI SANTOSO, ST, MT.
NIP. 132 128 464

JURUSAN TEKNIK TELEKOMUNIKASI


POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPOMBER
SURABAYA
2007

HALAMAN JUDUL
APLIKASI PENGENALAN WICARA UNTUK
SISTEM AKSES BUKU PERPUSTAKAAN
(Fase Pembelajaran)
LEMBAR PENGESAHAN
Oleh :
MARATUS SOLIHAH
NRP. 7203 040 006

Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk


Memperoleh Gelar Sarjana Sains Terapan (SST)
di
Politeknik Elektronika Negeri Surabaya
Institut Teknologi Sepuluh Nopember Surabaya

Disetujui oleh:
Tim Penguji Proyek Akhir: Dosen Pembimbing:

1. 1.

Drs. Miftahul Huda, MT Tri Budi Santoso ,ST, MT


NIP. 132 055 257 NIP. 132 128 464
2. 2.

Akuwan Saleh, SST Bima Sena Bayu D., SST


NIP. 131 831 467 NIP. 132 232 762
3.

Reni Soelistijorini, B.Eng.MT


NIP. 132 243 734
Mengetahui :
Ketua Jurusan Teknik Telekomunikasi

Drs. Miftahul Huda, MT


NIP. 132 055 257

ii
ABSTRAK

Abstrak - Pengenalan wicara (Speech Recognition) merupakan


suatu teknologi terapan dari teknologi wicara yang berfungsi untuk
mengubah bahasa lisan menjadi bahasa tulis. Dengan input sinyal
wicara, sistem akan mengidentifikasikan kata atau kalimat yang
diucapkan dan menghasilkan teks yang sesuai dengan apa yang
diucapkan. Dengan pengembangan teknologi speech recognition, input
suara dari pewicara dapat dimanfaatkan untuk aktifasi kinerja mesin atau
sebuah alat.
Pada proyek akhir ini, teknologi speech recognition
dimanfaatkan untuk mengakses buku perpustakaan. Dengan
pemanfaatan teknologi ini diharapkan dapat mempermudah akses
pengunjung dalam mengetahui berbagai macam buku yang tersedia di
perpustakaan serta meningkatkan minat masyarakat untuk berkunjung ke
perpustakaan.
Proyek akhir ini memanfaatkan sinyal suara sebagai input,
ekstraksi ciri dilakukan sehingga diperoleh parameter-parameter standart
dari masing-masing sinyal suara yang masuk. Proses ekstrak sendiri
terdiri dari proses front-end, frame blocking, windowing, FFT, dan
cepstrum. Sinyal hasil ekstrak tersebut disimpan sebagai data standart
(data referensi). Pada saat ada sinyal/suara baru yang masuk, maka
sistem akan memprosesnya (ekstraksi) dan akan mematchingkan sinyal
baru tersebut dengan sinyal standart yang sudah ada di database. Dengan
metode physical approach, data dengan error yang terkecil diasumsikan
mempunyai nilai yang sama dengan sinyal standart sehingga diijinkan
untuk mengakses data buku di perpustakaan. Prosentase kehandalan
sistem pada proyek akhir ini adalah 40%-80% untuk pengujian secara
offline dan 25%-90% untuk pengujian secara online.

Kata Kunci : Speech recognition, ,front-end detection, frame blocking,


windowing, FFT, cepstrum

iii
ABSTRACT

Abstract – Speech recognition is a technique from Digital Signal


Processing which is used in various applications, for example in
telecommunication technology. It’s not only able to provide a sending
data text but also sending a voice data. Nowadays, there are many kinds
of technology that apply this technique to operate a system, for example
using voice as a password, command to dial phone, etc.
This final project try to make another application of speech
recognition that using human voice as a command to open application
computer programs.
This final project using human voice for input signal, this
signal will be extracted until we get parameters for standart signal. The
process of extracting is start from front-end processing then frame
blocking, windowing, FFT, and the last is cepstrum. Last result from this
processes is a parameter that will be use as references. If there are new
signals come into the system, it will be compared with the references.
But before this new signal compared with references, it will be extracted
as well to get the data parameters from this new signal. The result from
new signal will be compare with the references to get the error value
from this matching process. New signal with the smallest error is
assumed as a similar signal with the references and the system will be
permit it to access the computer. The accuration of this system are 40%-
80% for offline testing and 25%-90% for online testing.

Key words - Speech recognition, front-end detection, frame blocking,


windowing, FFT, cepstrum

iv
KATA PENGANTAR

Segala puji syukur kami panjatkan ke hadirat Allah SWT,


karena hanya atas rahmat dan ridho-Nya kami dapat menyelesaikan
proyek akhir ini dengan judul :

APLIKASI PENGENALAN WICARA UNTUK


SISTEM AKSES BUKU PERPUSTAKAAN
Proyek akhir ini dibuat sebagai salah satu syarat akademis
untuk memperoleh gelar Sarjana Sains Terapan (SST) di Politeknik
Elektronika Negeri Surabaya, Institut Teknologi Sepuluh Nopember
Surabaya .
Dalam menyelesaikan proyek akhir ini kami berpegang pada
teori yang pernah kami pelajari dan bimbingan dari pembimbing proyek
akhir. Namun kami menyadari atas keterbatasan dalam penyusunan
buku proyek akhir ini, karenanya kami mohon ma’af atas segala
kekurangan. Kami sangat mengharapkan saran dan kritik yang
membangun demi kesempurnaan buku dan proyek akhir ini.
Demikian besar harapan penulis agar buku ini dapat bermanfaat
bagi para mahasiswa Politeknik Elektronika Negeri Surabaya dan
pembaca dalam menambah pengetahuan.

Surabaya, Juli 2007

Penulis

v
UCAPAN TERIMA KASIH

Syukur kehadirat Dzat yang Setia membantuku, Allah SWT


atas segala nikmat yang telah dilimpahkan. Solawat serta salam semoga
terlimpah kepada Sang Pilot Project Akhlak Nabi Muhammad SAW.
Kami menyadari bahwa terwujudnya Proyek Akhir ini tidak terlepas dari
bantuan, bimbingan, doa serta dukungan dari berbagai pihak.
Dengan segala ketulusan, keikhlasan dan kerendahan hati, kami
ingin menyampaikan rasa terima kasih dan penghargaan yang sebesar-
besarnya kepada :
1. Ibu dan Bapak tercinta yang telah membesarkan saya dengan
penuh kasih sayang,terima kasih yang tak terhingga atas segala
pengorbanan, serta doa yang tak henti-hentinya dipanjatkan
demi kesuksesan saya.
2. Bapak Dr.Ir.Titon Dutono, M.Eng selaku Direktur PENS-ITS.
3. Bapak Drs.Miftahul Huda, MT selaku Ketua Jurusan Teknik
Telekomunikasi.
4. Bapak Tri Budi Santoso, ST,MT sebagai dosen pembimbing
,terimakasih atas segala kesabaran dan keikhlasan Bapak dalam
membimbing kami.
5. Mbak Sida, Mas Saeful dan keponakanku Nisa yang tercinta,
yang selalu memberikan semangat dan dukungan.
6. Seluruh dosen penguji yang telah memberikan masukan dan
saran serta seluruh staf dan dosen pengajar PENS-ITS yang
telah sudi membagi ilmu kepada kami.
7. Bapak Bima dan sahabatku Moh.Hasbi Assidiqi , atas segala
bantuan dan keikhlasan dalam membantu kami menjawab
segala hambatan dalam proyek akhir.
8. Bapak Hary O. selaku Kepala Laboratorium DSP.
9. Bapak Sritrusta Sukaridhoto selaku Kepala Laboratorium
Jaringan Komputer dan Goodle Crew, yang telah bersedia
meminjamkan ruang audio sebagai tempat perekaman suara.
10. Partner PA Puguh dan teman-teman penghuni Lab. DSP, Isti,
Ike, Fina, Dini Admin, Herman, Nifa, Taris, Imen,Bayu,Luky,
Yahya, Dhanar, dan teman-teman yang selalu membuat suasana
Lab menjadi ceria,penuh makanan dan bersemangat.
11. Teman-teman D4 Telkom, terima kasih atas segala keindahan
persahabatan selama ini.

vi
12. Semua teman-teman yang dengan ikhlas menyumbangkan
suaranya untuk kami rekam maupun untuk pengujian.
13. Kurnia Hayati Rahman,makhluk terbaik,terlucu,termanis yang
pernah ku kenal, how great to be your sister, terima kasih atas
segala senyum, tawa, keceriaan, tempat berbagi suka dan duka
selama ini.
14. Mas Iwan K, terimakasih buat segala ketulusan doa, sharing
ilmu dan pikiran,support, dan semangat yang tak pernah henti
serta berbagai kiriman paket tak terduga selama Tugas Akhir.
15. Mbak Kiky, Ukhty Uci, Ukhty Fatim, Mbak Kurnia, Ukhty
Cyntia, semoga genk solihah kita awet sampe akhirat.
16. Adek-adek kecil ku di TPA Chusnul Khotimah Asem Jajar,
senyum tulus dan tawa ceriamu benar-benar melenyapkan
segala penat dan beban di hati.
17. Genk Alumni SSKI V and friends,
Kurnia,Hani,Husnia,Evi,Fithriyah,Rahma,Pipit,Liana,Yeni,Qon
ita,Ellysa,Lina,Belina,dkk, be my sister forever, kehadiran
kalian,mampu bangkitkan kembali semangatku.
18. Semua saudara & saudari ku mantan pengurus BEM PENS-
ITS,mantan SC OMB ’04 dan mantan Pemandu, Mbak
Putri,Mas Ilham, Mas Satria,Yuda dkk yang selalu mensupport
dikala TA. Terima kasih atas segala kenangan indah,sharing
pengalaman & pikiran , serta dukungan moril yang tiada henti.
19. Seluruh pengurus UKKI PENS-ITS, dek Yanti, dek Atik,
Ratna,Risna,Willy,Fitria,Diana,Ima,Febri,dkk,terima kasih atas
dukungan moril dan keceriaan yang dihadirkan selama ini.
20. Adek-adek Birama di XII P 6, terimakasih buat segala
BIRAMA INDAH qta yang ok’s banget.
21. Seluruh pengurus Uswah Student Center,especially genk
ASTIL dan UNIT 3 + dek Neny.
22. Sahabat kecilku di Teknik Elektro ITS.
23. Dan semua pihak yang telah membantu terselesaikannya
proyek akhir ini, yang tidak dapat kami sebutkan satu per satu
karena keterbatasan halaman.

Terima kasih buat setiap orang yang telah menyediakan satu


ruang hatinya buat seorang manusia biasa sepertiku, semoga ALLAH
membalas dengan syurga-Nya yang Maha Indah. Semoga proyek akhir
ini dapat memberikan manfaat bagi kemajuan ilmu pengetahuan.

vii
DAFTAR ISI

HALAMAN JUDUL...............................................................................i
LEMBAR PENGESAHAN .................................................................. ii
ABSTRAK............................................................................................ iii
ABSTRACT ..........................................................................................iv
KATA PENGANTAR ...........................................................................v
DAFTAR ISI ...................................................................................... viii
DAFTAR GAMBAR ............................................................................xi
DAFTAR TABEL ...............................................................................xiv

BAB 1 PENDAHULUAN ................................................................1


1.1 LATAR BELAKANG..........................................................1
1.2 TUJUAN...............................................................................2
1.3 PERMASALAHAN .............................................................2
1.4 BATASAN MASALAH.......................................................2
1.5 METODOLOGI....................................................................2
1.6 SISTEMATIKA PEMBAHASAN ………………………..4

BAB 2 TEORI PENUNJANG ..........................................................5


2.1 Perpustakaan dan Sistem Informasi Perpustakaan................5
2.1.1 Peran Perpustakaan .....................................................5
2.1.2 Sistem Informasi Manajemen Perpustakaan ...............6
2.2 Basis data (database)............................................................9
2.3 Sistem Pengolahan Suara....................................................11
2.3.1 Sinyal Suara Manusia................................................11
2.3.2 Proses Sampling........................................................12
2.3.3 Awal dan Akhir Sinyal Informasi .............................13
2.3.4 Frame Blocking.........................................................15
2.3.5 Windowing................................................................16
2.3.6 FFT (Fast Fourier Transform) ...................................18
2.3.7 Inverse Fast Fourier Transform (IFFT) .....................19
2.3.8 Liftering ....................................................................20
2.3.9 Cepstrum ...................................................................20
2.3.10 SSE (Sum Square Estimation) ..................................23

viii
BAB 3 PERENCANAAN DAN PEMBUATAN PERANGKAT
LUNAK …………………………………………………………….25
3.1 Pendahuluan....................................................................... 25
3.2 Perangkat Lunak yang dipergunakan ................................. 26
3.3 Perekaman Suara................................................................ 26
3.4 Sistem Pengolahan Sinyal Suara........................................ 32
3.4.1 Sampling................................................................... 32
3.4.2 Front End Detection ................................................. 35
3.4.3 Frame Blocking ........................................................ 36
3.4.4 Windowing ............................................................... 38
3.4.5 Fast Fourier Transform............................................. 39
3.4.6 Mutlak Log ............................................................... 42
3.4.7 Liftering.................................................................... 43
3.4.8 Cepstrum .................................................................. 44
3.5 Tahap pembandingan suara................................................ 46
3.5.1 Unknown Cepstrum.................................................. 46
3.5.2 Codebook Cepstrum untuk metode independent
speaker…………………………………………………………..46
3.6 Proses Pengujian ................................................................ 48
3.6.1 SSE (Sum Square Error).......................................... 50
3.6.2 Action ....................................................................... 53

BAB 4 PENGUJIAN DAN ANALISA SISTEM .......................... 55


4.1 Pengujian Dan Analisa Sistem Pengolahan Sinyal Suara .. 55
4.1.1 Perekaman Suara ...................................................... 55
4.1.2 SAMPLING.............................................................. 59
4.1.3 Front End Detection ................................................. 64
4.1.4 Frame Blocking ........................................................ 66
4.1.5 Windowing ............................................................... 66
4.1.6 FFT (Fast Fourier Transform) .................................. 67
4.1.7 Liftering.................................................................... 70
4.1.8 Cepstrum .................................................................. 71
4.1.9 Codebook Cepstrum ................................................. 72
4.2 Pengujian Sistem................................................................ 74
4.2.1 Sum Square Error ..................................................... 76

BAB 5 PENUTUP ......................................................................... 95


5.1 Kesimpulan ........................................................................ 95
5.2 Saran .................................................................................. 95

ix
DAFTAR PUSTAKA...........................................................................97
LAMPIRAN I ........................................................................................99
1.1 Instalasi Tcl/tk.............................................................................99
1.2 Instalasi Snack ............................................................................99
1.3 Membangun exstensi .dll pada visual C++ ..............................100
LAMPIRAN II.....................................................................................105
1.1 Program Perekaman .................................................................105
1.2 Program tampilan untuk pengujian offline...............................107
1.3 Program pengolahan sinyal......................................................110
1.4 Program rata-rata ......................................................................118
LAMPIRAN III ...................................................................................121
1.1Program Tampilan Awal............................................................121
1.2Program Pemberitahuan.............................................................122
1.3 Program Gender ........................................................................123
1.4 Program Home ..........................................................................124
1.5 Program Diktat..........................................................................127
1.6 Program Majalah.......................................................................131
1.7 Program Buku ...........................................................................133
1.8 Program CD ..............................................................................137
1.9 Program File Database..............................................................140
LAMPIRAN IV ...................................................................................143
1.1Tampilan Awal ..........................................................................143
1.2Tampilan Pemberitahuan ...........................................................143
1.3 Tampilan Gender ......................................................................144
1.4 Tampilan Home ........................................................................144
1.5 Tampilan Diktat ........................................................................145
1.6 Tampilan Majalah .....................................................................145
1.7 Tampilan Buku..........................................................................146
1.8 Tampilan CD.............................................................................146
1.9 Tampilan Database....................................................................147
PROFIL PENULIS............................................................................149

x
DAFTAR GAMBAR

Gambar 2.1 Sistem Informasi Manajemen Perpustakaan PENS-ITS...... 8


Gambar 2.2 Database Buku Perpustakaan .............................................. 9
Gambar 2.3 Skema organ penghasil sinyal suara.................................. 11
Gambar 2.4 Sinyal suara kata “Diktat” (pengucap perempuan)............ 12
Gambar 2.5 Proses sampling suatu sinyal............................................. 13
Gambar 2.6 Teknik Frame Blocking Bertindih..................................... 16
Gambar 2.7 Efek Windowing ............................................................... 17
Gambar 2.8 FFT pada beberapa sinyal.................................................. 19
Gambar 2.9 Proses pembangkitan cepstrum ......................................... 22
Gambar 2.10 Perbandingan tingkat ketepatan FFT dan Cepstrum …...23
Gambar 3.1 Gambaran Sistem .............................................................. 25
Gambar 3.2 Dynamic Microphone Sony F-V620 ................................. 27
Gambar 3.3 USB Digital Audio Processor ONKYO (SE-U55X) ......... 27
Gambar 3.4 Foto ruang perekaman ....................................................... 28
Gambar 3.5 Software Wavesurfer......................................................... 28
Gambar 3.6 Daftar kata yang diucapkan saat perekaman. .................... 29
Gambar 3.7 Tampilan perekaman suara................................................ 31
Gambar 3.8 Diagram Blok Sistem Pengenalan Wicara pada enrollment
phase............................................................................................ 32
Gambar 3.9 flowchart pembacaan sinyal input dan proses sampling.... 34
Gambar 3.10 flowchart front-end detection .......................................... 36
Gambar 3.11 flowchart frame blocking ................................................ 37
Gambar 3.12 flowchart windowing....................................................... 39
Gambar 3.13 Flowchart proses mutlak log ........................................... 42
Gambar 3.14 flowchart liftering............................................................ 43
Gambar 3.15 flowchart proses mendapatkan cepstrum......................... 45
Gambar 3.16 Tahap Pembandingan Suara ............................................ 46
Gambar 3.17 Flowchart program rata-rata ............................................ 47
Gambar 3.18 Diagram Blok Proses Pengujian...................................... 48
Gambar 3.19 Diagram kata yang diucapkan ......................................... 49
Gambar 4.1 Parameter perekaman di Wavesurfer................................. 56
Gambar 4.2 Hasil Perekaman kata “diktat” oleh salah satu pewicara
perempuan. .................................................................................. 57
Gambar 4.3 Sinyal suara bernoise......................................................... 59

xi
Gambar 4.4 Sinyal suara “diktat” oleh pewicara perempuan(a) dan laki-
laki(b)...........................................................................................62
Gambar 4.5 Perbandingan sinyal hasil sampling dengan software Matlab
dan Microsoft Visual C++............................................................63
Gambar 4.6 hasil frontend sinyal informasi...........................................64
Gambar 4.7 Sinyal informasi dengan berbagai variasi nilai k ...............65
Gambar 4.8 Frame ke-1 sinyal suara “diktat” dengan pewicara
perempuan....................................................................................66
Gambar 4.9 Hamming window kata “diktat” frame ke-1 oleh pengucap
perempuan....................................................................................67
Gambar 4.10 FFT Spektrum sinyal suara “diktat” pengucap perempuan
.....................................................................................................68
Gambar 4.11 FFT kata “diktat” frame ke-1 dengan bahasa C ...............69
Gambar 4.12 FFT kata “diktat” frame ke-1 dengan Matlab ..................69
Gambar 4.13 Liftering sinyal suara “diktat” pengucap wanita ..............70
Gambar 4.14 Liftering kata “diktat” dengan Matlab .............................71
Gambar 4.15 Spektrum dan Cepstrum dari kata “diktat” untuk pewicara
perempuan....................................................................................72
Gambar 4.16 Perbandingan Cepstrum kata “Diktat” antar pewicara
wanita dan pria. ............................................................................73
Gambar 4.17 Perbandingan cepstrum pewicara dengan cepstrum
codebook. .....................................................................................74
Gambar 4.18 Grafik Hasil Pengujian secara online...............................90
Gambar 4.19 Perbandingan cepstrum ....................................................92

xii
DAFTAR TABEL

Tabel 4.1 Nilai SSE pada pengujian kata ”diktat” ............................... 77


Tabel 4.2 Nilai SSE pada pengujian kata ”elka”.................................. 78
Tabel 4.3 Nilai SSE pada pengujian kata ”telkom” ............................. 79
Tabel 4.4 Nilai SSE pada pengujian kata ”elin” .................................. 80
Tabel 4.5 Nilai SSE pada pengujian kata ”IT”..................................... 81
Tabel 4.6 Nilai SSE pada pengujian kata ”meka”................................ 82
Tabel 4.7 Hasil pengujian kata “majalah”............................................ 83
Tabel 4.8 Hasil pengujian kata “buku”. ............................................... 83
Tabel 4.9 Hasil pengujian kata “cd”..................................................... 84
Tabel 4.10 Hasil pengujian kata “agama” ............................................ 84
Tabel 4.11 Hasil pengujian kata “komputer” ....................................... 85
Tabel 4.12 Hasil pengujian kata “sosial” ............................................. 85
Tabel 4.13 Hasil pengujian kata “teknologi” ....................................... 86
Tabel 4.14 Hasil pengujian kata “manajemen” .................................... 86
Tabel 4.15 Hasil pengujian kata “hiburan” .......................................... 87
Tabel 4.16 Hasil pengujian kata “ponsel”. ........................................... 87
Tabel 4.17 Hasil pengujian kata “pc”................................................... 88
Tabel 4.18 Hasil pengujian kata “iptek” .............................................. 88
Tabel 4.19 Hasil pengujian kata “program”......................................... 89
Tabel 4.20 Hasil pengujian kata “umum” ............................................ 89
Tabel 4.21 Hasil pengujian kata “diktat”pewicara perempuan secara
offline .......................................................................................... 91

xiii
BAB 1
PENDAHULUAN

1.1 LATAR BELAKANG


Beberapa tahun terakhir perkembangan dunia teknologi
informatika dan komunikasi telah mengalami kemajuan yang sangat
pesat, salah satunya adalah penelitian di bidang suara dimana sinyal
informasi yang dikirimkan tidak hanya berupa data teks tetapi juga
suara manusia. Dalam aplikasinya yang pernah dibuat oleh
mahasiswa PENS-ITS pada proyek akhir tahun 2006, suara
pengucap digunakan untuk mengidentifikasi suatu kondisi serta
kontrol akses,seperti untuk membuka aplikasi pada computer,
sistem absensi, serta dimanfaatkan pula dalam permainan
pembelajaran bahasa Inggris [1].
Perpustakaan sebagai salah satu fasilitas umum yang
banyak dimanfaatkan oleh masyarakat untuk mengakses berbagai
ilmu pengetahuan dalam bentuk buku kini dituntut untuk
memberikan pelayanan yang lebih baik seiring dengan kemajuan
teknologi telekomunikasi. Berbagai langkah dilakukan, mulai dari
penambahan fasilitas komputer yang bisa mengakses database buku
perpustakaan hingga perpustakaan online.
Pada proyek akhir ini kami membuat sebuah sistem
pengaksesan database yang memanfaatkan teknologi pengenalan
wicara (speech recognition). Sistem ini diharapkan dapat mengenali
suara dan kemudian hasil dari pengenalan suara tersebut digunakan
untuk sistem pengaksesan database buku perpustakaan. Dengan
demikian masyarakat semakin tertarik berkunjung karena adanya
penerapan teknologi pengenalan wicara yang masih dianggap baru,
pelayanan terhadap pengunjung perpustakaan menjadi lebih cepat
dan dapat juga dipergunakan oleh pengunjung dengan keterbatasan
fisik tertentu.
Namun berbagai persoalan akan muncul saat perintah suara
diberikan kepada mesin. Hal ini dikarenakan perbedaan karakter

[1]
Fania.K,Putri,”Pengolahan Sinyal Wicara pada Permainan Pembelajaran
Bahasa Inggris”, PENS-ITS, Surabaya, 2006

1
2

suara dari tiap individu. Sehingga pada sistem ini kami mencoba
menggunakan metode independent speaker yang diharapkan dapat
mengenali berbagai karakter suara manusia. Tetapi karena beberapa
keterbatasan, dalam aplikasi proyek akhir ini masih kami batasi
dengan pengaksesan berdasarkan perbedaan jenis kelamin.

1.2 TUJUAN
• Mengimplementasikan suatu sistem pengenalan sinyal wicara
untuk mengakses database buku perpustakaan yang
menggunakan metode independent speaker.
• Mempelajari lebih lanjut tentang pengolahan suatu sinyal
digital khususnya pengenalan sinyal wicara atau yang biasa
disebut dengan speech recognition.
• Meningkatkan minat masyarakat untuk berkunjung ke
perpustakaan karena adanya penerapan teknologi baru.

1.3 PERMASALAHAN
Permasalahan yang akan diselesaikan pada proyek akhir ini
adalah bagaimana memanfaatkan sistem pengenalan suara (Speech
Recognition) pada user untuk digunakan sebagai parameter dalam
sistem pencarian database buku perpustakaan. Untuk itu diperlukan
parameter-parameter dalam pengolahan sinyal seperti : proses
sampling, frame blocking, windowing dan FFT.

1.4 BATASAN MASALAH


Batasan masalah dari proyek akhir ini yaitu :
1) Bahasa pemrograman yang digunakan adalah bahasa C++ yang
diintegrasikan dengan Tcl/tk dan snack.
2) Sistem bersifat independent, yaitu pengguna sistem bisa
diakses oleh siapa saja khusus dewasa.
3) Pengakses sistem dibedakan berdasarkan jenis kelamin laki-
laki dan perempuan.
4) Proses perekaman dikondisikan seideal mungkin.

1.5 METODOLOGI
Proyek Akhir ini dilakukan melalui beberapa tahap
yaitu sebagai berikut:
3

• Studi Pustaka
Melakukan studi pustaka mengenai sistem pengolahan sinyal
wicara pada manusia, teknologi speech recognition, dan konsep
dasar Snack , Microsoft Visual C++, serta Tcl/Tk.

• Perancangan Sistem
Perancangan sistem dilakukan berdasarkan pada teori tentang
pengolahan dan pengenalan sinyal wicara dimana pada diagram
fase pembelajaran, sistem akan mengolah sinyal wicara dari
hasil perekaman hingga menjadi sebuah data standart
(database).

• Perancangan Perangkat Lunak (Software)


Perancangan dan pengenalan software meliputi software snack
2.2.2, Tcl/Tk 8.3.0 dan bahasa C.

• Perekaman Suara
Proses perekaman suara dilakukan di dalam ruangan audio,
dengan menggunakan software recording yang telah kita buat.

• Pembuatan Database
Pembuatan database dilakukan dengan mengolah sinyal wicara
dari hasil perekaman menjadi sebuah data standart.

• Integrasi dan Pengujian Sistem


Dilakukan integrasi antara program pembuatan database
dengan program pembanding dan dilakukan pengujian sistem
yang telah dibuat.

• Analisa Sistem
Dibuat analisa dari sistem yang telah dibuat berdasar kaidah-
kaidah pengolahan sinyal wicara.
4

1.6 SISTEMATIKA PEMBAHASAN


Sistematika pembahasan yang akan diuraikan dalam buku
laporan proyek akhir ini terbagi dalam bab-bab yang akan dibahas
sebagai berikut:

BAB 1 : PENDAHULUAN
Pada bab ini akan diterangkan secara singkat mengenai latar
belakang, tujuan, batasan masalah,metodologi, dan sistematika
pembahasan proyek akhir.
BAB 2 : TEORI PENUNJANG
Dijelaskan mengenai teori-teori yang berkaitan dengan bahasan
proyek akhir ini yang meliputi teori tentang pengolahan sinyal
suara, Tcl/Tk, Snack serta Visual C++.
BAB 3 : PERENCANAAN DAN PEMBUATAN
Berisi pembahasan secara lengkap mengenai tahap-tahap
perencanaan dan pengolahan sinyal wicara serta pembuatan data
base dari feature-feature aplikasi.
BAB 4 : PENGUJIAN DAN ANALISA
Bab ini berisi tentang hasil pengujian program disertai analisa yang
digunakan dalam pengolahan sinyal wicara.
BAB 5 : PENUTUP
Bab ini berisi tentang kesimpulan yang diambil dari hasil analisa
serta saran-saran yang diharapkan dapat memberikan
pengembangan dan penyempurnaan proyek akhir ini.
BAB 6 : DAFTAR PUSTAKA
Pada bagian ini berisi tentang referensi-referensi yang telah dipakai
oleh penulis sebagai acuan dan penunjang serta parameter yang
mendukung penyelesaian proyek akhir ini baik secara praktik
maupun sebagai teoritis
BAB 2
TEORI PENUNJANG

2.1 Perpustakaan dan Sistem Informasi Perpustakaan

2.1.1 Peran Perpustakaan


Perpustakaan sebagai sebuah pusat pengetahuan dan pusat
pembelajaran memiliki peran yang sangat penting dalam
pembangunan masyarakat karena di dalamnya tersedia begitu
banyak informasi yang dapat digunakan oleh masyarakat ketika
mereka bermaksud memiliki keterampilan yang dapat digunakan
untuk memproduksi sesuatu yang bernilai ekonomi, dari produk
yang sederhana sampai produk yang canggih. Tidak hanya itu,
perpustakaan juga sebenarnya menyediakan begitu banyak
informasi dan pengetahuan yang dapat digunakan untuk
memecahkan masalah kehidupan sehari-hari, dari kesehatan
keluarga sampai pada informasi tentang bagaimana memperluas
pergaulan dalam masyarakat. Perpustakaan adalah ‘gudang ilmu’,
bukan gudang buku seperti selama ini dipersepsikan orang pada
umumnya.
Dengan kekayaan sumber ilmu pengetahuan yang dimilikinya,
perpustakaan sebenarnya merupakan salah satu faktor pendukung
utama bagi pemerintah ketika akan melaksanakan program
pembangunan, baik fisik maupun mental karena melalui
perpustakaan, informasi tentang kebijakan pembangunan dapat
disebarluaskan pada masyarakat dengan cara yang lebih efektif dan
menjangkau berbagai lapisan masyarakat, baik lapisan sosial,
pendidikan, usia, suku bangsa, maupun lapisan ekonomi. Hal ini
dapat terjadi karena di perpustakaan tidak ada pembedaan terhadap
pengunjung. Semua orang dilayani sesuai dengan kebutuhannya,
bukan statusnya. [2]
Dalam dunia pendidikan, perpustakaan adalah salah satu
fasilitas pendukung yang penting . Perpustakaan adalah sumber
ilmu, tempat mencari informasi, tempat belajar ataupun

[2]
http://www.lib.ui.ac.id/news.php

5
6

penelitian.Perpustakaan adalah bagian dari sarana pendukung dalam


kelancaran proses belajar mengajar.
Perpustakaan perguruan tinggi adalah sumber ilmu
pengetahuan sering disebut sebagai jantung perguruan tinggi.
Perpustakaan perguruan tinggi merupakan penunjang tri dharma
perguruan tinggi yaitu sebagai pusat kegiatan belajar mengajar,
pusat penelitian dan informasi. Menurut Sulistyo-Basuki, tujuan
utama perpustakaan adalah membantu perguruan tinggi mencapai
tujuannya[3].

2.1.2 Sistem Informasi Manajemen Perpustakaan


Sistem Informasi adalah suatu sistem di dalam suatu organisasi
yang mempertemukan kebutuhan pengolahan transaksi harian,
mendukung operasi, bersifat manajerial dan kegiatan strategis dari
suatu organisasi dan menyediakan kepada pihak luar tertentu
laporan-laporan yang diperlukan. Informasi merupakan hal yang
sangat penting bagi manajemen dalam pengambilan keputusan.
Kualitas dari suatu informasi tergantung dari tiga hal, yaitu
informasi harus akurat, tepat pada waktunya dan relevan. Akurat,
berarti informasi harus bebas dari kesalahan-kesalahan dan tidak
bisa atau menyesatkan. Tepat pada waktunya berarti informasi yang
datang pada penerima tidak boleh terlambat. Informasi yang sudah
usang tidak akan mempunyai nilai lagi karena informasi merupakan
landasan dalam pengambilan keputusan. Relevan berarti informasi
tersebut memiliki manfaat untuk pemakainya.
Nilai dari informasi ditentukan oleh dua hal yaitu manfaat dan
biaya untuk mendapatkannya. Suatu informasi dikatakan bernilai
bila manfaatnya lebih efektif daripada biaya untuk
mendapatkannya. Akan tetapi perlu diperhatikan bahwa informasi
yang digunakan dalam suatu sistem informasi umumnya digunakan
untuk beberapa kegunaan. Sebagian besar informasi tidak dapat
persis ditaksir keuntungannya dengan satuan nilai uang, tetapi dapat
ditaksir nilai efektifitasnya.
Sistem informasi mempunyai peranan yang penting dalam
menyediakan informasi bagi manajemen. Supaya informasi yang

[3]
Sulistyo-Basuki. “Pengantar Ilmu Perpustakaan” Jakarta : Gramedia, 1991
7

diberikan oleh sistem informasi dapat mengena dan berguna bagi


manajemen, maka analis sistem harus mengetahui kebutuhan-
kebutuhan informasi yang diinginkan oleh manajemen. Untuk itu,
maka analisa sistem harus mengetahui lebih dulu mengenai kegiatan
dari manajemen dan tipe keputusan yang diambil.
Sistem Informasi dapat berupa gabungan dari beberapa elemen
teknologi berbasis komputer yang saling berinteraksi dan bekerja
sama berdasarkan suatu prosedur kerja (aturan kerja) yang telah
ditetapkan, dimana memproses dan mengolah data menjadi suatu
bentuk informasi yang dapat digunakan dalam mendukung
keputusan.
Sebagai pusat belajar, perpustakaan harus menyediakan koleksi
yang menunjang proses belajar mahasiswa dan dosen. Koleksi harus
berkaitan dengan pendidikan dan pengajaran, agar dapat memenuhi
sivitas akademinya yaitu mahasiswa, dosen dan peneliti. Koleksi
perpustakaan adalah semua koleksi yang dikumpulkan, diolah dan
disimpan untuk disebarluaskan kepada masyarakat guna memenuhi
kebutuhan informasi mereka (Perpustakan nasional RI, 1999 : 11).
Koleksi perpustakaan perguruan tinggi terdiri buku, majalah, Koran,
skripsi, tesis, disertasi dan audio visual seperti CD-ROM.
Pengembangan koleksi perpustakaan harus sesuai dengan
kebutuhan pemakainya. Untuk pemilihan dan pengadaan koleksi,
perpustakaan bekerja sama dengan tiap departemen menyeleksi
koleksi apa saja yang ada di silabus untuk menentukan buku wajib
dan buku penunjang mahasiswa agar koleksi tersebut benar-benar
digunakan. Kerjasama antara perpustakaan dalam hal ini
pustakawan sebagai penyedia informasi dengan pemakai
perpustakaan perlu terjalin agar koleksi yang ada di perpustakaan
bermanfaat semaksimal mungkin. [4]
Untuk dapat melaksanakan tugas-tugas tersebut, perpustakaan
perguruan tinggi khususnya perpustakaan PENS-ITS perlu
menyiapkan sumber daya manusia dalam hal ini pustakawan yang
terampil dan mengetahui sumber-sumber informasi yang ada di
perpustakaan yang akan membantu pemakai dalam menemukan

[4]
Indonesia. Perpustakaan Nasional “Pedoman Pengelolaan Koleksi
Perpustakaan Perguruan Tinggi” Jakarta : perpustakaan nasional, 1999.
8

informasi yang mereka butuhkan. Sementara itu SDM yang


kompeten di bidang perpustakaan masih sangat sedikit dan itu
dialami oleh perpustakaan FEUI. Jumlah pustakawan kompeten
tidak sebanding dengan jumlah pemakai yang harus mereka layani
setiap hari dan itu merupakan salah satu faktor yang menghambat
dalam memberikan layanan yang terbaik kepada pemakainya.
Dengan adanya sistem informasi manajemen perpustakaan,
maka pengunjung perpustakaan dapat lebih mudah mengakses
segala informasi yang diinginkan dari perpustakaan tanpa perlu
bertanya kepada petugas perpustakaan yang jumlahnya sangat
terbatas.
Sebagai contoh, perpustakaan PENS-ITS memiliki sebuah
sistem informasi manajemen yang bisa diakses dari dalam maupun
dari luar secara online dengan struktur sebagai berikut :

Gambar 2.1 Sistem Informasi Manajemen Perpustakaan PENS-ITS[5]


Sistem Informasi yang kami buat dalam proyek akhir ini
merupakan sub bagian dari sistem informasi manajemen

[5]
http:\\www.eepis-its.edu
9

perpustakaan secara keseluruhan, yaitu sistem informasi collection


yang diberi tanda warna kuning pada bagan di atas. Collection
berisi data buku yang dapat kita gambarkan dalam diagram sbb :

Gambar 2.2 Database Buku Perpustakaan

Dengan kemudahan akses sistem informasi, maka perpustakaan


dapat memberikan layanan yang terbaik kepada pengunjungnya.

2.2 Basis data (database)


Basis data (bahasa Inggris: database), atau sering pula dieja
basisdata, adalah kumpulan informasi yang disimpan di dalam
komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis
data tersebut. Perangkat lunak yang digunakan untuk mengelola dan
memanggil kueri (query) basis data disebut sistem manajemen basis
data (database management sistem, DBMS). Sistem basis data
dipelajari dalam ilmu informasi. Istilah "basis data" berawal dari
ilmu komputer. Meskipun kemudian artinya semakin luas,
memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai
10

basis data komputer. Catatan yang mirip dengan basis data


sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk
buku besar, kuitansi dan kumpulan data yang berhubungan dengan
bisnis.
Konsep dasar dari basis data adalah kumpulan dari catatan-
catatan, atau potongan dari pengetahuan. Sebuah basis data
memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di
dalamnya: penjelasan ini disebut skema. Skema menggambarkan
obyek yang diwakili suatu basis data, dan hubungan di antara obyek
tersebut. Ada banyak cara untuk mengorganisasi skema, atau
memodelkan struktur basis data: ini dikenal sebagai model basis
data atau model data. Model yang umum digunakan sekarang
adalah model relasional, yang menurut istilah Layman mewakili
semua informasi dalam bentuk tabel-tabel yang saling berhubungan
dimana setiap tabel terdiri dari baris dan kolom (definisi yang
sebenarnya menggunakan terminologi matematika). Dalam model
ini, hubungan antar tabel diwakili dengan menggunakan nilai yang
sama antar tabel. Model yang lain seperti model hierarkis dan
model jaringan menggunakan cara yang lebih eksplisit untuk
mewakili hubungan antar tabel.
Istilah basis data mengacu pada koleksi dari data-data yang
saling berhubungan, dan perangkat lunaknya seharusnya mengacu
sebagai sistem manajemen basis data (database management
sistem/DBMS). Jika konteksnya sudah jelas, banyak administrator
dan programer menggunakan istilah basis data untuk kedua arti
tersebut.
Dalam proyek akhir ini, istilah database memiliki dua makna,
yang pertama yaitu database yang diakses berupa data koleksi buku
perpustakaan, yang kita buat dalam file .tcl, sedangkan makna
kedua berarti database suara yang dipergunakan sebagai standart,
yang berupa angka-angka dalam file .txt, yang didapatkan melalui
serangkaian proses yang akan dibahas lebih mendalam pada sistem
pengolahan sinyal suara.
11

2.3 Sistem Pengolahan Suara

2.3.1 Sinyal Suara Manusia


Suara merupakan salah satu sumber informasi yang
dipergunakan manusia untuk mengkomunikasikan ide, keinginan,
dan perasaannya kepada orang lain. Organ tubuh yang berpengaruh
dalam proses produksi wicara adalah paru-paru, tenggorokan
(trachea), larinks, farinks, rongga hidung (nasal cavity), dan rongga
mulut (oral cavity). Pembangkitan sinyal suara terletak pada bentuk
lintasan vokalnya (vocal tract). Lintasan vokal tersebut terdiri atas:
dibawah katub tenggorokan (laryngeal pharynx), antara langit-langit
lunak katub tenggorokan (oral pharynk), di atas velum dan diujung
depan rongga hidung (nasal pharynx), dan rongga hidung (nasal
cavity), seperti ditunjukkan pada gambar di bawah ini.

Gambar 2.3 Skema organ penghasil sinyal suara[6]

[6]
Akhmad A,Arry ,” Proses Pembentukan dan Karakteristik Sinyal Ucapan”,
Teknik Elektro ITB,Bandung.
12

Sinyal suara merupakan hasil dari suara manusia, dimana


sinyal suara mempunyai frekuensi kerja antara 0 sampai 6000 Hz.
Gelombang sinyal wicara mempunyai bentuk yang unik seperti
gambar berikut:

Sinyal Input

30000

20000

10000

Amplitudo
0
0 5000 10000 15000 20000
-10000

-20000

-30000
Frekuensi
Sample ke-n

Gambar 2.4 Sinyal suara kata “Diktat” (pengucap perempuan)

2.3.2 Proses Sampling


Suara manusia akan menghasilkan sinyal analog yang terus
kontinyu. Sinyal suara merupakan sinyal yang tidak terbatas dalam
domain waktu (infinite time interval).Untuk keperluan pemrosesan
dalam transformasi fourier maka sinyal wicara harus dibentuk
dalam potongan-potongan waktu yang terbatas (finite time interval).
Karena itu sinyal yang ada dipotong-potong dalam slot-slot interval
waktu tertentu. Berdasarkan pada teori sampling Nyquist, maka
syarat dari frekuensi sampling adalah minimal dua kali frekuensi
sinyal. [7]

Fsampling ≥ 2 x Fsignal
...........(2.1)

[7]
http://id.wikipedia.org
13

Teori Shannon menyatakan frekuensi sinyal ini paling sedikit


adalah 2 kali frekuensi sinyal yang akan disampling(sinyal analog).
Ini adalah batas minimum dari frekuensi sample agar nantinya
cuplikan yang diambil menunjukkan bentukan sinyal yang asli
(analog). Lebih besar tentunya lebih baik, karena cuplikan akan
lebih menggambarkan sinyal yang asli. Seperti terlihat pada
Gambar 2.5 adalah bentukan proses pencuplikan. Setelah dilakukan
proses ini maka terbentuklah suatu sinyal analog-diskrit yang
bentuknya menyerupai aslinya namun hanya diambil diskrit-diskrit
saja.

Gambar 2.5 Proses sampling suatu sinyal[8]

2.3.3 Awal dan Akhir Sinyal Informasi


Secara umum, dalam pengolahan sinyal wicara, objek yang
akan diolah adalah sinyal informasi murni yang telah dipisahkan
dari noise maupun header tail yang didapat dari suara input.
Diperlukan perhitungan power, standar deviasi dan rata-rata untuk
mendapatkan awal dan akhir sinyal informasi.
2.3.3.1 Power
Power disini digunakan untuk melihat besar atau nilai dari
suara pada satu frame, proses frame blocking menghasilkan
beberapa frame dimana setiap frame terdiri dari 240 data / sampel
dan tiap sampel memiliki nilai masing-masing, besar nilai dari tiap
sampel memberikan nilai yang unik untuk tiap frame. Untuk
perhitungan dan pembandingan, tiap frame dicari satu nilai yang
dapat membedakan satu frame dengan frame lainnya, nilai yang
dapat membedakan satu frame dengan lainnya dinamakan power,

[8]
www.elektroindonesia.com
14

besar nilai power dapat dicari dengan memakai rumus sebagai


berikut:
240

Power = ∑(X )
i=0
i
2

......(2.2.)

dimana X i = nilai sampel ke-i

2.3.3.2 Standar Deviasi dan Rata-Rata


Dalam Statistika dan probabilitas standard deviasi adalah
perkiraan deviasi atau penyimpangan standar dari data-data yang
ada. Rata-rata adalah perkiraan nilai rata-rata dari semua data yang
muncul. Misalnya, di set data (2, 4), rata-rata adalah 3 dan standard
deviasinya adalah 1.
Hubungan dari nilai dari standard deviasi dengan nilai rata-rata
adalah jika data-data yang ada mendekati nilai rata-rata maka hasil
standard deviasinya kecil ( mendekati nol), jika data-data yang ada
berbeda jauh dengan nilai rata-rata maka hasil standard deviasinya
besar (jauh dari nol). Jika semua datanya sama maka rata-rata
adalah data itu sendiri dan standard deviasinya nol.
Dari data power yang ada akan dicari nilai standard deviasi dan
rata-rata dengan rumus sebagai berikut[9]:

Standard Deviasi = ∑x
i=0
i
2
/n
……(2.3)

dimana χ i = data sampel ke-i


n = banyak sampel

[9]
Fania.K,Putri,”Pengolahan Sinyal Wicara pada Permainan Pembelajaran
Bahasa Inggris”, PENS-ITS, Surabaya, 2006
15

Rata-rata = ∑
i=0
xi / n
……(2.4)

dimana χ i = data sampel ke-i


n = banyak sampel
2.3.3.3 Front-End Detection
Front end detection adalah proses untuk mencari nilai awal dan
akhir dari sebuah data. Pada proyek akhir ini digunakan untuk
mencari nilai awal dan akhir dari voiced. Hasil dari standard deviasi
dan rata-rata pada proses sebelumnya akan digunakan sebagai
parameter untuk menentukan awal dan akhir suara, voiced atau
suara akan memiliki nilai power yang melebihi nilai dari standard
deviasi dan rata-rata dari voiced.
Penentuan awal dan akhir dari sinyal suara dapat diperoleh
dengan :
voice > mean + standart deviasi
….(2.5)

2.3.4 Frame Blocking

Frame Blocking merupakan pembagian suara menjadi beberapa


frame dan satu frame terdiri dari beberapa sampel. Pengambilan
sampel tersebut tergantung dari tiap berapa detik suara akan
disampel dan berapa besar frekuensi samplingnya. Di dalam proyek
akhir ini menggunakan frekuensi sampling 12000 Hz dan
pengambilan sampel tiap 20 ms. Mengapa 20 ms? Karena harga
tersebut dinilai sebagai 2x panjang fonem terpendek.
Hal ini berarti dalam tiap frame terdapat 240 sampel.
Perhitungannya dapat kita lihat sebagai berikut :
16

Frekuensi sampling = 12000 Hz ,berarti dalam tiap 1 detik


terdiri dari 12000 sampel
Disampling tiap 20 ms = 0.002 dt
Jadi jumlah sampel tiap frame = (12000 x 0.002) / 1
= 240 sampel

Cara pengambilan sampel suara pada frame blocking ada dua


cara, cara bertindih dan cara tidak bertindih. Pada Proyek akhir ini,
pengambilan suara dilakukan dengan teknik bertindih dimana
sebagian nilai dari frame pertama dipakai untuk frame kedua, dan
sebagian nilai dari frame kedua dipakai untuk frame ketiga dan
begitupun seterusnya. Untuk lebih jelasnya dapat dilihat pada
gambar dibawah.

Gambar 2.6 Teknik Frame Blocking Bertindih[10]

2.3.5 Windowing
Sinyal suara yang dipotong-potong menjadi beberapa frame
akan menyebabkan efek diskotinuitas sehingga menyebabkan
kesalahan data pada proses fourier transform. Windowing
diperlukan untuk mengurangi efek diskontinuitas dari potongan –
potongan sinyal. Untuk mereduksi puncak pada setiap segment, kita
perlu untuk mengaplikasikan suatu window penghalus pada setiap
frame. Sinyal yang terbentuk memungkinkan terjadi overlapping

[10]
Fania.K,Putri,”Pengolahan Sinyal Wicara pada Permainan Pembelajaran
Bahasa Inggris”, PENS-ITS, Surabaya, 2006
17

satu frame dengan yang lain sehingga kita dapat membangkitkan


suatu fitur yang lebih halus sepanjang durasi waktu tersebut.
Jenis windowing ada beberapa macam yaitu Hamming,
Hanning, Bartlet, Rectanguler dan Blackman. Persamaan window
hamming adalah sebagai berikut :
♦ Window Hamming
0.52 − 0.46 cos[2πn /( N − 1)] 0 ≤ n ≤ N −1
Wham(n) =
0 elsewhere

Dimana:
N = Jumlah data dalam satu window
n = urutan data ke-n

Windowing yang paling cocok digunakan adalah Hamming


karena pembangkitan fitur lebih halus sepanjang durasi waktu
sebagaimana terlihat dalam gambar 2.7.

Gambar 2.7 Efek Windowing[11]

[11]
http://www.cert.or.id/~budi/courses/security/2006/pradono-report.doc
18

2.3.6 FFT (Fast Fourier Transform)


Transformasi fourier adalah suatu metode yang sangat efisien
untuk menyelesaikan transformasi fourier diskrit yang banyak
dipakai untuk keperluan analisa sinyal seperti pemfilteran, analisa
korelasi, dan analisa spectrum. Fast fourier Transformation atau
transformasi Fourier cepat, merupakan proses lanjutan dari DFT (
Diskrit Fourier Transformation ). Transformasi Fourier ini
dilakukan untuk mentransformasikan sinyal dari domain waktu ke
domain frekuensi. Hal ini bertujuan agar sinyal dapat diproses
dalam spektral substraksi.
FFT adalah bentuk khusus dari persamaan integral fourier :

H = ∫ h(t) e-jwt dt

.......(2.6)
Dengan mengubah variabel-variabel waktu (t), frekuensi (w)
kedalam bentuk diskrit diperoleh transformasi fourier diskrit (DFT)
yang persamaanya adalah :
N −1
H(kwo) = ∑ h(nT ) e
n =0
-jkwonT
.......(2.7)

Disederhanakan dengan T=1 sampel waktu N=sample waktu


k=sample frekuensi sehingga menjadi :

H(k) = ∑ h(n)e
.......(2.8)

dengan k : 0,1,2,…,N-1

FFT dilakukan dengan membagi N buah titik pada transformasi


fourier diskrit menjadi 2, masing-masing (N/2) titik transformasi.
Proses memecah menjadi 2 bagian ini diteruskan dengan membagi
(N/2) titik menjadi (N/4) dan seterusnya hingga diperoleh titik
minimum.
Pemakaian FFT karena untuk penghitungan komputasi yang
lebih cepat dan mampu mereduksi jumlah perkalian dari N2
19

menjadi NlogN perkalian. FFT yang digunakan memakai 256 point


dan arena hasil FFT simetris, maka keluaran FFT tersebut hanya
diambil sebanyak 128 data. Hasil dari proses FFT akan diperoleh
titik-titik sinyal yang simetris sehingga data yang diambil hanya
setengah dari data keseluruhan[12].
Gambaran tentang prinsip FFT dapat kita lihat dengan jelas
seperti gambar berikut :

Gambar 2.8 FFT pada beberapa sinyal[13]

2.3.7 Inverse Fast Fourier Transform (IFFT)


Inverse Fast Fourier Transform merupakan kebalikan dari
algoritma Fast Fourier Transform yaitu suatu algoritma untuk
mengubah sinyal suara dari domain frekuensi menjadi domain
waktu. Cepstrum atau cepstral coefficient juga dapat digambarkan
sebagai IFFT dari spektrum. Istilah cepstrum meliputi kebalikan
dari bentuk spectrum. Parameter untuk cepstrum disebut dengan
quefrency dimana quefrency merupakan kebalikan dari kata

[12]
Prayitno,Adi,”Aplikasi Pengenalan Penutur untuk Sistem Absensi dengan
Metode Penutur Dependent ”, PENS-ITS, Surabaya, 2006.
[13]
http://en.wikipedia.org
20

frequency. Cepstrum merupakan inverse dari transformasi fungsi


domain frekuensi. Quefrency menjadi parameter dalam domain
waktu. Feature khusus dari cepstrum yaitu berupa fundamental
period dan spectral envelope.

2.3.8 Liftering
Pada proses ini mengambil 16 buah data yang dapat mewakili
seluruh data dalam 1 frame. 16 buah data inilah yang nantinya
dipakai sebagai fitur yang dapat mempresentasikan masing-masing
frame. Liftering merupakan proses dari pemisahan elemen cepstrum
dalam dua faktor yaitu fundamental period dan spectral envelope.
Dimana untuk mendapatkan spectral envelope, elemen quefrency
yang rendah harus melalui proses FFT. Sedangkan untuk
mendapatkan fundamental period, elemen quefrency yang tinggi
harus melalui proses ekstraksi puncak[14].

2.3.9 Cepstrum
Istilah yang mencakup perhitungan cepstrum berasal dari
artikel asli yang ditulis oleh Bogert dimana berbagai terminology
signal processing (spektrum, frekuensi, tahap, analisa) / (spectrum,
frequency, phase, analysis) diaransemen ulang dalam permainan
huruf dan kata menjadi ( cepstrum, quefrency, saphe, alanysis).
Pengarang melakukan penamaan ini untuk menggaris bawahi
perlakuan yang tidak biasa pada data dalam domain frekuensi
seolah-olah adalah data dalam domain waktu dalam
membangkitkan satu set data baru sehingga sumbu x nya berada
dalam unit second tetapi variasi ditandai dalam spektrum frekuensi.
Cepstrum adalah fourier transform dari logaritma
autospektrum. Berguna untuk membatasi periodiksitas pada
autospektrum. Cepstrum juga berfungsi untuk menggandakan
domain frekuensi dan konvolusi pada domain waktu.

[14]
Eka K,Yesika,”Pembuatan Software Pembuka Program Aplikasi Komputer
berbasis Pengenalan Suara”, PENS-ITS, Surabaya, 2006.
21

Bentuk matematis dari proses cepstrum bisa dipisahkan


menjadi dua variabel. Jika kita mengambil bentuk log dari
magnitude kedua variabel tersebut, maka diperoleh rumus:

Log |X(ω)| = log |G(ω) | + log |H(ω) |

.......( 2.9)
Menghitung invers dari Fourier Transform dengan rumus
diatas, menghasilkan quefrency, yang mempunyai bentuk matematis
sebagai berikut:

F −1 log X (ω ) = F −1 log G (ω ) + F −1 log H (ω )


.......( 2.10)

Quefrency adalah x-axis dari cepstrum yang merupakan suatu


unit dalam domain waktu.
Cepstrum bisa didefinisikan dengan beberapa cara sebagai
berikut:
• Verbal : Cepstrum adalah Fourier Transform dari log
dari Fourier Transform
• Matematika : FT(log(Ft(sinyal))+j2 π m), dimana m
adalah bagian imaginer dari bilangan log komplex
22

Berikut contoh pembangkitan cepstrum dari sebuah sinyal


suara :

Gambar 2.9 Proses pembangkitan cepstrum[15]

Fitur Cepstrum telah digunakan dalam analisis dan pengenalan


suara. Fitur ini telah diverifikasi secara empirik sehingga lebih
efektif daripada koefisien FFT biasa pada sinyal suara.
Feature extraction, dapat menggunakan dua macam metode
yaitu FFT dan Cepstrum. Dijelaskan bahwa cepstrum lebih baik
daripada FFT. Dari hasil eksperimen tingkat ketepatan masing-
masing metoda menurut beberapa penelitian sebelumnya adalah
seperti yang dipaparkan berikut.

[15]
http://www.cert.or.id/~budi/courses/security/2006/pradono-report.doc
23

Gambar 2.10 Perbandingan tingkat ketepatan FFT dan Cepstrum[16]

Dapat terlihat dari data-data percobaan bahwa tingkat ketepatan


metode Cepstrum adalah relatif lebih tinggi dibandingkan dengan
metode FFT (Fast Fourier Transform).

2.3.10 SSE (Sum Square Estimation)

Konsep ini dapat direalisasikan dalam bentuk persamaan dasar


sederhana yang kita kenal sebagai sum squares error (SSE). Secara
formal dapat dibentuk dengan mencari nilai sum squares error
(SSE) dari dua nilai masukan terhadap nilai standar yang digunakan
untuk menguji.

Persamaan bentuk SSE adalah :

SSE (X) = ∑( X
k =1
k − c( X ))2
.......( 2.11)

[16]
Akhmad A,Arry ,” Proses Pembentukan dan Karakteristik Sinyal Ucapan”,
Teknik Elektro ITB,Bandung.
24

Dimana:
X k = nilai ciri kata yang masuk dalam domain frekuensi
(cepstrum sinyal input)
c(X) = nilai ciri dari kata standar dalam code book
(cepstrum code book)
k = jumlah data pada cepstrum
BAB 3
PERENCANAAN DAN PEMBUATAN
PERANGKAT LUNAK

3.1 Pendahuluan
Pada perencanaan dan pembuatan perangkat lunak ini akan
dibahas tentang proses instalasi, pembuatan perangkat lunak,
proses perekaman suara hingga pengolahan sinyal suara untuk
mendapatkan ciri atau parameter dari suara yang masuk yang
kemudian akan dijadikan sebagai suara standart (database). Suara
yang masuk akan dibandingkan dengan suara standart ini untuk
dapat mengakses halaman data buku perpustakaan yang diinginkan.
Bahasa pemrograman yang digunakan adalah Tcl/Tk versi 8.3
yang didukung Visual C++ 6.0 sebagai librarynya. Adapun snack
sebagai fasilitas dalam konfigurasi sistemnya.
Gambaran sistem keseluruhan pada proyek akhir ini
ditunjukkan pada gambar berikut :

Sinyal
Suara

Gambar 3.1. Gambaran sistem

25
26

3.2 Perangkat Lunak yang dipergunakan


Pada proyek akhir kali ini, digunakan softwareTtcl/Tk dan
Snack. Untuk dapat menginstal Snack, kami harus men-download
paket instaler Snack 2.2.n dari internet tepatnya di situs
www.speech.kth.se. Sebelum dapat menginstal Snack, dipastikan
terlebih dahulu bahwa terdapat Tcl/Tk yang terinstal di dalam
sistem operasi yang digunakan. Untuk sistem operasi Linux
biasanya Tcl/Tk sudah terinstal bersamaan dengan instalasi Linux.
Tetapi untuk sistem operasi windows, harus menginstal terlebih
dahulu Tcl/Tk. Tcl/Tk adalah suatu bahasa pemrograman script
yang dapat bekerja dengan Snack. Untuk proses lengkap
instalasinya dapat dilihat pada lampiran 1.

3.3 Perekaman Suara

Proses perekaman suara dilakukan untuk mendapatkan sinyal


suara yang akan diolah menjadi data standart. Perekaman dilakukan
oleh 40 orang pewicara dengan rincian 20 orang pewicara wanita
dan 20 orang pewicara pria. Dengan mengambil rata-rata suara dari
banyak pewicara diharapkan mampu mengurangi error yang terjadi
akibat variasi pewicara.
Perekaman suara dilakukan dalam ruangan audio di
laboratorium Jaringan Komputer PENS-ITS yang telah dilengkapi
dengan lapisan kedap suara sehingga diharapkan hasil perekaman
sinyal suara akan bebas dari noise serta memakai berbagai peralatan
diantaranya:
1. Dynamicrophone Microphonehrophone Sony F-V620
2. USB Digital Audio Processor ONKYO (SE-U55X)
3. Seperangkat PC multimedia
4. Software WAVESURFER

Berikut gambar perangkat perekaman dan foto ruang


perekaman :
27

Gambar 3.2 Dynamicrophone Microphone Sony F-V620

Gambar 3.3 USB Digital Audio Processor ONKYO (SE-U55X)


28

Gambar 3.4 Foto ruang perekaman

Berikut software Wavesurfer yang dipergunakan untuk


merekam suara :

Gambar 3.5 Software Wavesurfer


29

Cara pemakaian software WAVESURFER :


1. Buka software WAVESURFER
2. Klik icon File
3. Pilih New
4. pilih konfigurasi Waveform kemudian klik OK
5. Tekan tombol bulat merah di sisi kanan atas untuk mulai
merekam.
6. Tekan tombol persegi hitam di sisi kanan atas untuk stop.
7. Simpan dalam ekstensi .wav

Terdapat 20 jenis kata yang berhubungan dengan koleksi


perpustakaan yang harus diucapkan oleh masing-masing pewicara
saat perekaman yaitu :

Gambar 3.6 Daftar kata yang diucapkan saat perekaman.

Hasil dari perekaman suara ini akan disimpan dalam file yang
berekstensi “.WAV”. Perekaman suara digunakan untuk membuat
standart suara yang berupa kata dari nama jenis buku yang ingin
diakses.
30

Setelah suara direkam dan disimpan dalam .wav, suara harus


diubah dengan serangkaian proses pengolahan suara dan
menjadikannya sebagai codebook dalam bentuk .txt. Untuk itu
dibuat sebuah software perekaman suara yang dapat memproses
suara hingga menjadi code book. Software ini dibuat dari integrasi
Snack dan Tcl/Tk. Listing program yang berbasis Tcl/Tk 8.3.0. dan
Snack 2.2. dibuat pada notepad kemudian disimpan dalam file
berekstensi .tcl.
Berikut ini contoh perintah pembuatan tombol sekaligus
mengkoneksikannya dengan Snack yang dipergunakan dalam
pembuatan software perekaman suara :

button .f3.b1 -text Play -command {y play}


button .f3.b2 -text Rec -command {y record;z
record}
button .f3.b3 -text Stop -command {y stop}
button .f3.b4 -text save -command {y write
rekam\\it\\$filename.wav}
button .f3.b5 -text load -command {y read
rekam\\it\\$filename.wav}
button .f3.b6 -text Exit -command keluar
button .f3.b7 -text "Cepstrum" -command {y
fft}
entry .f3.entry -width 40 -textvariable filename
pack .f3.b1 .f3.b2 .f3.b3 .f3.entry .f3.b4 .f3.b5
.f3.b6 .f3.b7 -side left -padx 5 -pady 5

Tampilan software perekam suara adalah sebagai berikut:


31

Gambar 3.7 Tampilan perekaman suara

Dalam software yang kami buat terdapat beberapa tombol


yaitu:
1. Tombol play berfungsi memainkan database
2. Tombol Rec berfungsi untuk memulai perekaman.
3. Tombol Stop berfungsi untuk mengakhiri proses
perekaman suara.
4. Tombol save berfungsi untuk menyimpan hasil
rekaman dengan nama sesuai yang ditulis dalam box
entry.
5. Tombol Load berfungsi untuk menampilkan sinyal
suara.
32

6. Tombol Exit untuk keluar dari aplikasi


7. Tombol Make DB untuk membuat database.

3.4 Sistem Pengolahan Sinyal Suara


Diagram blok untuk pengolahan sinyal suara pada fase
pembelajaran adalah sebagai berikut :

code
book

Gambar 3.8 Diagram Blok Sistem Pengenalan Wicara pada enrollment phase

Perancangan sistem dilakukan berdasarkan pada diagram


pembelajaran (enrollment phase) dan diagram pengujian (testing
phase) dimana untuk diagram enrollment phase sistem akan
melakukan dan menganalisa sedemikian rupa sinyal suara / wicara
dari pengguna kemudian dimasukkan ke dalam database.
Sedangkan untuk pengujian, bahwa sinyal suara yang dimasukkan
ke dalam sistem akan dikenali melalui cara pembandingan dengan
data pada database, setelah itu sistem akan mengambil keputusan
berdasarkan hasil pembandingan data tersebut.
Semua program pengolahan suara dibuat dalam bahasa C
dengan kompiler visual C++ dan dibuat dalam file berekstensi .dll
sehingga dapat diintegrasikan dengan Tcl/Tk dan Snack.

3.4.1 Sampling
Seperti yang telah dijelaskan pada sub bab 2.1.2, disebutkan
bahwa frekuensi sampling yang digunakan adalah sebesar 12000
Hz, dimana dalam 1 detik sinyal tersebut terdapat 12000 titik
sampling. Untuk mendapatkan data sampel dari suara yang direkam
dan disimpan dalam file berekstensi “.wav” maka dibuat program
33

berbasis C++ yang diintegrasikan dengan Tcl/Tk 8.3.0 dan


Snack2.2.
Perintah yang dipergunakan untuk mendapatkan panjang sinyal
suara yang masuk serta mengambil sample dari sinyal suara dalam
bahasa C adalah sebagai berikut :

sound = Snack_GetSound(interp,Tcl_GetStringFromObj(objv[0],
NULL));
signal_length = Snack_GetLength(sound);
for (k=0;k<signal_length;k++)
{
x[k]=(float)Snack_GetSample(sound, 0, k);
}

Flowchart pembacaan sinyal input dan proses sampling adalah


sebagai berikut :
34

Gambar 3.9 flowchart pembacaan sinyal input dan proses sampling


35

3.4.2 Front End Detection


Program frontend digunakan untuk mendeteksi letak sinyal
informasi dari semua sinyal yang telah masuk. Sinyal input yang
telah diperoleh dari proses sampling, harus dihitung harga mean dan
standart deviasinya, kemudian bisa didapatkan posisi sinyal
informasi. Beberapa konsep matematis yang dibutuhkan untuk
mendeteksi batas awal dan akhir sinyal informasi adalah sebagai
berikut :
n

• Mean = ∑
i=0
xi / n
n

• Standart Deviasi = ∑x
i=0
i
2
/n
• Sinyal Informasi > mean + standart deviasi

Dimana Xi adalah sinyal sample ke-i dan n adalah banyaknya


nilai sample pada sinyal input. Untuk lebih jelasnya, algoritma front
end detection adalah sebagai berikut :
36

Gambar 3.10 flowchart front-end detection

3.4.3 Frame Blocking


Hasil perekaman suara merupakan sinyal analog yang berada
dalam domain waktu yang bersifat variant time, yaitu suatu fungsi
yang bergantung waktu. Oleh karena itu sinyal tersebut harus
dipotong-potong dalam slot-slot waktu tertentu agar dapat dianggap
invariant. Sinyal suara dipotong sepanjang 20 milidetik disetiap
37

pergeseran 10 milidetik. Setiap potongan tersebut disebut frame.


Jadi dalam satu frame terdapat 240 sampel dari 12000 sampel yang
ada.
Flowchart dari frame blocking sinyal adalah sbb:

Gambar 3.11 flowchart frame blocking


38

3.4.4 Windowing
Window yang digunakan pada proyek akhir ini adalah window
hamming. Digunakan window ini karena mempunyai hasil yang
lebih baik dalam pembatasan sinyal yang akan dianalisa. Setelah
proses pengambilan sampel maka langkah selanjutnya adalah proses
windowing yang berfungsi untuk mengurangi efek diskontinyuitas
pada ujung-ujung frame yang di hasilkan oleh potongan–potongan
sinyal. Persamaan dari window hamming adalah sebagai berikut :

y[i] = x[i] * (0.54 – 0.46 * cos (2.0 * 3.14159265 * (i-1)/240)) ........ (3.1 )

Proses window dapat dilihat pada flowchart berikut ini :


39

Gambar 3.12 flowchart windowing

3.4.5 Fast Fourier Transform


Fourier Transform adalah algoritma untuk mengubah sinyal
suara dari domain waktu menjadi domain frekuensi. Pada umumnya
sebuah sinyal suara direpresentasikan pada domain waktu untuk itu
diperlukan algoritma fourier transform. Diskrit Fourier
40

Transformasi (DFT) adalah deretan yang terdefinisi pada kawasan


frekuensi – diskrit yang merepresentasikan transformasi fourier
terhadap suatu deretan terhingga (finite duration sequence). Pada
tugas akhir ini memakai fast fourier transform karena algoritma fast
fourier transform lebih cepat dan efisien untuk pemrosesan data
yang lebih besar dibanding diskrit fourier tranform.
Berikut listing program fft:

void cal_fft(x,y,l,mode)
float *x,*y,mode;
int l;
{
int np,lmx,lo,lix,lm,li,j1,j2,nv2,npm1,i,j,k;
float scl,arg,c,s,t1,t2;
for(i=0;i<pow(2,l);i++)
y[i]=0;
--x;
--y;

/* ====== radix-2 fft ====== */


np=(int)pow(2.0,(float)(l));
lmx=np;
scl=(float)(6.283185303/(float)np);
for(lo=1;lo<=l;++lo)
{
lix=lmx;
lmx=(int)(lmx/2.0);
arg=0.0;
for(lm=1;lm<=lmx;++lm)
{
c=(float)cos(arg);
s=(float)(mode*sin(arg));
arg=arg+scl;
for (li=lix; lix<0 ? li>=np : li<=np; li+=lix)
{
j1=li-lix+lm;
j2=j1+lmx;
t1=x[j1]-x[j2];
41

t2=y[j1]-y[j2];
x[j1]=x[j1]+x[j2];
y[j1]=y[j1]+y[j2];
x[j2]=c*t1+s*t2;
y[j2]=c*t2-s*t1;
}
}
scl=(float)(2.0*scl);
}

/* ====== bit reversal ====== */


j=1;
nv2=(int)(np/2.0);
npm1=np-1;
for(i=1;i<=npm1;++i)
{
if(i>=j)
goto L30;
t1=x[j];
t2=y[j];
x[j]=x[i];
y[j]=y[i];
x[i]=t1;
y[i]=t2;
L30:
k=nv2;
L40:
if(k>=j)
goto L50;
j-=k;
k=(int)(k/2.0);
goto L40;
L50:
j=j+k;
}
42

3.4.6 Mutlak Log


Proses fast fourier transform akan menghasilkan dua buah nilai
yaitu real dan imajiner. Untuk proses selanjutnya dibutuhkan nilai
real saja untuk pemrosesan sinyal suara secara matematis dan agar
dapat diplot hasil gambarnya. Untuk itu diperlukan proses mutlak
log.
Algoritma proses mutlak log adalah sbb :

Gambar 3.13 Flowchart proses mutlak log


43

3.4.7 Liftering
Pada proses ini mengambil 16 buah data yang dapat mewakili
seluruh data dalam satu frame. Data inilah yang nantinya dipakai
sebagai fitur yang dapat mempresentasikan masing-masing frame.
Untuk membuktikan 16 buah data ini dapat mewakili keseluruhan
data dalam satu frame ,dapat dilakukan proses fourier transform
sekali lagi.
Flowchart dari Liftering adalah sebagai berikut :

Gambar 3.14 flowchart liftering


44

3.4.8 Cepstrum
Cepstrum merupakan suatu bentuk yang biasa dipergunakan
untuk mendapatkan informasi dari sebuah sinyal wicara. Cepstrum
dapat digunakan untuk memisahkan sinyal tereksitasi (yang berisi
kata dan pitch) dengan fungsi transfer (yang berisi kualitas suara).
Menggunakan cepstrum sebagai penganalisa spektral adalah sebuah
proses yang sangat berbeda dengan LPC. Cepstrum didapatkan dari
hasil mutlak log FFT kedua setelah proses liftering dilakukan.
Cepstrum inilah yang nantinya digunakan sebagai acuan pembuatan
code book.
45

Algoritma dari proses mendapatkan cepstrum adalah sbb :

Gambar 3.15 flowchart proses mendapatkan cepstrum


46

3.5 Tahap pembandingan suara


Hasil dari tahap pemrosesan suara adalah data cepstrum yang
dapat mewakili suara pengguna. Data inilah yang digunakan
sebagai codebook. Untuk tahap pembandingan suara diperlukan dua
buah data pembanding, satu data adalah voiced yang tidak diketahui
dan yang lain adalah voiced yang sudah diketahui (codebook).

Unknown Codebook
Cepstrum Cepstrum

SSE

action

Gambar 3.16 Tahap Pembandingan Suara

3.5.1 Unknown Cepstrum


Unknown Cepstrum adalah hasil cepstrum dari voiced yang
belum diketahui. Pada proyek akhir ini hasil cepstrum voiced yang
ingin dikenali disimpan pada file dengan nama “cepstrum.txt”. File
“cepstrum.txt” memberikan informasi semua tentang suara yang
ingin diketahui, antara lain panjang frame dan nilai cepstrum tiap
frame, yaitu 16 buah data yang mewakili nilai satu frame.

3.5.2 Codebook Cepstrum untuk metode independent


speaker.
Codebook Cepstrum adalah hasil cepstrum dari 20 kata yang
digunakan sebagai codebook. Codebook cepstrum dari masing-
masing kata diperoleh dari hasil rata-rata cepstrum untuk 20 suara
pewicara yang berbeda, namun memiliki jenis kelamin yang sama.
47

Misalkan dari sebuah kata ”diktat”, terdapat 40 cepstrum, yaitu


20 cepstrum diktat perempuan dan 20 cepstrum diktat laki-laki. Dari
setiap 20 cepstrum itu akan di rata-rata hingga menghasilkan 1
cepstrum untuk dimasukkan ke dalam code book. Jadi code book
sekarang berisi 2 buah cepstrum, yaitu 1 cepstrum diktat perempuan
dan 1 cepstrum diktat laki-laki.
Listing program rata-rata yang dipergunakan untuk membuat
codebook adalah sebagai berikut :

Gambar 3.17 Flowchart program rata-rata

Hasil rata-rata ini kemudian dimasukkan dalam sebuah file


berekstensi .txt dan dimasukkan dalam code book sebagai data
standart.
48

3.6 Proses Pengujian


Proses pengujian dilakukan untuk menguji keberhasilan suatu
sistem. Blok diagram pada sistem pengujian adalah sebagai berikut :

Gambar 3.18 Diagram Blok Proses Pengujian

Dalam proses ini, pengguna diharapkan mengucapkan kata


yang telah ditentukan. Adapun diagram kata yang diucapkan dalam
pengujian ditunjukkan pada gambar 3.19 :
49

Gambar 3.19 Diagram kata yang diucapkan

Proses pengujian ini dimulai sewaktu pengguna memilih kategori


dan mengucapkannya. Sistem akan menganalisa dan mengekstrasi input
suara yang masuk tersebut hingga dihasilkan file yang bernama
”cepstrum.txt”. Selanjutnya, file ”cepstrum.txt” akan dibandingkan
dengan code book menggunakan metode SSE ( Sum Square Error).
50

3.6.1 SSE (Sum Square Error)

Pada proyek akhir ini metode yang digunakan untuk


membandingkan antara suara yang masuk dengan code book adalah
metode physical approach menggunakan SSE (Sum Square Error).
Adapun persamaan dari SSE adalah:

SSE (X) = ∑( X
k =1
k − c( X ))2
.......(3.2)

Dimana:
X k = nilai ciri kata yang masuk dalam domain frekuensi
c(X) = nilai ciri dari kata standar dalam code book
k = urutan nilai magnitudo dari ciri kata
m = banyaknya nilai magnitudo dari ciri kata

Berikut program SSE dalam bahasa C yang diintegrasikan dengan


snack :

#include <math.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "snack.h"

#define baris 256


#define NUMFILE 2

int sse(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj


*CONST objv[])
{

FILE *fsse=fopen("sse.txt","w");
FILE *fmin=fopen("min.txt","w");
FILE *fout=fopen("out.txt","w");

char *nama[]={"diktat1.txt","majalah1.txt","buku1.txt","cd1.txt"};
51

char *input="cepstrum.txt";
double sse[NUMFILE],min,out;
int i,j;

for(i = 0;i < NUMFILE;i++)


{
FILE *fin = fopen(input,"r");
FILE *fstd = fopen(nama[i],"r");
sse[i] = 0;
for(j = 0; j < baris;j++){

fscanf(fin,"%*lf %lf",&in);
fscanf(fstd,"%*lf %lf",&std);
sse[i] += (std-in)*(std-in);
}
fprintf(fsse,"%lf\n",sse[i]);

fclose(fin);
fclose(fstd);
}

min = 100;
for(i = 0; i < NUMFILE; i++){
if( sse[i] < min)
{
min = sse[i];
fprintf(fout ,"%d", min);
}

}
fprintf(fmin,"%lf\n",min);

fclose(fsse);
fclose(fmin);
fclose(fout);
}

EXPORT(int, Sse_Init)(Tcl_Interp *interp)


{
52

#ifdef USE_TCL_STUBS
if (Tcl_InitStubs(interp, "8", 0) == NULL) {
return TCL_ERROR;
}
#endif
#ifdef USE_TK_STUBS
if (Tk_InitStubs(interp, "8", 0) == NULL) {
return TCL_ERROR;
}
#endif
#ifdef USE_SNACK_STUBS
if (Snack_InitStubs(interp, "2", 0) == NULL) {
return TCL_ERROR;
}
#endif
if (Tcl_PkgProvide(interp, "sseq", "1.0") != TCL_OK) {
return TCL_ERROR;
}
Snack_AddSubCmd(SNACK_SOUND_CMD, "sse",
(Snack_CmdProc *) sse, NULL);
return TCL_OK;
}
EXPORT(int, Sse_SafeInit)(Tcl_Interp *interp)
{
return Sse_Init(interp);
}

Nilai dari “cepstrum.txt” akan dibandingkan dengan codebook


pada tiap halaman. Contoh pada halaman “Home” terdapat 4 codebook
(diktat,majalah,buku dan CD), maka nilai pada ”cepstrum.txt” akan
dibandingkan dengan codebook menggunakan metode sse sehingga
didapatkan suatu nilai sse dari tiap-tiap codebook. Nilai tersebut
disimpan pada file ”sse.txt”. Setelah diciptakan file ”sse.txt” maka
sistem akan melakukan kalkulasi untuk mencari nilai minimum dari nilai
yang terdapat dalam “sse.txt”. Nilai minimum tersebut akan dicatat pada
53

file ”min.txt” dan juga akan menghasilkan file ”out.txt” yang berfungsi
untuk melakukan tindakan dari sistem ini.

3.6.2 Action
Action adalah tindakan yang dilakukan oleh software apabila
suara yang diucapkan sama dengan codebook. Pada kesempatan ini,
action akan menampilkan informasi tentang judul – judul buku dari
kategori yang diucapkan oleh pengguna. Pada sistem, pengguna dapat
menikmati hasil setelah sistem menghasilkan file “out.txt”. file tersebut
yang akan menentukan tindakan selanjutnya yang dalam sistem ini akan
menampilkan halaman selanjutnya.
BAB 4
PENGUJIAN DAN ANALISA SISTEM

Pada bab ini akan dijelaskan tentang pengujian dan analisa terhadap
kinerja software yang telah dibuat. Dengan demikian akan diketahui
tingkat keberhasilan dan tingkat kekurangan dari sistem atau software
yang telah dibuat dalam proyek akhir kali ini.
Pengujian yang dilakukan meliputi :
1. Pengujian dan analisa sistem pengolahan sinyal suara (mode
pembelajaran)
2. Pengujian dan analisa hasil SSE programming
3. Pengujian dan analisa sistem aplikasi pengenalan suara untuk
mengakses data base buku perpustakaan (mode pengujian)

4.1 Pengujian Dan Analisa Sistem Pengolahan Sinyal Suara


Tujuan diadakan pengujian dan analisa untuk pengolahan sinyal
suara adalah untuk mendapatkan ciri atau parameter dari sinyal suara
tersebut
Tahap pengolahan sinyal suara dalam proyek akhir ini adalah
sebagai berikut : perekaman suara, sampling, frame blocking,
windowing, FFT (Fast Fourier Transform), Cepstrum dan terakhir
proses SSE (Sum Square Error) sebagai penentu keputusan

4.1.1 Perekaman Suara


Proses perekaman merupakan titik kritis, karena proses
perekaman ini akan menjadi dasar dalam penentuan model akustik.
Proses perekaman suara telah dijelaskan dalam bab sebelumnya.
Proses perekaman yang dilakukan dengan menggunakan perangkat
lunak yang mempunyai beberapa parameter sebagai berikut :

55
56

Gambar 4.1 Parameter perekaman di Wavesurfer

Keterangan :
• 12000 : menunjukkan frekuensi sampling yang digunakan.
• Channels : 1, menunjukkan bahwa suara direkam dengan
menggunakan channel mono.
• Sample Encoding : Lin16, menunjukkan bahwa suara direkam
dengan menggunakan 16 bit PCM.

Berikut contoh hasil perekaman suara yang telah disimpan dan


dibangkitkan dengan menggunakan software perekaman suara yang
telah kami buat dari integrasi Tcl/Tk dan Snack :
57

Gambar 4.2 Hasil Perekaman kata “diktat” oleh salah satu pewicara perempuan.

Menurut Arry Akhmad Arman selaku pengembang Diphone


Database Bahasa Indonesia, untuk menghasilkan rekaman kata yang
akurat dan bebas noise, diperlukan konfigurasi yang ideal atau
konfigurasi tidak ideal yang masih bisa ditolerir yaitu sbb :

a. Konfigurasi ideal, meliputi :


• Penggunaan microphone kualitas tinggi yang dirancang
khusus untuk ucapan, yaitu microphone yang respon
frekuensinya tidak terlalu lebar dan ada di daerah jangkauan
frekuensi suara manusia. Microphone jenis ini akan menekan
suara-suara lain yang ada di luar daerah jangkauan suara
manusia.

• Penggunaan alat perekam digital yang mempunyai : (1)


saluran input microphone kualitas tinggi, (2) saluran digital
yang memungkinkan transfer data secara digital ke PC.

• Penggunaan sound card khusus pada PC yang dilengkapi


dengan saluran optik digital.
58

• Perekaman dilakukan tanpa PC atau laptop, sehingga akan


mengurangi tingkat kebisingan akibat kipas pendingin
komputer. Setelah perekaman selesai dilakukan, lakukan
transfer data secara digital (optik) ke PC melalui soundcard
khusus yang telah disiapkan.

b. Konfigurasi Tidak Ideal yang Masih Dapat Diterima


1. Gunakan microphone kualitas tinggi.
2. Gunakan pre-amplifier eksternal yang low-noise dan dapat
diatur level input dan outputnya. Hubungkan microphone ke
saluran input pre-amplifier.
3. Gunakan laptop (notebook) yang berkualitas bagus, sehingga
suara kipas yang dihasilkannya tidak terlalu bising. Biasanya
notebook tipis Pentium III tidak menghasilkan suara kipas yang
terlalu bising.
4. Hubungkan output pre-amplifier ke notebook melalui jalur
audio menggunakan kabel audio yang kualitasnya baik.
5. Aturlah level input dan output pre-amplifier serta level input
perekaman pada notebook, sehingga menghasilkan suara yang
bersih, noise rendah, levelnya cukup besar, tapi tidak pernah
mencapai level maksimum.

Dari hasil perekaman seperti pada gambar 4.1 dapat dilihat


bahwa sinyal suara bebas dari noise karena ruang perekaman dan
perangkat perekaman sudah sesuai dengan konfigurasi standart.
Dari proses perekaman yang dilakukan juga ditemukan adanya
korelasi positif antara kuat lemahnya amplitudo dengan sinyal suara
yang dihasilkan. Semakin tinggi amplitudo, maka semakin bagus
sinyal suara yang dihasilkan karena mampu menekan noise yang
ada di sekitar. Mempertinggi amplitudo bisa dilakukan dengan
memperkeras suara pewicara yang sedang melakukan proses
perekaman, namun ketika memperkeras suara juga perlu
diperhatikan karena harga amplitudo yang terlalu tinggi hingga
melebihi kapasitas jangkauan alat perekam juga dapat
mengakibatkan sinyal tampak cacat, yang bisa jadi mempengaruhi
untuk proses selanjutnya.
59

Pada saat perekaman sempat terjadi pergantian microphone


karena ada masalah pengkabelan, karena microphone yg kedua
lebih sensitif jadi perubahan sedikit getaran udara di sekitar dapat
menyebabkan timbulnya noise dalam perekaman. Akibatnya, sinyal
suara yang dihasilkan kurang bagus dan bernoise, seperti terlihat
pada gambar berikut :

Gambar 4.3 Sinyal suara bernoise

Dari kurang lebih 25 suara yang direkam hanya dipilih 20 suara


yang akan diproses sebagai suara standart berdasarkan kriteria :
1. Minim noise
2. Sinyal tidak cacat

4.1.2 SAMPLING
Dengan menggunakan program yang telah dibuat sesuai dengan
parameter perekaman pada gambar 4.1, proses sampling sinyal
standart menggunakan frekuensi sampling sebesar 12000 Hz. Data
60

sinyal suara yang didapatkan dari kata ”diktat” adalah sebagai


berikut :

4.1.2.1 Sampling kata ”diktat”:

• Data amplitudo sinyal suara :


a. Pewicara perempuan :

-703
-1050
-1058
-1063
-1051
-1036
-1013
-993
-1000
-1010
-998
-978
-979
-1011
-1034
-1026
-1017
-1017
-1040
-1074
-1087
……..
61

b. Pewicara laki-laki :

-1
-2
-3
-6
-7
-8
-12
-12
-13
-16
-18
-20
-23
-24
-26
-28
-31
-32
-33
-34
-34
………
62

• Gambar sinyal

Sample ke-n

(a)

u s

Sample ke-n
(b)
Gambar 4.4 Sinyal suara kata “Diktat” oleh pewicara “Perempuan” (a) dan
pewicara “Laki-laki” (b)

Dengan frekuensi sampling sebesar 12000 Hz, maka


didapatkan bentuk sinyal yang hampir mirip dengan sinyal
analognya seperti pada gambar 4.3, karena sinyal suara manusia
memiliki jarak frekuensi antara 300 sampai 3400 Hz, dimana syarat
Nyquist minimal fsampling ≥ 2 x fsinyal telah terpenuhi.
63

Dari hasil sampling, dapat dilihat bahwa untuk kata yang sama
menghasilkan sinyal yang memiliki perbedaan cukup signifikan
antara pengucap laki-laki dan perempuan. Perbedaan tersebut
meliputi level amplitudo dan bentuk sinyal. Apakah perbedaan ini
dapat dijadikan dasar pembedaan suara pria dan wanita, harus kami
lihat dulu hasil cepstrumnya.
Pada gambar 4.4. dapat dilihat bahwa suara hasil perekaman
dapat dibagi menjadi 3 bagian yaitu (1) silence (S), keadaan pada
saat tidak ada ucapan yang diucapkan; (2) unvoiced (U), keadaan
pada saat vocal cord tidak melakukan vibrasi, sehingga suara yang
dihasilkan bersifat tidak periodik atau bersifat random; (3)voiced
(V), keadaan pada saat terjadinya vibrasi pada vocal cord, sehingga
menghasilkan suara yang bersifat kuasi periodik.
Agar dapat diketahui apakah algoritma yang dipergunakan
untuk proses sampling sesuai dengan flowchart gambar 3.11 adalah
benar, kami membandingkannya dengan program sampling yang
terdapat dalam software Matlab sbb :

Gambar 4.5 Perbandingan sinyal hasil sampling dengan software Matlab dan
Microsoft Visual C++.

Dari gambar 4.5, dapat dilihat bahwa program pembacaan


sinyal yang telah dibuat dalam bahasa C menghasilkan hasil yang
sama persis dengan sampling menggunakan software Matlab, hal ini
membuktikan bahwa algoritma sampling yang dibuat sudah benar.
64

4.1.3 Front End Detection


Sinyal yang didapatkan dari hasil perekaman merupakan sinyal
yang masih mengandung noise. Pada proses front end ini, sinyal-
sinyal yang dideteksi sebagai noise dipotong dan diambil sinyal
informasinya saja sehingga didapatkan hasil sebagai berikut:

Gambar 4.6 hasil frontend detection sinyal informasi

Dari Gambar 4.6 dapat dilihat bahwa dengan menggunakan


program front end dapat dilakukan pemisahan antara sinyal
informasi dengan noise.
Hasil dari standart deviasi dan rata-rata pada proses
sebelumnya akan digunakan sebagai parameter untuk menentukan
awal dan akhir suara, voiced atau suara akan memiliki nilai power
yang melebihi nilai dari standart deviasi dan rata-rata dari voiced.
Penentuan awal dan akhir dari sinyal suara dapat diperoleh
dengan :
voice > mean + k*standart deviasi

Nilai pengali k yang dipilih akan sangat mempengaruhi hasil


pemotongan sinyal informasi dari noise, bisa dilihat dalam gambar
4.7 :
65

Sample ke-n Sample ke-n

(a) (b)

Sample ke-n Sample ke-n

(c) (d)

Sample ke-n

(e)
Gambar 4.7 Sinyal informasi dengan berbagai variasi nilai k
(a) k= 0.1 ,(b)k=3,(c)k=0.5,(d)k=5,(e)k=1

Berdasarkan gambar 4.7. di atas, dapat dideteksi bahwa nilai


k=1 menghasilkan sinyal informasi yang lebih akurat dibandingkan
66

nilai variabel lainnya. Oleh sebab itu, dalam program front end
detection kami pergunakan harga k=1.

4.1.4 Frame Blocking


Pada proses ini dilakukan pemotongan sinyal dalam slot-slot
tertentu agar memenuhi 2 syarat yaitu linear dan time invariant.
Pada proyek akhir ini sinyal suara dipotong sepanjang 20 milidetik.
Setiap potongan tersebut disebut frame. Jadi dalam satu frame
terdapat 240 sampel dari 12000 sampel yang ada. Hasil nilai dari
proses ini adalah sebagai berikut:

Frame Blocking "Diktat W1"

20000
15000
10000
Amplitudo

5000
0
-5000 0 50 100 150 200 250 300
-10000
-15000
-20000
jumlah data

Gambar 4.8 Frame ke-1 sinyal suara “diktat” dengan pewicara perempuan.

Dari gambar hasil frame blocking di atas, dapat kami lihat


bahwa sinyal informasi dibagi menjadi beberapa frame untuk
mempermudah proses komputasi. Suara memiliki unsur terkecil
yang diprediksi oleh para ahli speech adalah sepanjang 10 ms.
Karena pada proses windowing harus dikalikan dua, maka
dipilihlah angka 20 ms untuk setiap potongan frame.

4.1.5 Windowing
Setelah proses frame blocking, sinyal melakukan proses
window untuk mengurangi efek diskontinuitas ketika sinyal
ditransformasikan ke domain frekuensi. Proses window dilakukan
tiap-tiap frame yang terdiri 240 data sample. Karena adanya
pergeseran inilah kemungkinan puncak-puncak yang mestinya
67

terambil menjadi terpotong dapat terjadi. Data sinyal sebelum dan


sesudah Windowing untuk kata “diktat” ditunjukkan dalam gambar
di bawah ini :

20000

15000

10000

5000 Sinyal Sebelum


di window
0
Sinyal setelah
0 100 200 300
-5000 di window

-10000

-15000

-20000

Gambar 4.9 Hamming window dari kata “diktat” frame ke-1 oleh pengucap
perempuan

Berdasarkan gambar 4.9. maka dapat dikatakan bahwa window


hamming menyebabkan sinyal yang diframing lebih halus. Hal ini
membuktikan bahwa fungsi dari windowing untuk mengurangi efek
discontinuitas pada ujung-ujung frame.

4.1.6 FFT (Fast Fourier Transform)


Pada proses ini sinyal yang berada dalam domain waktu akan
dirubah dalam domain frekuensi. Pada proyek akhir ini sinyal dalam
domain waktu akan dirubah dalam domain frekuensi dengan 512
titik. Karena hasil yang diperoleh berupa hasil dari fungsi konvolusi
maka hanya akan diambil 256 titik saja yang akan diolah dalam
proses selanjutnya. Sedangkan 256 sisanya tidak dipergunakan
karena berupa pencerminan saja.
Hasil dari Fast Fourier Transform (FFT) dari kata “diktat”
adalah sebagai berikut :
68

FFT Spektrum "Diktat W1"

12
10

MAGNITUDO
8
6

4
2

0
0 2000 4000 6000 8000
FREKUENSI

Gambar 4.10 FFT Spektrum sinyal suara “diktat” pengucap perempuan

Dari gambar 4.10, hasil Fast Fourier Transform sinyal masukan


menunjukkan sebaran spektrum frekuensi dari sinyal suara yang
telah dihasilkan oleh pengucap antara 0 sampai 6000 Hz, yang telah
mencakup daerah spektrum frekuensi dari suara manusia yaitu
antara 300 sampai 3400 Hz.
Agar dapat diketahui, apakah program FFT yang dibuat telah
benar, maka program FFT dibandingkan dengan sintax fft yang
sudah tersedia dalam software Matlab. Berikut contoh fft sinyal
suara kata “Diktat” yang dibuat dalam 2 jenis software tersebut :
69

FFT "Diktat"

12

10

magnitudo
8

6
4

2
0
0 5000 10000 15000
frekuensi

Gambar 4.11 FFT frame ke-1 kata “diktat” dengan bahasa C

Gambar 4.12 FFT frame ke-1 kata “diktat” dengan Matlab

Dari gambar 4.11 dan 4.12, dapat dilihat bahwa hasil fft sinyal
suara yang telah dibuat dalam bahasa C menghasilkan hasil yang
sama persis dengan sampling menggunakan software Matlab, hal ini
membuktikan bahwa algoritma fft yang dibuat sudah benar.
70

4.1.7 Liftering
Pengujian selanjutnya setelah proses FFT adalah liftering.
Sebelum proses liftering dilakukan, hasil dari FFT di invers terlebih
dahulu. Pada liftering ini data yang diambil adalah 16 data saja tiap
framenya yang bisa mewakili semua data dalam 1 frame yang telah
terolah dalam FFT.
Hasil liftering dari kata “diktat” adalah sebagai berikut:

Liftering "Diktat W1"

4000
3500
3000
MAGNITUDO

2500
2000
1500
1000
500
0
-500 0 0.5 1 1.5 2
KUEFRENSI

Gambar 4.13 Liftering sinyal suara “diktat” frame ke-1 pengucap


wanita

Data dari hasil liftering terdiri dari dua elemen, yaitu elemen
quefrency rendah dan elemen quefrency tinggi. Untuk mendapatkan
periode fundamental dapat diekstraksi dari puncak pada daerah
quefrency tinggi. Hal ini dapat dilakukan dengan mencari mutlak
log dari data hasil liftering.
71

Gambar 4.14 Liftering kata “diktat” dengan Matlab

Dari hasil gambar 4.13 maupun 4.14 dapat dikatakan bahwa


proses liftering mirip dengan kinerja sebuah LPF (Low Pass
Frequency) dimana liftering mengambil nilai mutlak sinyal yang
berada pada frekuensi rendah namun melakukannya dalam domain
waktu. Sehingga didapatkan 16 data yang diharapkan dapat
mewakili fitur sebuah frame sinyal wicara.

4.1.8 Cepstrum
Cepstrum pada dasarnya sama dengan FFT, hanya saja hasil
dari cepstrum harus melewati beberapa proses, seperti yang telah
dijelaskan di atas yaitu dari hasil FFT harus di invers dulu untuk
mendapatkan nilai lifternya dan untuk mendapatkan nilai cepstrum
maka nilai lifter tersebut harus diproses dengan FFT kembali, hasil
mutlak log dari proses FFT kedua inilah yang disebut sebagai nilai
cepstrum.
Hasil dari nilai cepstrum untuk kata “diktat” adalah sebagai
berikut:
72

Gambar 4.15 FFT Spektrum dan Cepstrum dari kata “diktat” untuk
pewicara perempuan

Dari gambar 4.15 dapat kita lihat bahwa cepstrum merupakan


spectral envelope dari FFT spektrum, sehingga diharapkan dapat
mewakili ciri sinyal suara hasil fft. Cepstrum inilah yang kemudian
dirata-rata dan dimasukkan ke dalam codebook.

4.1.9 Codebook Cepstrum


Pengujian terakhir dari proses pengolahan sinyal wicara adalah
membandingkan sinyal hasil cepstrum antara data input dan data
standarnya.
Cepstrum yang dibuat sebagai codebook adalah hasil rata-rata
dari 20 cepstrum pengucap yang berbeda dalam 1 kata untuk jenis
kelamin yang sama. Jadi untuk sebuah kata terdapat 2 cepstrum,
yaitu 1 cepstrum wanita dan 1 cepstrum pria.
73

Cepstrum "Diktat W1" Cepstrum "Diktat L2"

7.3 7.25
7.25 7.2
7.2 7.15

MAGNITUDO

MAGNITUDO
7.15 7.1
7.05
7.1
7
7.05
6.95
7 6.9
6.95 6.85
6.9 6.8
0 2000 4000 6000 8000 0 2000 4000 6000 8000
KUEFRENSI KUEFRENSI

Gambar 4.16 Perbandingan Cepstrum kata “Diktat” antar pewicara


wanita dan pria.

Cepstrum merupakan suatu bentuk yang biasa dipergunakan


untuk mendapatkan informasi dari sebuah sinyal wicara. Cepstrum
digunakan untuk memisahkan sinyal tereksitasi (yang berisi kata
dan pitch) dengan fungsi transfer (yang berisi kualitas suara).
Dari hasil perbandingan pada gambar 4.16 dapat dilihat bahwa
Cepstrum yang terbentuk antara pengucap pria dan wanita adalah
berbeda. Dapat dilihat bahwa suara wanita memiliki “peak” yang
lebih sering terjadi dibandingkan dengan suara pria. Hal ini
disebabkan pitch suara wanita lebih tinggi daripada suara pria. Hal
inilah yang mendasari adanya pemisahan pengujian berdasarkan
jenis kelamin pada proyek akhir ini.
Permasalahan berikutnya adalah apakah hasil rata-rata dari 20
cepstrum untuk sebuah kata yang kami pakai sebagai data standart
sudah cukup mewakili ciri sinyal wicara kata tersebut ?
74

Perbandingan cepstrum pewicara dengan cepstrum


codebook

7.4
7.3

MAGNITUDO
7.2 Code book diktat
Cepstrum diktat 1
7.1
Cepstrum diktat 2
7 Cepstrum diktat 3
6.9
6.8
0 2000 4000 6000 8000
QUEFRENCY

Gambar 4.17 Perbandingan cepstrum pewicara (diktat 1, diktat 2 dan


diktat 3) dengan cepstrum codebook.

Dari gambar 4.17 dapat dilihat bahwa cepstrum yang dipakai


sebagai codebook, tidak selamanya bisa sama persis dengan
cepstrum pewicara. Hal ini disebabkan cepstrum yang digunakan
sebagai codebook merupakan hasil rata-rata dari semua cepstrum
kata yang sama yang telah direkam. Akibatnya hanya varian
terbanyak yang dianggap mewakili, sehingga ada beberapa
cepstrum kata “diktat” yang tidak akan dideteksi sebagai “diktat”.

4.2 Pengujian Sistem


Pengujian sistem dilakukan dalam dua tahap, yaitu pengujian
secara offline dan pengujian secara online. Pengujian secara offine
berarti sistem diuji tingkat keberhasilannya dengan menggunakan
sinyal suara yang telah direkam sebelumnya di ruang anti noise .
Sinyal suara ini merupakan sinyal suara yang dipergunakan sebagai
cepstrum codebook. Sedangkan pengujian secara online berarti
sistem diuji tingkat keberhasilannnya dengan pewicara dari
berbagai kalangan (usia dewasa) secara online.
75

Proses dari berjalannya sistem adalah sebagai berikut:


• Pengguna menginputkan sinyal suara melalui microphone.
Penginputan data dilakukan dengan menggunakan microphone
dan dilakukan di ruang proyek tugas akhir di laboratorium DSP yang
berisi banyak peralatan elektronik dan manusia sehingga sinyal input
yang diucapkan masih banyak ditumpangi oleh noise.
• Sistem mengolah/mengekstrak sinyal suara yang masuk
sehingga didapatkan parameter-parameter yang diperlukan.
Sinyal suara dari pengguna akan diolah dan diproses sesuai
dengan program yang telah dibuat, pertama-tama yaitu mendeteksi
sinyal yang masuk dan mencari nilai dari sinyal tesebut sehingga
pada saat digambarkan data yang diperoleh bisa mempunyai bentuk
yang sama dengan sinyal aslinya.
Setelah didapat data dari sinyal asli maka selanjutnya program
akan mencari sinyal suara murni dan memotong tail-tail dari sinyal.
Sinyal yang telah dipotong tail-tailnya itu kemudian dibagi menjadi
beberapa frame kemudian di windowing untuk mengurangi efek
diskontinuitasnya.
Sinyal hasil windowing masih dalam domain waktu sehingga
untuk mendapatkan sinyal dalam domain frekuensi harus di proses
dengan FFT (Fast Fourier Transform). Hasil FFT tersebut kemudian
akan di liftering untuk didapatkan suatu nilai yang bisa mewakili 256
data, dalam proyek akhir ini digunakan 16 data untuk mewakili 1
frame sinyal. Hasil dari liftering ini akan menjadi inputan pada
proses cepstrum. Nilai dari cepstrum ini yang akan dimatchingkan
dengan data standart pada codebook.
• Sinyal hasil dibandingkankan dengan sinyal standart yang ada.
Sinyal input yang telah diproses akan dibandingkan dengan
data yang telah tersimpan pada codebook dengan metode physical
approach menggunakan perhitungan sum square error. Pada proses
ini, yang dibandingkan adalah nilai selisih dari tiap-tiap kata pada
codebook. Nilai-nilai selisih tersebut kemudian akan dicari nilai
terkecilnya
76

• Sinyal dengan nilai terkecil (hasil pematchingan) akan diterima


sebagai perintah untuk mencari data buku.
Sinyal dengan nilai terkecil dan terendah diasumsikan sebagai
sinyal yang sama dengan sinyal standart yang terdekat dengan
nilainya. Pada proyek akhir ini digunakan nilai threshold 5.0. Nilai
threshold ini digunakan untuk membatasi sinyal input yang diijinkan
untuk mengakses sistem sebagai perintah. Jika nilai dari sinyal hasil
pematchingan lebih besar dari nilai treshold, maka sistem akan
menolak sinyal tersebut dan tidak mengijinkan sinyal terebut untuk
mengakses database.
Semua program untuk memproses sinyal mulai dari pembacaan
sinyal awal sampai proses SSE dikerjakan oleh visual C yang
hasilnya dieksport ke tcl/tk sehingga yang berfungsi sebagai
eksekutor adalah tcl. Pada tcl inilah diseting frekuensi sampling dan
channel dari sinyal yang masuk.
Eksekusi dari perintah atau sinyal yang telah diperintahkan
oleh pengguna dikerjakan oleh eksekutor pada program tcl/tk.
Perintah eksekusi aplikasi program pada tcl menggunakan perintah “
Run file.tcl”.

4.2.1 Sum Square Error


Pengujian terakhir dari proses pengolahan sinyal wicara adalah
membandingkan sinyal hasil cepstrum antara data input dan data
standarnya. Pada sistem ini digunakan 40 (empat puluh) kata sebagai
kata standart yang terdiri dari 20 (dua puluh) kata dari codebook
laki-laki dan 20 (dua puluh) kata dari codebook perempuan dan kata
masukan untuk masing-masing pengujian dengan kata standar
sebanyak 1 (satu) kali untuk masing masing penguji yang terdiri dari
20 orang yaitu 10 perempuan dan 10 laki-laki. Adapun kata yang
digunakan baik sebagai standar dan sebagai kata yang diuji dibagi
menjadi empat tahap yaitu :
• Tahap 1 : Diktat, Buku, Majalah dan CD
• Tahap 2 : Elka, Telkom, Elin, IT, dan Meka
• Tahap 3 : Hiburan, Iptek, Ponsel dan PC
77

• Tahap 4 : Agama, Komputer, Sosial, Teknologi, dan


Manajemen
• Tahap 5 : program, umum
Dalam proyek akhir ini akan dilakukan penelitian pada 20
orang pengguna independent speaker. Pengujian ini dilakukan dalam
dua tahap, yaitu secara online dan secara offline dengan
menggunakan nilai threshold sebesar 5.00.
Berikut adalah data pengujian sinyal input dengan sinyal suara
standart (code book) secara online :
Tabel 4.1 Nilai SSE pada pengujian kata “diktat”

Pewicara Diktat Majalah Buku CD Keputusan


Puguh 1.1114 11.22347 22.74846 22.35858 B
Aji 2.866967 16.10967 29.3246 28.862 B
Budi 1.090674 11.12581 22.44944 22.10975 B
Kadek 4.838479 20.47411 35.03999 34.48132 B
Iwan 3.538837 17.45329 31.05681 30.43348 B
Dodi 1.219843 11.60869 23.11985 22.70009 B
Iman 5.30423 21.46089 36.3623 35.75973 S
Bambang 0.532835 3.843584 11.23244 11.32003 B
Dedi 3.572275 17.84041 31.64463 31.16488 B
Huda 1.40949 12.13448 23.76188 23.48895 B
Ike 4.606043 20.02603 34.45906 33.89768 B
Nadya 2.366441 14.72165 27.33821 26.84251 B
Aris 0.25961 4.673924 12.50703 12.41139 B
Suci 5.453839 21.69533 36.67904 36.07284 S
Rida 1.063751 10.97282 22.23919 21.88651 B
Ari 2.77166 15.93301 28.71439 29.19638 B
Azizah 1.728104 2.00577 7.192122 7.416991 B
Dian 0.247867 5.824408 14.38736 14.25744 B
Dita 4.606043 20.02603 34.45906 33.89768 B
Diana 1.932403 13.68316 26.06564 25.76247 B
persentase 90%
78

Tabel 4.2 Nilai SSE pada pengujian kata “Elka”

Pewicara Elka Telkom Elin IT Meka Keputusan

Puguh 1.036476 3.699334 5.717056 4.403463 7.106263 B


Aji 10.02835 17.01807 20.95156 18.12028 24.34114 S
Budi 2.033478 1.11008 1.422554 1.278035 2.159753 S
Kadek 0.915344 3.204767 5.104877 3.963339 6.535277 B
Iwan 1.33702 4.430237 6.537876 5.483349 7.650734 B
Dodi 2.396686 6.127712 8.606974 7.05229 10.73738 B
Iman 15.52621 24.21604 28.85774 25.37041 32.88312 S
Bambang 2.907582 6.90058 9.468856 7.946825 11.39995 B
Dedi 0.512771 2.417537 4.051868 3.172793 5.093871 B
Huda 2.488203 6.499011 9.06466 7.479873 10.92926 B
Ike 0.516484 2.406833 3.928339 3.105246 5.010828 B
Nadya 5.338508 10.96661 14.20121 12.23308 16.69299 S
Aris 1.33825 3.499514 5.246676 3.546047 7.111019 B
Suci 3.522011 8.095572 10.94561 9.098313 13.12557 B
Rida 4.567945 9.592226 12.59088 10.61734 14.95955 B
Ari 6.053879 11.68044 14.96668 12.73405 17.85454 S
Azizah 3.03214 7.160339 9.818626 7.980095 11.83008 B
Dian 2.390231 6.287394 8.747139 7.124304 10.50494 B
Dita 5.384036 10.50474 13.62074 11.41322 16.20906 S
Diana 4.148776 8.684987 11.50593 9.529517 14.03399 B
persentase 70%
79

Tabel 4.3 Nilai SSE pada pengujian kata “Telkom”

Pewicara Elka Telkom Elin IT Meka Keputusan


Puguh 0.941232 0.339333 0.790356 0.706726 1.282683 B
Aji 1.232152 4.135029 6.100255 4.906498 7.755954 S
Budi 1.037384 1.123686 1.789722 1.795981 2.072556 S
Kadek 0.666782 0.884146 1.719161 1.694488 2.275263 S
Iwan 2.511848 6.273633 8.669055 7.092804 10.89897 S
Dodi 1.624989 1.280292 2.263742 1.904096 3.093682 B
Iman 2.12164 0.521215 3.560506 2.802383 5.081027 B
Bambang 8.936381 15.80357 19.61391 16.87634 22.83624 S
Dedi 1.067647 0.732815 1.165413 1.404312 1.255408 B
Huda 0.744509 1.791162 3.019063 2.150141 4.81747 S
Ike 11.0951 18.74153 22.82429 19.8221 26.25461 S
Nadya 0.535814 1.859201 3.261456 2.414881 4.868067 S
Aris 7.49761 13.90033 17.42065 14.86571 20.46915 S
Suci 2.856544 0.585453 4.587779 3.5517 6.032017 B
Rida 4.629011 1.747017 6.669681 5.14469 8.942859 B
Ari 4.456556 1.344386 6.546746 5.250523 8.004061 B
Azizah 6.865274 13.14056 16.589 14.10624 19.40403 S
Dian 6.877485 12.91339 16.33211 13.91667 19.40383 S
Dita 5.715295 2.106842 8.04257 6.592313 10.04775 B
Diana 9.640139 16.75038 20.63304 17.75604 23.99642 S
persentase 40%
80

Tabel 4.4 Nilai SSE pada pengujian kata “Elin”

Pewicara Elka Telkom Elin IT Meka Keputusan


Puguh 0.770791 0.750829 0.506296 1.090947 1.889587 B
Aji 21.42914 31.47133 36.66205 32.35022 41.22263 S
Budi 25.65635 36.41308 41.98438 37.46935 47.04211 S
Kadek 17.02472 25.87847 30.5264 26.66434 34.86597 S
Iwan 16.47875 25.30841 29.93209 26.05874 34.13721 S
Dodi 0.694119 1.289368 2.168538 1.669815 2.771872 S
Iman 1.56928 2.452346 0.774341 2.441594 2.438321 B
Bambang 15.62021 24.2624 28.81289 25.14579 32.93069 S
Dedi 15.62728 24.09296 28.5106 24.88664 32.78253 S
Huda 7.120819 13.3819 16.81405 14.1925 19.75949 S
Ike 15.81813 24.4187 28.99582 25.37091 33.20141 S
Nadya 2.09196 0.419782 0.36136 0.45964 1.067436 B
Aris 4.531471 9.501224 12.35361 10.01662 14.95439 S
Suci 7.251597 13.60069 17.08153 14.35467 19.97921 S
Rida 8.682462 11.40763 4.010891 13.9349 9.220641 B
Ari 10.97577 18.47913 22.46895 19.29953 25.94751 S
Azizah 8.786164 15.66796 19.35114 16.55292 22.47639 S
Dian 7.613351 13.26763 16.53595 13.53992 20.16369 S
Dita 11.77365 19.53814 23.73466 20.45909 27.27305 S
Diana 4.99331 6.9761 1.808835 5.742943 8.255116 B
persentase 25%
81

Tabel 4.5 Nilai SSE pada pengujian kata “IT”

Pewicara Elka Telkom Elin IT Meka Keputusan


Puguh 1.048869 0.955946 1.700123 0.901928 3.113181 B
Aji 0.991201 2.120211 3.324717 2.121745 5.116938 S
Budi 2.76303 5.770052 7.837781 5.805094 10.57796 S
Kadek 2.67876 6.380567 8.775481 6.928775 11.21234 S
Iwan 2.140516 5.260424 7.324351 5.675617 9.437755 S
Dodi 4.89161 9.49519 12.20953 9.725259 15.06633 S
Iman 1.257425 3.300965 4.82243 3.911444 6.283933 S
Bambang 0.898733 2.084989 3.242334 2.190055 4.775579 S
Dedi 1.133557 0.605959 1.049458 0.578705 2.215558 B
Huda 2.937193 2.809693 4.176386 1.191938 5.943258 B
Ike 1.074078 0.966924 1.699203 1.024459 3.057476 B
Nadya 21.1077 13.21996 10.52839 12.65243 8.123594 S
Aris 2.157873 1.698639 2.765315 0.599832 3.695774 B
Suci 2.20296 5.863083 8.302494 6.377897 10.3769 S
Rida 2.124091 5.181476 7.39861 5.376288 9.732019 S
Ari 1.183022 1.332867 2.065133 0.709606 3.593572 B
Azizah 1.190132 2.050099 3.179083 1.867643 4.947809 S
Dian 5.456297 2.00421 1.634554 1.241078 1.305177 B
Dita 11.22699 5.472349 4.93796 3.665048 3.029168 S
Diana 1.16449 0.661383 1.122757 0.587037 2.27854 B
persentase 40%
82

Tabel 4.6 Nilai SSE pada pengujian kata “Meka”

Pewicara Elka Telkom Elin IT Meka Keputusan


Puguh 0.882081 1.548637 2.166169 1.632218 0.852877 B
Aji 1.062308 3.348908 5.091743 4.219391 6.268582 S
Budi 0.962634 3.406375 5.239373 4.343367 6.190009 S
Kadek 5.302241 10.76233 13.95047 11.64756 16.61376 S
Iwan 6.397091 3.446541 5.304285 4.410569 0.889835 S
Dodi 1.465355 4.5992 6.743769 5.371549 8.667871 S
Iman 1.04322 3.385911 5.248408 4.197494 6.571755 S
Bambang 3.018328 4.759823 3.909617 6.102134 0.912679 B
Dedi 1.271421 4.160059 6.20418 5.089292 7.714083 S
Huda 4.086321 1.767681 3.205464 2.524039 0.407865 B
Ike 8.578473 15.10199 18.71391 16.40102 21.93786 S
Nadya 1.308029 4.455829 6.641038 5.37758 7.844197 S
Aris 2.688446 1.038883 1.099113 1.565339 0.682023 B
Suci 5.089183 2.229272 1.713048 2.63129 0.745588 B
Rida 0.915279 2.954427 4.492787 3.965905 5.771293 S
Ari 1.773722 5.075105 7.283713 5.972624 9.276904 S
Azizah 5.178488 10.35234 13.39259 11.42498 16.15771 S
Dian 3.003618 3.607998 4.698265 5.848731 0.877386 S
Dita 3.939799 1.529046 1.227564 1.978902 0.495263 S
Diana 0.69038 1.248117 2.225289 1.916903 3.063911 S
persentase 25%

Untuk mempersingkat halaman, tabel selanjutnya hanya berisi


hasil dan persentase keberhasilan.
83

Tabel 4.7 Hasil pengujian kata Tabel 4.8 Hasil pengujian kata
“Majalah” “Buku”

Pewicara Majalah Pewicara Buku


Puguh S Puguh S
Aji S Aji B
Budi B Budi B
Kadek S Kadek S
Iwan S Iwan B
Dodi B Dodi B
Iman B Iman S
Bambang B Bambang S
Dedi S Dedi S
Huda S Huda B
Ike S Ike B
Nadya B Nadya B
Aris S Aris S
Suci S Suci S
Rida S Rida S
Ari B Ari B
Azizah S Azizah B
Dian S Dian S
Dita B Dita S
Diana B Diana B
persentase 40% persentase 50%
84

Tabel 4.9 Hasil pengujian kata Tabel 4.10 Hasil pengujian


“CD” kata “Agama”

Pewicara CD Pewicara Agama


Puguh B Puguh B
Aji S Aji B
Budi B Budi B
Kadek S Kadek B
Iwan B Iwan S
Dodi S Dodi B
Iman S Iman S
Bambang S Bambang S
Dedi B Dedi B
Huda B Huda S
Ike S Ike B
Nadya B Nadya S
Aris S Aris S
Suci S Suci B
Rida B Rida B
Ari B Ari S
Azizah S Azizah S
Dian B Dian S
Dita S Dita B
Diana S Diana B
persentase 45% persentase 55%
85

Tabel 4.11 Hasil pengujian Tabel 4.12 Hasil pengujian


kata “Komputer” kata “Sosial”

Pewicara Komputer Pewicara Sosial


Puguh B Puguh S
Aji S Aji B
Budi S Budi B
Kadek S Kadek S
Iwan S Iwan S
Dodi B Dodi S
Iman B Iman B
Bambang S Bambang B
Dedi S Dedi B
Huda S Huda S
Ike S Ike S
Nadya S Nadya S
Aris S Aris S
Suci B Suci S
Rida S Rida B
Ari B Ari B
Azizah B Azizah S
Dian S Dian S
Dita S Dita S
Diana S Diana B
persentase 30% persentase 40%
86

Tabel 4.13 Hasil pengujian Tabel 4.14 Hasil pengujian


kata “Teknologi” kata “Manajemen”

Pewicara Teknologi Pewicara Manajemen


Puguh B Puguh B
Aji B Aji S
Budi B Budi B
Kadek S Kadek S
Iwan S Iwan S
Dodi S Dodi B
Iman B Iman S
Bambang S Bambang S
Dedi B Dedi S
Huda S Huda S
Ike B Ike B
Nadya S Nadya B
Aris B Aris S
Suci B Suci S
Rida S Rida S
Ari S Ari S
Azizah S Azizah S
Dian B Dian S
Dita S Dita B
Diana S Diana B
persentase 40% persentase 35%
87

Tabel 4.15 Hasil pengujian Tabel 4.16 Hasil pengujian


kata “Hiburan” kata “Ponsel”

Pewicara Hiburan Pewicara Ponsel


Puguh S Puguh B
Aji S Aji S
Budi B Budi S
Kadek B Kadek S
Iwan S Iwan B
Dodi B Dodi B
Iman B Iman B
Bambang S Bambang S
Dedi S Dedi S
Huda S Huda S
Ike B Ike S
Nadya B Nadya S
Aris B Aris B
Suci S Suci B
Rida S Rida S
Ari S Ari S
Azizah B Azizah S
Dian S Dian B
Dita S Dita S
Diana B Diana B
persentase 45% persentase 40%
88

Tabel 4.17 Hasil pengujian Tabel 4.18 Hasil pengujian


kata “PC” kata “Iptek”

Pewicara PC
Pewicara Iptek
Puguh B
Puguh S
Aji S
Aji S
Budi B
Budi S
Kadek S
Kadek B
Iwan B
Iwan B
Dodi B
Dodi B
Iman S
Iman S
Bambang S
Bambang S
Dedi S
Dedi S
Huda B
Huda B
Ike B
Ike S
Nadya B
Nadya S
Aris B
Aris S
Suci S
Suci B
Rida S
Rida B
Ari S
Ari B
Azizah S
Azizah S
Dian S
Dian S
Dita S
Dita B
Diana S
Diana S
persentase 40%
persentase 40%
89

Tabel 4.19 Hasil pengujian Tabel 4.20 Hasil pengujian


kata “Program” kata “Umum”

Pewicara Program Pewicara Umum


Puguh B Puguh B
Aji S Aji B
Budi S Budi S
Kadek B Kadek S
Iwan B Iwan B
Dodi S Dodi S
Iman S Iman S
Bambang S Bambang B
Dedi B Dedi B
Huda B Huda S
Ike S Ike S
Nadya B Nadya B
Aris B Aris S
Suci S Suci S
Rida S Rida B
Ari B Ari B
Azizah B Azizah S
Dian B Dian B
Dita S Dita S
Diana S Diana B
persentase 50% persentase 50%
90

Berikut grafik hasil pengujian secara online :

Gambar 4.18 Grafik Hasil Pengujian secara online


91

Sementara contoh hasil pengujian secara offline adalah sebagai


berikut :
Tabel 4.21 Hasil pengujian kata “Diktat” pewicara perempuan secara
offline

Kata SSE Hasil


Diktat Majalah Buku CD
10-1.wav 1.163877 3.465862 10.82807 10.3584 Benar
10-2.wav 0.647819 2.431563 4.014172 2.956686 Benar
10-3.wav 4.77495 0.768115 4.074793 4.028139 Salah
10-4.wav 1.375435 2.073207 8.075996 8.07633 Benar
10-5.wav 1.211004 2.304003 8.37993 8.361099 Benar
10-6.wav 2.228689 1.088669 6.012094 6.064597 Salah
10-7.wav 7.848428 0.650167 2.385184 2.409387 Salah
10-8.wav 4.92186 0.69131 4.287786 4.093691 Salah
10-9.wav 0.721767 5.164486 13.37696 13.09195 Benar
10-10.wav 1.100107 2.271243 8.530653 8.25886 Benar
10-11.wav 2.93241 1.089562 5.917379 5.73659 Salah
10-12.wav 14.77914 2.565268 1.254932 1.72597 Salah
10-13.wav 10.73636 1.175855 1.589807 1.667483 Salah
10-14.wav 6.373727 0.394296 2.305312 2.354762 Salah
10-15.wav 2.691167 1.294144 6.259431 5.946281 Salah
10-16.wav 8.248774 0.582724 1.73529 2.007193 Salah
10-17.wav 12.10744 2.279617 3.004329 2.649486 Salah
10-18.wav 1.122432 2.76121 9.464895 9.219463 Benar
10-19.wav 12.8596 1.905183 1.065604 0.738074 Salah
10-20.wav 15.87881 3.167422 1.553015 1.72813 Salah
Prosentase keberhasilan = 40 %

Dari data pengujian dapat disimpulkan bahwa dengan


menggunakan treshold 5.00 sebagian besar kata dapat dikenali. Kisaran
persentase pengujian menghasilkan nilai sebesar 25%-90% untuk
92

pengujian secara online dan 40%-80% untuk pengujian secara offline.


Masih adanya tingkat keberhasilan yang rendah pada beberapa kata
dapat disebabkan oleh beberapa faktor yaitu :
1 Beberapa kata dalam 1 halaman memiliki bunyi yang hampir sama
sehingga kemungkinan dalam ekstrasi ciri terjadi kesalahan. Contoh
nya dapat dilihat pada halaman “home.tcl”. Pada halaman tersebut
terdapat 5 kata yang harus diucapkan yaitu elka, telkom, eliin, it dan
meka. Dari 5 kata tersebut dapat dilihat bahwa terdapat kemiripan
antar kata sehingga apabila pengguna mengucapkan kata dengan
amplitudo yang lemah atau tidak jelas maka sistem dapat
mengenalinya secara berbeda. Kata – kata yang bermasalah pada
halaman “home.tcl” yaitu el (elka, elin dan telkom), ka (elka dan
meka). Kesamaan fonem “el” dan “ka” tersebut memperkecil
perbedaan fitur ciri suara, sehingga bisa saja terjadi kesalahan hasil
eksekusi karena tingkat kemiripan fonem yang tinggi.
2 Bentuk cepstrum dari codebook yang hampir sama sehingga
mempengaruhi hasil pengujian sistem. Adapun contoh grafik dari
codebook per halaman dapat dilihat sbb:

Perbandingan cepstrum "Home"

7.4

7.3

7.2 DIKTAT
Magnitudo

MAJALAH
7.1
BUKU
7 CD
6.9

6.8
0 2000 4000 6000 8000
Frekuensi

Gambar 4.19 Perbandingan Cepstrum


93

Dapat kita lihat dari contoh pada gambar di atas bahwa antara
cepstrum codebook kata “buku” dan kata “cd” memiliki tingkat
kemiripan yang tinggi.
3 Terdapat noise sewaktu pengguna mengucapkan kata data buku
yang akan diakses. Noise ini bisa ditimbulkan oleh lingkungan
sekitar yang cukup bising, kualitas microphone yang dipergunakan
kurang baik, maupun pengkabelan yang kurang bagus serta
berbagai faktor lain. Saat pengguna mengucapkan kata dengan
kondisi noise sekitar yang cukup tinggi maka kemungkinan besar
hasil yang diharapkan tidak sesuai yaitu muncul halaman yang tidak
sama dengan yang diinginkan atau sistem mengeluarkan pernyataan
bahwa perintah tidak dikenali. Hal demikian dapat terjadi karena
adanya threshold yang berfungsi sebagai filter.
4 Terjadi “kelelahan” pada sistem pemrosesan data saat diaktifkan
berulang-ulang tanpa henti. Berdasarkan pengujian, sistem yang
dibuat melakukan proses load antar halaman dengan mengaktifkan
ekstensi .dll yang akan terus-menerus mengulang pemrosesan data
bila dipergunakan berulang-ulang tanpa diulang dari awal. Sehingga
untuk mendapatkan hasil yang maksimal lebih baik software
diulangi dari awal.
5 Dibandingkan sistem yang dibuat pada proyek akhir sebelumnya,
terdapat perbedaan dalam metode pembuatan codebook. Pada
sistem yang kami buat codebook merupakan nilai rata-rata dari 20
suara sehingga hanya menghasilkan satu codebook saja untuk satu
kata dengan pewicara jenis kelamin tertentu. Dengan demikian
diharapkan sistem bisa diakses oleh setiap orang dewasa.
6 Tiap manusia memiliki fitur suara yang berbeda sehingga dapat
mempengaruhi hasil.
BAB 5
PENUTUP

5.1 Kesimpulan
Berdasarkan pada hasil pengujian dan analisa terhadap hasil yang
didapatkan, maka dapat diambil suatu kesimpulan yaitu :
1. Pengoperasian aplikasi pengaksesan database perpustakaan dapat
dilakukan dengan menggunakan perintah suara.
2. Dengan menggunakan metode sum square error , dapat dicari
pemadanan suatu wicara dengan mengukur selisih antara sinyal
input dengan sinyal standar kemudian dicari nilai minimal dari
hasil pengurangan.
3. Rata-rata cepstrum yang dipergunakan dalam setiap codebook
belum sepenuhnya mencerminkan ciri dari suara dikarenakan
besarnya varian antar data yang terjadi.
4. Nilai treshold digunakan untuk mengurangi prosentase error. Nilai
threshold yang dipergunakan dalam proyek akhir ini adalah sebesar
5.00
5. Tingkat keberhasilan sistem berkisar antara 40%-80% untuk
pengujian secara offline dan 25%-90% untuk pengujian secara
online.
6. Keberhasilan sistem dapat ditunjukkan dengan berhasilnya perintah
suara dalam mengakses database buku perpustakaan

5.2 Saran
Mengingat masih banyaknya hal-hal yang belum dapat
diimplementasikan pada proyek akhir ini, maka kami
mempertimbangkan beberapa saran untuk perbaikan-perbaikan proyek
akhir kami ini dalam hal :
1. Tingkat pengurangan noise pada waktu perekaman suara yang
semakin baik.
2. Otomatis sistem, sehingga pengguna tidak perlu lagi
menggerakkan mouse untuk memberikan perintah.

95
96

3. Waktu pemrosesan sinyal suara untuk mendapatkan ciri atau


parameter dipersingkat dengan membuat algoritma sistem yang
lebih baik.
4. Pengambilan sample yang lebih banyak lagi agar bisa didapatkan
hasil yang lebih akurat.
5. Penggunaan metode fitur extraction yang lebih handal dari FFT
Cepstrum, misalnya MABC.
DAFTAR PUSTAKA

[1] http://www.relisoft.com/Science/Physics/fft.html.
[2] http://en.wikipedia.org/wiki/Fast_Fourier_Transform.
[3] http://www.speech.cs.smu.edu/comp.speech/Section6/Q6.6.html#i
ntro.
[4] http://home.hib.no/.../seksjon/ SOFF-MASTER/Organs.htm
[5] http://www.elektroindonesia.com/elektro/elek35a.html
[6] http://www.ndt.net/article/az/ut/img/fft_pri.gif
[7] http://www.ics.mq.edu.au/~cassidy/comp449/html/cepstrum.gif
[8] Bayu S.,Bima ,”Aplikasi Pengenalan Wicara untuk Perintah
Nirkabel robot mikro mouse”,PENS-ITS,Surabaya, 2003.
[9] Fania.K,Putri,”Pengolahan Sinyal Wicara pada Permainan
Pembelajaran Bahasa Inggris”, PENS-ITS, Surabaya, 2006.
[10] Huda Miftahul, Bima, “Pelatihan Tcl/Snack”, PENS – ITS,
Surabaya, 2005.
[11] Lawrence Rabiner, Biing Hwang Juan, “Fundamentals of Speech
Recognition”, Prentice Hall International Inc, 1993.
[12] Prayitno Adi,”Aplikasi Penutur untuk Sistem Absensi Dengan
Metode Penutur Dependent”, PENS-ITS, Surabaya, 2006.
[13] Sadaoki Furui. “Digital Speech Processing Synthesis, and
Recognition”, Marcell Dekker, Inc, New York, 1989.

97
LAMPIRAN I

1.1 Instalasi Tcl/tk


Langkah-langkah untuk menginstal Tcl/Tk adalah sebagai
berikut :
1) Buka direktori atau folder yang di dalamnya terdapat
binary executable file dari Tcl/Tk 8.3.0
2) Pada icon Tcl/Tk 8.3.0, tekan dua kali klik mouse kiri.
3) Pada tampilan pembuka klik Next, kemudian pada
tampilan Welcome klik Next lagi
4) Pada tampilan Select Destination Directory, secara default
Tcl/tk akan menginstal paketnya di direktori Program
File. Kemudian klik Next.
5) Pada Menu Select Component pilih atau beri tanda pada
Header and Library Files. Lalu pilih Next
6) Pada Tampilan Ready Instal klik Next . Secara otomatis
Tcl/tk akan terinstal di Komputer anda.

1.2 Instalasi Snack


1) Buka direktori atau folder yang di dalamnya terdapat
binary executable file dari Tcl/Tk 8.3.0.
2) Pada icon Tcl/Tk 8.3.0, tekan dua kali klik mouse kiri.
3) Kemudian akan muncul tampilan Welcome dari snack, lalu
pilih Next
4) Pada tampilan Select Destination Directory, secara default
snack akan menginstal paketnya di direktori Program File.
Kemudian klik Next.
5) Kemudian klik tombol Next lagi, maka snack akan terinstal
di Komputer anda.
6) Klik Finish
7) Setelah itu pada paket instaler snack untuk Windows
kopikan paket snack (include) ke direktori : C:\ Program
Files\Snack 2.2.

99
100

1.3 Membangun exstensi .dll pada visual C++


Membangun file .dll ini dimaksudkan untuk membuat
suatu integrasi antara software yang dibuat. Tcl/Tk dapat
menjalankan program yang telah kami buat dalam C++ apabila
terdapat ekstensi.dll.
Dibawah ini adalah tuntunan langkah demi langkah untuk
membangun file .dll di MS Visual C++ 6.0.
1. Langkah pertama buat workspace baru
2. Setelah itu buat project baru pada visual C++ pilih Win 32
Dynamicrophone Link Library
3. Sedangkan untuk nama file, ketik sesuai nama project
ditambah .c di belakangnya.
4. Pada tampilan editing program pilih Project .Kemudian
pada Project pilih Setings maka akan muncul tampilan
sebagai berikut :

Gambar 0.1 Tampilan Project Setings

5. Pada menu C/C++ , pilih preprocessor isilah sesuai dengan


petunjuk dibawah ini :
A. Pada Preprocessor Definitions ketik
USE_SNACK_STUBS,USE_TCL_STUBS,USE_T
K_STUBS
101

B. Pada Additional include directorys ketik


C:\ProgramFiles\Tcl\include\,C:\ProgramFiles\Sn
ack2.2\include\

Gambar 0.2 Seting pada Prepocessor

6. Pada menu C/C++ , pilih General pastikan isinya sesuai


dengan petunjuk dibawah ini :
A. Pada Preprocessor Definitions terseting
USE_SNACK_STUBS,USE_TCL_STUBS,USE_T
K_STUBS

Gambar 0.3 Seting pada General

7. Pada menu Link pilih input kemudian isi seperti pada


petunjuk dibawah ini :
102

A. Pada Object / Library Moduls ketik tclstub83.lib


tkstub83.lib snackstub22.lib
B. Pada Ignore Library ketik MSVCRT,LIBC
C. Pada Additional Library Path ketik C:\Program
Files\Tcl\lib\,C:\Program Files\Tcl\lib\snack2.2\

Gambar 3.3 Tampilan pada Link

8. Pada menu Link pilih general kemudian isi seperti pada


petunjuk dibawah ini :
A. Pada Object / Library Moduls ketik tclstub83.lib
tkstub83.lib snackstub22.lib
B. Pada output file name ketik Debug/namafile.dll
103

Gambar 3.3 Tampilan pada Link

9. Kemudian Build program ekstensinya.


10. Jika tidak ada kesalahan maka program akan membuat file .dll, bila
program tidak dapat membuat file .dll dimungkinkan terdapat
kesalahan pada project seting maupun program main.
11. File .dll inilah yang nantinya dieksekusi melalui Tcl agar Tcl
mampu berintegrasi dengan program yang telah dibuat dalam C++.
Berikut contoh program integrasi Tcl dan C++ melalui eksekusi file
.dll
LAMPIRAN II

Listing Program Fase Pembelajaran

1.1 Program Perekaman


#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"

load frontend.dll
load fft.dll

package require -exact snack 2.2


package require -exact snack 2.2

snack::sound z -channels 2
snack::sound x -file sound.wav -debug 0
snack::sound y
x configure -rate 16000 -encoding LIN16 -channels MONO
y configure -rate 16000 -encoding LIN16 -channels MONO

set width 600


set height 200
set pps 300
set color black
set frame 1

option add *font {Helvetica 10 bold}

pack [frame .f1]


pack [frame .f2]
pack [frame .f3]
pack [frame .f4]
pack [frame .f5]
pack [label .f1.l1 -background lightblue1 -text "APLIKASI
PENGENALAN WICARA"]

105
106

pack [label .f1.l2 -background lightblue1 -text "UNTUK MENGAKSES


DATABASE PERPUSTAKAAN"]
pack [label .f1.l3 -background lightblue1 -text "Mode Operasi
Recording"]

canvas .f1.c -bg green -width 600 -height 400


snack::levelMeter .f1.lm -width 40 -length 400 -orient vertical -oncolor
red
pack .f1.lm .f1.c -side left -padx 5

pack [label .f2.time -text "0.000 sec" -width 10]

button .f3.b1 -text Play -command {y play}


button .f3.b2 -text Rec -command {y record;z record}
button .f3.b3 -text Stop -command {y stop}
button .f3.b4 -text save -command {y write data\\diktat\\$filename.wav}
button .f3.b5 -text load -command {y read data\\diktat\\$filename.wav}
button .f3.b6 -text Exit -command keluar
button .f3.b7 -text "Front End" -command proses
entry .f3.entry -width 40 -textvariable filename
pack .f3.b1 .f3.b2 .f3.b3 .f3.entry .f3.b4 .f3.b5 .f3.b6 .f3.b7 -side left -
padx 5 -pady 5

label .f4.1 -background lightblue1 -text "Created by Maratus Solihah &


Puguh Gendrowieweko"
label .f4.2 -background lightblue1 -text "Telecommunication
Engineering \n PENS - ITS"
pack .f4.1 .f4.2

proc proses { } {

for {set filename 0}{$filename<6}{incr i}{


y read data\\diktat\\$filename.wav
y frontend
y fft
}

}
107

proc keluar {} {
tk_messageBox -message {Terima Kasih Anda Telah Menggunakan
Layanan Kami}
exit
}

after 1 Update

proc Update {} {
set l [z max -start 0 -end -1 -channel 0]
.f2.time config -text [format "%.3f sec" [y length -unit
seconds]]
z length 0
.f1.lm configure -level $l
after 50 Update
}
.f1.c itemconf wave -pixelspersecond 300 -width 300
.f1.c create waveform 304 204 -anchor c -sound y -height $height -tags
wave -debug 0 -zerolevel 0 -frame $frame -fill black

1.2 Program tampilan untuk pengujian offline


#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"

load dll\\lagi3.dll
load dll\\sse1.dll

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

snack::sound s
snack::sound z
snack::sound x
108

x configure -rate 12000 -channels MONO -encoding LIN16


s configure -rate 12000 -channels MONO -encoding LIN16
z configure -rate 12000 -channels MONO -encoding LIN16

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\depan.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

frame .h -bg blue


pack .h -fill x

entry .h.entry -width 8 -textvariable filename


button .h.start -bd 2 -bg white -text PiLiH -font broadway -command {
s read data_wav//diktat//$filename.wav
s play
after 1500 tick
}

pack .h.start .h.entry -side left -padx 4 -pady 4

##########################################################
###############
######## FUNGSI UTAMA
##########
##########################################################
###############
proc tick { } {
x stop
s stop

s write test.wav

s lagi
109

s sse

z stop
set out [read [open out.txt]]
set out1 [read [open min.txt]]

if {$out1>= 10.000} {
s read Salah.wav
s play
tk_messageBox -message "Maaf kata yang anda
ucapkan tidak sesuai" -type ok
} else {
if { $out == 1} {
Run diktatce.tcl
}
if { $out == 12 } {
Run majalahce.tcl
}
if { $out == 123 } {
Run bukuce.tcl
}
if { $out == 1234 } {
Run cdce.tcl

}
}
}

button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
110

}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}

1.3 Program pengolahan sinyal


#include <math.h>
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include "snack.h"

#define pangkat 9
#define nlpc 240
#define w 1.0f
#define w2 -1.0f

static float out_pow_in[5000],out_pow_1[5000];

int front_end_clip(xx,yy,jml_sin)
float *xx,*yy;
int jml_sin;
{
int i,mulai,akhir,jml_sin_new;
float jml=0,mean,dev,jumdev=0,sd,batas;
for(i=0;i<jml_sin;i++)// mulai 0 samapai panjang sinyal
111

jml+=xx[i];
mean=jml/jml_sin;
for(i=0;i<jml_sin;i++)
{
dev=(float)fabs(xx[i]-mean);
jumdev+=dev*dev;
}
sd=(float)sqrt(jumdev/jml_sin);
batas=mean+sd;
for(i=0;i<jml_sin;i++)
{
if(xx[i]>=batas)
{
mulai=i;
break;
}
}
for(i=jml_sin;i>0;i--)
{
if(xx[i]>=batas)
{
akhir=i;
break;
}
}
jml_sin_new=0;
for(i=mulai;i<akhir;i++)
{
yy[jml_sin_new]=xx[i];
jml_sin_new++;
}
return(jml_sin_new);
}

float Power(data)
float *data;
{
int i;
float jum=0,power;
112

for(i=0;i<240;i++)
jum += (float)pow(data[i],2);
power=(float)sqrt(jum);
return(power);
}

void hammr(x,y,n)
float *x,*y;
int n;
{
int i;
--x;
--y;
for(i=0;i<=n;++i)
{
x[i]=x[i]*(float)(0.54-
0.46*cos(2.0*3.141592654*(i)/(float)n));
y[i]=y[i]*(float)(0.54-
0.46*cos(2.0*3.141592654*(i)/(float)n));
}
}
void cal_fft(x,y,l,mode)
float *x,*y,mode;
int l;
{
int np,lmx,lo,lix,lm,li,j1,j2,nv2,npm1,i,j,k;
float scl,arg,c,s,t1,t2;
for(i=0;i<pow(2,l);i++)
y[i]=0;
--x;
--y;

/* ====== radix-2 fft ====== */


np=(int)pow(2.0,(float)(l));
lmx=np;
scl=(float)(6.283185303/(float)np);
for(lo=1;lo<=l;++lo)
{
lix=lmx;
113

lmx=(int)(lmx/2.0);
arg=0.0;
for(lm=1;lm<=lmx;++lm)
{
c=(float)cos(arg);
s=(float)(mode*sin(arg));
arg=arg+scl;
for (li=lix; lix<0 ? li>=np : li<=np; li+=lix)
{
j1=li-lix+lm;
j2=j1+lmx;
t1=x[j1]-x[j2];
t2=y[j1]-y[j2];
x[j1]=x[j1]+x[j2];
y[j1]=y[j1]+y[j2];
x[j2]=c*t1+s*t2;
y[j2]=c*t2-s*t1;
}
}
scl=(float)(2.0*scl);
}

/* ====== bit reversal ====== */


j=1;
nv2=(int)(np/2.0);
npm1=np-1;
for(i=1;i<=npm1;++i)
{
if(i>=j)
goto L30;
t1=x[j];
t2=y[j];
x[j]=x[i];
y[j]=y[i];
x[i]=t1;
y[i]=t2;
L30:
k=nv2;
L40:
114

if(k>=j)
goto L50;
j-=k;
k=(int)(k/2.0);
goto L40;
L50:
j=j+k;
}
}

FILE
*finput,*finfo,*fframe,*fsignalframe,*fpower,*fwindow,*ffft,*flift,*flo
g,*fceps;
Sound *sound;
double temp_log1;
float x[30000],y[30000],temp[30000];
float real[512],imag[512];
float atus,sida;
int k,frame,frame_no,signal_length,signal_length_new,start;
void mail();
void hammr();
void cal_fft();

int lagi(ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj


*CONST objv[])
{
finput=fopen("cek\\input.txt","w");
finfo=fopen("cek\\info.txt","w");
fframe=fopen("cek\\frame.txt","w");
fsignalframe=fopen("cek\\signalframe.txt","w");
fpower=fopen("cek\\power.txt","w");
fwindow=fopen("cek\\window.txt","w");
ffft=fopen("cek\\fft.txt","w");
flift=fopen("cek\\lift.txt","w");
flog=fopen("cek\\log.txt","w");
fceps=fopen("cek\\cepstrum.txt","w");
115

sound =
Snack_GetSound(interp,Tcl_GetStringFromObj(objv[0], NULL));
signal_length = Snack_GetLength(sound);
for (k=0;k<signal_length;k++)
{
x[k]=(float)Snack_GetSample(sound, 0, k);
fprintf(finput,"%f\n",x[k]);
}
signal_length_new = front_end_clip(x,&y,signal_length);
for (k=0;k<signal_length_new;k++)
fprintf(finfo,"%f\n",y[k]);
frame_no = signal_length_new/120;

start=0;
atus=0;
sida=(float)20/240;
temp[k]=y[start];
for(frame=0;frame<frame_no-1;frame++)
{
start=(frame)*120;
for(k=0;k<240;k++)
{
temp[k]=y[start];

start++;
}
out_pow_in[frame]=Power(temp);
fprintf(fpower,"%f\n",out_pow_in[frame]);

for (k=0;k<240;k++)
{
real[k]=temp[k];
imag[k]=0;
}
}

/***** hamming window *****/


hammr(real,imag,nlpc);
for(k=0;k<240;k++)
116

fprintf(fwindow,"%f\t%f\n",(k+1)*sida,real[k]);
for(k=240;k<512;k++)
{
real[k]=0;
imag[k]=0;
}
/***** FFT *****/
cal_fft(real,imag,pangkat,w);

/***** Mutlak Log *****/


for(k=0;k<512;k++)
{
temp_log1=(double)(real[k]*real[k]+imag[k]*imag[k]);
if(temp_log1>0)
real[k]=(float)log10(temp_log1);
else
real[k]=(float)log10(0.000001);
imag[k]=0;
fprintf(ffft,"%f\t%f\n",k*6000.f/256.f,real[k]);
}

/***** IFFT *****/


cal_fft(real,imag,pangkat,w2);
/***** Liftering *****/
for(k=0;k<512;k++)
{
if(k<20)
real[k]=real[k];
else
real[k]=0.0;

}
for(k=0;k<256;k++)
fprintf(flift,"%f\t%f\n",(k+1)*sida,real[k]);

/***** Mutlak Log (Data Sample yg diambil) *****/


/* for(k=0;k<256;k++)
{
117

temp_log1=(double)(real[k]*real[k]+imag[k]*imag[k]);
if(temp_log1>0)
real[k]=(float)log10(temp_log1);
else
real[k]=(float)log10(0.000001);
imag[k]=0;

}*/

/***** Cepstrum *****/


cal_fft(real,imag,pangkat,w);
for(k=0;k<256;k++)
{
temp_log1=(double)(real[k]*real[k]+imag[k]*imag[k]);
if(temp_log1>0)
real[k]=(float)log10(temp_log1);
else
real[k]=(float)log10(0.000001);
imag[k]=0;
fprintf(fceps,"%f\t%f\n",k*6000.f/256.f,real[k]);

fclose(finput);
fclose(finfo);
fclose(fframe);
fclose(fsignalframe);
fclose(fpower);
fclose(fwindow);
fclose(ffft);
fclose(flift);
fclose(flog);
fclose(fceps);

return TCL_OK;
}

EXPORT(int, Lagi_Init)(Tcl_Interp *interp)


118

{
#ifdef USE_TCL_STUBS
if (Tcl_InitStubs(interp, "8", 0) == NULL) {
return TCL_ERROR;
}
#endif
#ifdef USE_TK_STUBS
if (Tk_InitStubs(interp, "8", 0) == NULL) {
return TCL_ERROR;
}
#endif
#ifdef USE_SNACK_STUBS
if (Snack_InitStubs(interp, "2", 0) == NULL) {
return TCL_ERROR;
}
#endif
if (Tcl_PkgProvide(interp, "lagi", "1.0") != TCL_OK) {
return TCL_ERROR;
}
Snack_AddSubCmd(SNACK_SOUND_CMD, "lagi",
(Snack_CmdProc *) lagi, NULL);
return TCL_OK;
}
EXPORT(int, Lagi_SafeInit)(Tcl_Interp *interp)
{
return Lagi_Init(interp);
}
#ifdef __cplusplus
#endif

1.4 Program rata-rata


#include <stdio.h>
#include <stdlib.h>

#define JUMLAHBARIS 256


#define NUMFILE 20

int main() {
119

FILE *fsignal;
char
*nama[]={"1.txt","2.txt","3.txt","4.txt","5.txt","6.txt","7.txt","8.txt","9.t
xt","10.txt","11.txt","12.txt","13.txt","14.txt","15.txt","16.txt","17.txt","
18.txt","19.txt","20.txt"};
/*int i;

int panjang = 3;
for (i=0;i<3;i++)
{

}*/
double avg[JUMLAHBARIS];
int i;
for(i = 0;i < JUMLAHBARIS;i++){
double sum = 0;
int j;
// printf("baris ke %d : ",i);
for(j = 0; j < NUMFILE;j++){
FILE *fp;
double value = 0;
int k;
fp = fopen(nama[j],"rt");
if( fp == NULL){
printf("cannot open %s\n",nama[j]);
exit(1);
}
//fseek(fp,i,SEEK_SET);
for(k = 0; k <= i;k++){
fscanf(fp,"%*lf %lf",&value);
}
fclose(fp);
//printf("%lf\t",value);
sum += value;
}
//printf("\n");
avg[i] = sum/(double)NUMFILE;
}
120

fsignal=fopen("rata.txt","w");
for(i = 0; i < JUMLAHBARIS; i++){
//fprintf(fsignal,"rata baris %d = %lf\n",i,avg[i]);
fprintf(fsignal,"%lf\n",avg[i]);
}
}
LAMPIRAN III

Listing Program Fase Pengujian

1.1 Program Tampilan Awal


#!/usr/bin/wish -f
global countries is1 sc
package require snack

snack::sound s
s configure -rate 12000 -channels MONO -encoding LIN16
s read suara//welcome.wav
s play

#
#Title Window
#
wm geometry . 850x638+75+20
wm overrideredirect . 1

frame .u -width 638 -height 850 -bg black


pack .u

image create photo test -file gambar//depan1.gif


canvas .u.c -height 638 -width 850
pack .u.c
.u.c create image 0 0 -image test -anchor nw

after 5000 proses


proc proses { } {
Run pemberitahuan.tcl
}

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit

121
122

interp alias $i exit {} interp delete $i


if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}

1.2 Program Pemberitahuan


#!/usr/bin/wish -f
global countries is1 sc
package require snack

snack::sound s

#
#Title Window
#
wm geometry . 850x638+75+20
wm overrideredirect . 1

frame .u -width 638 -height 850 -bg black


pack .u

image create photo test -file gambar//woro.gif


canvas .u.c -height 638 -width 850
pack .u.c
.u.c create image 0 0 -image test -anchor nw

after 5000 proses


proc proses { } {
Run gender.tcl
}

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
123

$i eval rename exit dontexit


interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}

1.3 Program Gender


#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

snack::sound s
snack::sound z

s configure -rate 12000 -channels MONO -encoding LIN16


z configure -rate 12000 -channels MONO -encoding LIN16

s read suara//gender.wav
s play

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\gender.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

frame .h -bg blue


124

pack .h -fill x

button .h.cowo -bd 2 -bg white -text LaKi-LaKi -font jester -command
{Run home.tcl }
button .h.cewe -bd 2 -bg white -text PeReMPuAn -font jester -command
{Run homece.tcl}

pack .h.cowo .h.cewe -side left -padx 10 -pady 4


button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}

1.4 Program Home


#!/bin/sh
125

# the next line restarts using wish \


exec wish8.4 "$0" "$@"

load dll\\lagi3.dll
load dll\\sse1.dll

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

snack::sound s
snack::sound z
snack::sound x

x configure -rate 12000 -channels MONO -encoding LIN16


s configure -rate 12000 -channels MONO -encoding LIN16
z configure -rate 12000 -channels MONO -encoding LIN16

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\depan.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

frame .h -bg blue


pack .h -fill x

x read suara//Welcome.wav
x play

button .h.start -bd 2 -bg white -text PiLiH -font broadway -command {
s record;z record
after 1500 tick
}
126

pack .h.start -side left -padx 4 -pady 4

##########################################################
###############
######## FUNGSI UTAMA
##########
##########################################################
###############
proc tick { } {
x stop

s stop

s write test.wav

s lagi

s sse

z stop
set out [read [open out.txt]]
set out1 [read [open min.txt]]

if {$out1>= 1.50 } {
s read Salah.wav
s play
tk_messageBox -message "Maaf kata yang anda
ucapkan tidak sesuai" -type ok
} else {
if { $out == 1} {
Run diktat.tcl
}
if { $out == 12 } {
Run majalah.tcl
}
if { $out == 123 } {
Run buku.tcl
}
if { $out == 1234 } {
127

Run cd.tcl

}
}
}

button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}

1.5 Program Diktat


#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"
128

load dll\\lagi3.dll
load dll\\sse2.dll

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

snack::sound s
snack::sound z
snack::sound x

x configure -rate 12000 -channels MONO -encoding LIN16


s configure -rate 12000 -channels MONO -encoding LIN16
z configure -rate 12000 -channels MONO -encoding LIN16

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\diktat.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

x read suara//Welcome.wav
x play

frame .h -bg blue


pack .h -fill x

button .h.start -bd 2 -bg white -text PiLiH -font broadway -command {
s record;z record
after 1500 tick
129

pack .h.start -side left -padx 4 -pady 4

##########################################################
###############
######## FUNGSI UTAMA
##########
##########################################################
###############
proc tick { } {
x stop
s stop

s write test.wav

s lagi
s sse

z stop
set out [read [open out.txt]]
set out1 [read [open min.txt]]

if {$out1>= 1.50 } {
s read Salah.wav
s play
tk_messageBox -message "Maaf kata yang anda
ucapkan tidak sesuai" -type ok
} else {
if { $out == 1} {
Run elka.tcl
}
if { $out == 12 } {
Run telkom.tcl
}
if { $out == 123 } {
Run elin.tcl
}
if { $out == 1234 } {
130

Run it.tcl
}
if { $out == 12345 } {
Run meka.tcl

}
}
}

button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}

}
131

1.6 Program Majalah


#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"

load dll\\lagi3.dll
load dll\\sse3.dll

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

snack::sound s
snack::sound z
snack::sound x

x configure -rate 12000 -channels MONO -encoding LIN16


s configure -rate 12000 -channels MONO -encoding LIN16
z configure -rate 12000 -channels MONO -encoding LIN16

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\Majalah.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

x read suara//Welcome.wav
x play

frame .h -bg blue


pack .h -fill x
132

button .h.start -bd 2 -bg white -text PiLiH -font broadway -command {
s record;z record
after 1500 tick
}

pack .h.start -side left -padx 4 -pady 4

##########################################################
###############
######## FUNGSI UTAMA
##########
##########################################################
###############
proc tick { } {
x stop
s stop

s write test.wav

s lagi
s sse

z stop
set out [read [open out.txt]]
set out1 [read [open min.txt]]

if {$out1>= 1.50 } {
s read Salah.wav
s play
tk_messageBox -message "Maaf kata yang anda
ucapkan tidak sesuai" -type ok
} else {
if { $out == 1} {
Run hiburan.tcl
}
if { $out == 12 } {
Run iptek.tcl
}
if { $out == 123 } {
133

Run ponsel.tcl
}
if { $out == 1234 } {
Run pc.tcl

}
}
}

button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}

1.7 Program Buku


#!/bin/sh
134

# the next line restarts using wish \


exec wish8.4 "$0" "$@"

load dll\\lagi3.dll
load dll\\sse4.dll

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

snack::sound s
snack::sound x
snack::sound z

s configure -rate 12000 -channels MONO -encoding LIN16


x configure -rate 12000 -channels MONO -encoding LIN16
z configure -rate 12000 -channels MONO -encoding LIN16

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\buku.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

x read suara//Welcome.wav
x play

frame .h -bg blue


pack .h -fill x

button .h.start -bd 2 -bg white -text PiLiH -font broadway -command {
s record;z record
135

after 1500 tick


}

pack .h.start -side left -padx 4 -pady 4

##########################################################
###############
######## FUNGSI UTAMA
##########
##########################################################
###############
proc tick { } {

x stop
s stop

s write test.wav

s lagi
s sse

z stop
set out [read [open out.txt]]
set out1 [read [open min.txt]]

if {$out1>= 1.50 } {
s read Salah.wav
s play
tk_messageBox -message "Maaf kata yang anda
ucapkan tidak sesuai" -type ok
} else {
if { $out == 1} {
Run agama.tcl
}
if { $out == 12 } {
Run komputer.tcl
}
if { $out == 123 } {
Run sosial.tcl
136

}
if { $out == 1234 } {
Run teknologi.tcl

}
if { $out == 1235 } {
Run manajemen.tcl

}
}
}

button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}
137

1.8 Program CD
#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"

load dll\\lagi3.dll
load dll\\sse5.dll

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

snack::sound s
snack::sound z
snack::sound x

x configure -rate 12000 -channels MONO -encoding LIN16


s configure -rate 12000 -channels MONO -encoding LIN16
z configure -rate 12000 -channels MONO -encoding LIN16

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\CD.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

x read suara//Welcome.wav
x play
138

frame .h -bg blue


pack .h -fill x

button .h.start -bd 2 -bg white -text PiLiH -font broadway -command {
s record;z record
after 1500 tick
}

pack .h.start -side left -padx 4 -pady 4

##########################################################
###############
######## FUNGSI UTAMA
##########
##########################################################
###############
proc tick { } {
x stop
s stop

s write test.wav

s lagi
s sse

z stop
set out [read [open out.txt]]
set out1 [read [open min.txt]]

if {$out1>= 1.50 } {
s read Salah.wav
s play
tk_messageBox -message "Maaf kata yang anda
ucapkan tidak sesuai" -type ok
} else {
if { $out == 1} {
Run program.tcl
139

}
if { $out == 12 } {
Run umum.tcl
}
}
}

button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}

}
140

1.9 Program File Database


File :
elka,telkom,elin,it,meka,hiburan,ponsel,pc,komputer,agama,sosial,manaj
emen dsb

Contoh file agama :


#!/bin/sh
# the next line restarts using wish \
exec wish8.4 "$0" "$@"

package require -exact snack 2.2

wm geometry . 900x720+75+20
wm overrideredirect . 1

frame .u -width 900 -height 720 -bd 2


pack .u

image create photo test -file gambar\\agama.gif


canvas .u.c -height 675 -width 900
pack .u.c
.u.c create image 0 0 -image test -anchor nw

frame .h -bg blue


pack .h -fill x

button .h.start -bd 2 -bg white -text Back -font broadway -command
{Run gender.tcl
}

pack .h.start -side left -padx 4 -pady 4


141

button .h.quit -bd 2 -bg white -text Quit -font broadway -command
keluar
pack .h.quit -side right -padx 4 -pady 4

proc Run {script {demoFlag 0}} {


set i [interp create]
load {} Tk $i
$i eval rename exit dontexit
interp alias $i exit {} interp delete $i
if {$demoFlag != 0} {
$i eval set demoFlag $demoFlag
}
$i eval wm title . $script
$i eval source $script
}
proc keluar { } {

set answer [tk_messageBox -message "Realy Quit ?" -type yesno -


icon question]
switch -- $answer {

yes exit
no {tk_messageBox -message "Terima kasih atas kesetiaan Anda:-)" -
type ok}
}

}
LAMPIRAN IV
1.1 Tampilan Awal

1.2 Tampilan Pemberitahuan

143
144

1.3 Tampilan Gender

1.4 Tampilan Home


145

1.5 Tampilan Diktat

1.6 Tampilan Majalah


146

1.7 Tampilan Buku

1.8 Tampilan CD
147

1.9 Tampilan Database


File :
elka,telkom,elin,it,meka,hiburan,ponsel,pc,komputer,agama,sosial,manaj
emen dsb
Contoh tampilan agama :
PROFIL PENULIS

Nama : Maratus Solihah


Tempat/Tanggal Lahir : Surabaya , 19 Januari 1985
Alamat Asal : Jl. Asem Jajar XII / 33 Surabaya
Telepon/Hp : (031) 5480340 / 085648588160
Hobi : membaca, be a great trainer, bersahabat.
Cita-cita :menjadi istri solihah, entrepreneur yang
sukses dunia-akhirat, bermanfaat bagi agama
dan masyarakat.
Motto : Do the best just 4 ALLAH
Organisasi yang pernah diikuti :BEM PENS-ITS, UKKI PENS-ITS,
Uswah Student Center, IkaSKILAS, Karang
Taruna, dll
DAFTAR RIWAYAT PENDIDIKAN :
1. SDN Tembok Dukuh I-83 Surabaya 1991-1997
2. SLTPN 3 Surabaya 1997-2000
3. SMUN 5 Surabaya 2000-2003
4. Politeknik Elektronika Negeri Surabaya 2003-2007

”Tiada suatu bencana pun yang menimpa di bumi dan (tidak pula)
pula pada diri kalian kecuali telah tertulis dalam kitab (Lauh Mahfuzh)
sebelum kami menciptakannya. Sesungguhnya yang demikian itu mudah
bagi Allah. (Kami jelaskan itu)
supaya kalian tidak putus asa atas apa yang luput dari kalian, dan
supaya kalian tidak
terlalu gembira terhadap apa yang diberikan kepada kalian.
Allah tidak menyukai orang yang sombong lagi membangkang.”
(QS. Al-Hadid : 22-23)

149

Anda mungkin juga menyukai