8
BAB 2 LANDASAN TEORI
2.1. Suara
Suara adalah fenomena fisik yang dihasilkan oleh getaran suatu benda yang berupa sinyal analog dengan amplitudo yang berubah secara kontinu terhadap waktu. Suara merupakan gelombang yang mengandung sejumlah parameter (amplitudo, simpangan, frekuensi, spectrum), yang dapat menyebabkan suara yang satu berbeda dari suara lain. Suara beramplitudo lebih besar akan terdengar lebih keras. Suara dengan frekuensi lebih besar akan terdengar lebih tinggi. Sementara itu bisa juga ditemukan dua suara yang beramplitudo dan berfrekuensi sama, misalnya biola dan piano dibunyikan secara bersamaan dengan tingkat kekerasaan dan nada yang sama, namun telinga masih dapat membedakan mana yang suara piano dan mana yang suara biola. Ini terjadi karena suara memiliki warna suara. Warna suatu suara ditentukan oleh pola dasar dari gelombang suara (Nurlaily, 2009).
Perbedaan pola dasar gelombang bunyi biola dan piano antara lain disebabkan oleh perbedaan faktor resonansi yang timbul pada masingmasing instrumen. Demikian juga pada manusia, resonansi yang terjadi pada rongga mulut akan menimbulkan pola dasar gelombang bunyi yang berbeda-beda.
Proses pembentukan bunyi bahasa dimulai dengan memanfaatkan pernapasan sebagai sumber tenaganya. Pada saat manusia mengeluarkan nafas, paru-paru manusia akan menghembuskan tenaga berupa arus udara. Arus udara ini dapat mengalami perubahan pada pita suara yang terletak pada pangkal tenggorokan. Arus udara dari paru-paru itu dapat membuka kedua pita suara yang merapat sehingga menyebabkan corak bunyi
9
tertentu.Gerakan membuka dan menutup pita suara itu akan mengakibatkan arus udara dan udara yang berada di sekitar pita suara akan turun berubah tekanan dan ikut bergetar.
Adanya perubahan bentuk saluran suara yang terdiri dari rongga faring, rongga mulut dan rongga hidung akan menghasilkan bunyi bahasa yang berbeda-beda. Pada saat udara dari paru-paru dihembuskan, kedua pita suara dapat merapat atau merenggang. Jika kedua pita itu bergantian merapat atau merenggang dalam pembentukan suatu bunyi bahasa, maka bunyi bahasa yang dihasilkan terasa berat. Bunyi bahasa ini dinamakan bunyi bersuara (voiced). Jika kedua pita merenggang sehingga arus udara dapat lewat dengan mudah (ringan), maka bunyi bahasa ini umumnya dinamakan bunyi tak bersuara (unvoiced).
Gambar 2.1. Organ Pernapasan Manusia Sumber: http://ridwanaz.com/wp-content/uploads/2012/06/SistemRespirasi-pernapasan-Manusia.jpg
10
2.2. Proses Sinyal Suara
Di sekitar kita, dalam kehidupan sehari-hari, sebenarnya lebih banyak sinyal yang direpresentasikan dalam bentuk analog daripada sinyal dalam bentuk digital. Misalnya, suara, cahaya, suhu, bau dan sebagainya. Namun sinyalsinyal analog semacam itu akan lebih mudah disimpan, diolah, direproduksi kembali apabila disimpan dalam bentuk data digital. Sebagai contoh, Compact Disc yang dijual di pasaran dapat menampung sejumlah besar lagu adalah hasil konversi sinyal suara analog ke dalam bentuk digital. Film-film yang dapat dinikmati melalui DVD juga merupakan hasil dari rekayasa digital. Dan masih banyak lagi manfaat yang dapat kita rasakan saat ini dengan adanya teknologi digital (Mafisamin, 2014).
Untuk memperoleh data digital dibutuhkan suatu proses untuk mengubah sinyal analog menjadi data digital. Ada beberapa metode yang dapat digunakan, yaitu Pulse Code Modulation (PCM) dan Delta Modulation (DM).
2.2.1. Pulse Code Modulation (PCM)
PCM merubah sinyal analog menjadi data digital melalui proses awal yang disebut dengan sampling. Sampling adalah proses mencacah sinyal analog menjadi potongan-potongan sinyal dengan amplitudo sesuai dengan sinyal asli. Setelah didapatkan sinyal hasil sampling, sinyal tersebut selanjutnya dikuantisasi. Kuantisasi adalah proses pembulatan amplitudo sinyal terkuantisasi ke bilangan integer terdekat. Proses terakhir adalah melakukan pengkodean digital terhadap kode hasil kuantisasi. Jadi dapat disimpulkan bahwa PCM menggunakan tiga langkah utama di dalam mengubah sinyal analog menjadi data digital, yaitu proses pencacahan (sampling), proses kuantisasi, dan proses pengkodean digital.
11
Gambar 2.2. memberikan ilustrasi seluruh proses mengubah sinyal analog menjadi data digital dengan menggunakan PCM.
Kuantisasi
Pencacahan
Sinyal Analog
Pengkodean
1101...001
Data Digital
Pengkodean PCM
Gambar 2.2. Pengkodean PCM Sumber: (Mafisamin, 2014)
1.
Proses pencacahan (sampling)
Proses pencacahan dilakukan dengan mencacah sinyal analog dalam periode waktu tertentu dirumuskan sebagai berikut:
f s = 1 / Ts
(2.1)
Keterangan :
f s = frekuensi pencacahan Ts = periode pencacahan
Semakin tinggi frekuensi pencacahan, atau semakin kecil periode pencacahan maka sinyal hasil cacahan akan semakin menyerupai sinyal analog asli. Sinyal hasil cacahan seringkali disebut juga istilah sinyal Pulse Amplitudo Modulation (PAM). Namun semakin tinggi frekuensi pencacahan membawa konsekuensi pada harga keseluruhan dalam proses pencacahan semakin mahal. Sebaliknya menggunakan frekuensi pencacahan rendah akan menurunkan
harga
proses
pencacahan
tetapi
mengandung
konsekuensi pada represensitasi sinyal PAM yang kurang dapat mewakili sinyal analog asli.
12
Proses pencacah dilakukan dengan didasarkan asumsi bahwa sinyal percakapan berada pada daerah frekuensi 300-3400 Hz.
Teori Nyquist menyebutkan bahwa frekuensi pencacah harus minimal dua kali frekuensi tertinggi (bukan bandwidth) yang dikandung oleh sinyal asli.
Dengan menggunakan representasi domain frekuensi tersebut kita dapat melihat frekuensi tertinggi yang dikandung oleh suatu sinyal. Karena itu dapat menarik acuan umum bahwa proses pencacahan hanya dapat dilakukan apabila sinyal memiliki bandwidth terbatas (band-limited). Apabila bandwidth dari suatu sinyal tak terbatas, maka pencacahan tidak dapat dilakukan. Dengan kata lain, akan dibutuhkan frekuensi tak terhingga untuk mencacah sinyal dengan bandwidth tak terbatas.
Gambar 2.3. Pencacahan dengan berbagai frekuensi pencacah Sumber: (Mafisamin, 2014)
13
Efek dari variasi frekuensi pencacah ditunjukkan dalam Gambar 2.3. Gambar sebelah kanan atas adalah contoh pencacahan sinyal dengan menggunakan frekuensi pencacah sama dengan frekuensi yang diisyaratkan oleh Nyquist, yaitu f s = 2 f max .
Gambar bawah sebelah kiri adalah pencacahan dengan frekuensi pencacah kurang dari syarat Nyquist. Karena jumlah sinyal pencacah kurang dari syarat minimal, maka sinyal pencacah tidak akan dapat merepresentasikan sinyal analog asli. Sedangkan pada gambar terakhir terlihat bahwa frekuensi pencacah jauh di atas syarat Nyquist, karena itu sinyal pencacah dapat merepresentasikan sinyal analog asli dengan sangat baik.
Contoh 1: Dalam Gambar 2.3., sinyal memiliki frekuensi 1 Hz. Tentukan frekuensi pencacah yang dibutuhkan untuk mencacah sinyal tersebut.
Sesuai dengan kriteria Nyquist, maka frekuensi pencacah minimal
f s = 2 f max , maka nilai
adalah
f s = 2 Hz. Frekuensi pencacah
tersebut adalah pencacah minimal. Apabila frekuensi pencacah ditingkatkan menjadi 5 kali frekuensi maksimal, maka f s = 5 Hz. Seperti terlihat dalam Gambar 2.3, dengan menggunakan frekuensi pencacah 5 Hz, sinyal hasil sampling lebih menyerupai sinyal asli.
Proses pencacahan seperti dalan Gambar 2.3, disebut dengan pencacahan ideal. Pencacahan ideal tidak mungkin dicapai dalam aplikasi
nyata,
karena
membutuhkan
peralatan
yang
dapat
menghasilkan periode waktu setiap cacahan pendek sekali (setiap cacahan hanya berupa garis). Pencacahan natural akan menghasilkan cacahan berupa persegi panjang dengan tinggi sesuai dengan amplitudo gelombang, dan lebar sesuai dengan periode cacahan.
14
2. Proses kuantisasi
Pencacahan menghasilkan deretan pulsa PAM dengan amplitudo bervariasi dari nilai minimum tegangan sampai nilai maksimum tegangan sinyal analog asli. Jumlah variasi amplitudo tak terhingga. Karena itu langkah selanjutnya adalah melakukan proses kuantisasi amplitudo.
Gambar 2.4. Pencacahan natural dan sample and hold Sumber: (Mafisamin, 2014)
Lebar kuantisasi (∆) ditentukan dengan rumusan berikut:
∆=
Vmax − Vmin L
(2.2)
Keterangan:
Vmax = tegangan maksimal dari sinyal analog asli Vmin = tegangan minimum yang dapat dicapai oleh sinyal analog asli L
= jumlah level kuantisasi yang diinginkan
Ilustrasi proses kuantisasi dapat dilihat dalam gambar 2.4. Tegangan sinyal analog bervariasi antara -8 volt sampai 8 volt.
15
Apabila diinginkan level kuantisasi sebanyak 8 level, maka dengan menggunakan persamaan 2.2 didapatkan lebar kuantisasi ∆ = 2 volt. Normalisasi PAM dalam Gambar 2.4 adalah nilai
tegangan PAM hasil dari pencacahan dibagi dengan delta (∆) .
Sedangkan normalisasi kuantisasi adalah hasil pembulatan normalisasi PAM ke level kuantisasi terdekat, dalam gambar level kuantisasi ditandai dengan garis terputus-putus yaitu pada:
− 3,5∆;−2,5∆;−1,5∆;−0,5∆;0,5∆;1,5∆;2,5∆;3,5∆.
PCM dengan lebar kuantisasi (∆) yang memiliki nilai tetap seperti terlihat dalam gambar disebut dengan kuantisasi seragam (uniform quantization). Dalam kasus yang lain, misalnya perubahan amplitudo sinyal analog lebih sering terjadi pada tegangan rendah, tidak digunakan kuantisasi seragam tetapi digunakan kuantisasi tidak seragam. Kuantisasi tidak seragam akan menghasilkan lebar kuantisasi berbeda-beda untuk setiap level kuantisasi. Berikut adalah gambar dari proses kuantisasi dan tabel pengkodean digital. Normalisasi Amplitudo
Level Kuantisasi
∆ = 2 Volt
Gambar 2.5. Proses kuantisasi Sumber: (Mafisamin, 2014)
16
Tabel 2.1. Pengkodean digital Normalisasi PAM
-2,3
-1,8
1,7
3,2
3,7
2,6
0,6
-0,7
-2,6
Normalisasi kuantisasi
-2,5
-1,5
1,5
3,5
3,5
2,5
0,5
-0,5
-2,5
Kesalahan kuantisasi
0,2
0,3
0,2
0,3
0,2
0,1
0,1
0,2
0,1
1
2
5
7
7
6
4
3
1
001
010
101
111
111
110
100
011
001
Level kuantisasi Pengkodean
Sumber: (Mafisamin, 2014)
Hal lain yang perlu mendapatkan perhatian khusus adalah adanya kesalahan kuantisasi akibat adanya pembulatan level tegangan PAM ke level kuantisasi terdekat. Nilai kesalahan dari setiap cacahan tidak akan melebihi ∆ / 2 , karena itu kesalahan kuantisasi akan berada pada nilai − ∆ / 2 ≤ kesalahan kuantisasi ≤ ∆ / 2 . Kesalahan kuantisasi berkontribusi pada peningkatan Signal
to Noise Ratio (SNR) dari sinyal yang tentu saja akan berakibat langsung pada penurunan kapasitas kanal. SNR akibat adanya kesalahan kuantisasi dirumuskan oleh persamaan berikut:
SNR (dB) = 6,02 x log 2 L + 1.76
(2.3)
Keterangan: SNR = perbandingan sinyal asli dengan sinyal
gangguan (noise) L
= jumlah level kuantisasi
Rata-rata kesalahan kuantisasi dapat dikurangi dengan memberikan penambahan derau dalam jumlah kecil. Proses penambahan derau seperti ini disebut dengan dithering. Perlu diketahui bahwa tidak semua derau bersifat mengganggu, justru sebaliknya
derau
yang
terkendali
akan
sangat
bermanfaat
sebagaimana halnya implementasi dithering dalam proses kuantisasi.
17
Contoh 2: Berapakah SNR akibat adanya kesalahan kuantisasi dari proses kuantisasi dalam Gambar 2.5. dan Tabel 2.1.
Dalam Gambar 2.5. dan Tabel 2.1 terlihat bahwa proses kuantisasi menggunakan 8 level kuantisasi, berarti untuk setiap cacahan dibutuhkan representasi kode digital sebanyak 3 bit.
SNR (dB) = 6,02 x log 2 (8) + 1,76 = 19,82dB . Sesuai dengan persamaan 2.3, apabila level kuantisasi dinaikkan, maka nilai SNR juga akan meningkat.
3. Proses Pengkodean Digital
Langkah terakhir dalam metode PCM adalah pengkodean data digital. Seperti terlihat dalam Gambar 2.5., pengkodean digital terletak pada baris terakhir dalam gambar. Pengkodean ini mengubah level kuantisasi seperti dalam Gambar 2.5. ke dalam bentuk digital. Misalnya level kuantisasi 7 memiliki bentuk digital 111, level kuantisasi 3 memiliki bentuk digital 011, dan seterusnya. Dengan cara demikian, sinyal analog sekarang telah berubah menjadi bentuk digital.
Kecepatan data dapat dihitung dengan rumusan dalam persamaan berikut:
R = f s x log 2 L Keterangan: R
= kecepatan data (dalam satuan bps)
f s = frekuensi cacahan (dalam satuan Hz)
(2.4)
18
Dalam persamaan 2.4, log 2 L pada dasarnya adalah jumlah bit yang digunakan untuk merepresentasikan L level, sebagai contoh untuk L = 8 , maka dibutuhkan jumlah bit 3 seperti dapat dilihat dalam
Gambar 2.5.
2.2.2. Delta Modulation (DM)
Teknik konversi dari sinyal analog menjadi data digital akan menjadi lebih sederhana apabila diimplementasikan dengan menggunakan Delta Modulation (DM) daripada menggunakan Pulse Code Modulation (PCM). DM tidak mendeteksi amplitudo sebagaimana halnya pada PCM, melainkan mendeteksi perubahan amplitudo antara cacahan seperti ini dengan cacahan sebelumnya. Perbedaan antara amplitudo saat ini dengan amplitudo sebelumnya disebut dengan δ (Mafisamin, 2014).
Ilustrasi Delta Modulation (DM) digambarkan sebagai berikut.
Gambar 2.6. Ilustrasi Delta Modulation (DM) Sumber: (Mafisamin, 2014) Apabila δ bernilai positif, maka DM akan membangkitkan bit 1, sebaliknya apabila δ
bernilai negatif maka DM akan
membangkitkan nilai 0. Dengan demikian keluaran dari DM
19
merupakan deretan bit yang menggambarkan perubahan amplitudo dari sinyal analog. Untuk dapat menghasilkan unjuk kerja DM yang lebih baik, δ dapat dibuat menjadi adaptif. Dengan menggunakan DM adaftif nilai δ akan berubah-ubah mengikuti amplitudo dari sinyal analog.
2.3. Pengenalan ucapan
Pengenalan ucapan dalam perkembangan teknologinya merupakan bagian dari pengenalan suara (voice recognition), yaitu proses identifikasi seseorang berdasarkan suaranya.
Pengenalan ucapan adalah proses yang dilakukan komputer untuk mengenali kata yang diucapkan oleh sesorang tanpa memperdulikan identitas orang terkait. Pengenalan ucapan merupakan suatu teknik yang memungkinkan sistem komputer untuk menerima input berupa kata yang diucapkan. Kata-kata tersebut diubah bentuknya menjadi sinyal digital dengan cara mengubah gelombang suara menjadi sekumpulan angka lalu disesuaikan dengan kode-kode tertentu dan dicocokkan dengan suatu pola yang tersimpan dalam suatu perangkat. Hasil dari identifikasi kata yang diucapkan dapat ditampilkan dalam bentuk tulisan atau dapat dibaca oleh perangkat teknologi.
Pengenalan ucapan juga dikenal sebagai Automatic Speech Recognition (ASR). ASR merupakan pengenalan ucapan komputer yang berarti suara pemahaman komputer dan melakukan setiap tugas yang diperlukan atau kemampuan untuk mencocokkan suara terhadap kosakata yang tersedia atau diperoleh (Saini dan Kaur, 2013). Secara umum prinsip kerja dari ASR adalah ketika seseorang berbicara kepada komputer, program menangkap suara orang tersebut
20
melalui mikrophone dan mengubahnya menjadi sinyal digital. Kemudian program menganalisa sinyal digital tersebut dengan membandingkannya dengan digital pattern yang ada dalam databasenya. Setelah itu akan diambil digital pattern yang paling besar prosentase kemiripannya, kemudian dari digital pattern tersebut diubah menjadi teks. Karena setiap manusia memiliki karakteristik suara yang berbeda-beda, maka diberikan suatu metode untuk melatih program dan kemudian data-data spesifik tentang karakter suara tersebut disimpan dalam database dengan tujuan supaya
proses
pengenalan
suara
berikutnya
memiliki
prosentase
keberhasilan yang lebih besar.
Ada 2 tipe pengenalan ucapan (speech recognition), dilihat dari ketergantungan pembicara yaitu: a. Independent Speech Recognition(ISR), yaitu sistem pengenalan ucapan tanpa terpengaruh dengan siapa yang berbicara, tetapi mempunyai keterbatasan dalam jumlah kosakata. Model ini akan mencocokkan setiap ucapan dengan kata yang dikenali dan memilih yang “sepertinya” cocok. Untuk mendapatkan kecocokan kata yang diucapkan maka digunakan model statistik yang dikenal dengan nama Hidden Markov Model (HMM).
b. Dependent Speech Recognition(DSR), yaitu sistem pengenal ucapan yang memerlukan pelatihan khusus dari pembicara, dimana hasil penelitian dari masing-masing pembicara akan disimpan dalam sebuah profil. Profil inilah yang nantinya digunakan untuk berinteraksi dengan sistem pengenalan ucapan dan sistem akan bergantung siapa yang berbicara. Sistem ini biasanya lebih mudah untuk dikembangkan, dimana contoh suara sudah dibuat sebelumnya dan disimpan dalam database (basis data) dan jumlah kosakatanya lebih besar dibandingkan dengan independent speech recognition. Proses pengenalan ucapan dengan cara membandingkan ucapan pembicara dengan contoh suara yang sudah ada.
21
Berdasarkan kemampuan dalam mengenal kata yang diucapkan, terdapat 4 jenis kata yaitu: 1. Kata-kata yang terisolasi : proses pengidentifikasi kata yang hanya terdapat mengenali kata yang diucapkan jika kata tersebut memiliki jeda waktu pengucapan antar kata.
2. Kata-kata yang berhubungan : proses pengidentifikasian kata yang mirip dengan kata yang terisolasi, namun membutuhkan jeda waktu yang sangat sedikit.
3. Kata-kata yang berkelanjutan : proses pengidentifikasian kata yang sudah lebih maju karena dapat mengenali kata-kata yang diucapkan secara berkesinambungan dengan jeda waktu yang sangat sedikit atau tanpa jeda waktu. Proses pengenalan suara ini sangat rumit karena membutuhkan metode khusus untuk membedakan kata-kata yang diucapkan tanpa jeda waktu. Pengguna perangkat ini dapat mengucapkan kata-kata secara normal.
4. Kata-kata spontan : proses pengidentifikasian kata yang dapat mengenal kata-kata yang diucapkan secara spontan tanpa jeda waktu antar kata.
Proses pengenalan suara ini sangat bergantung pada bahasa yang digunakan, karena setiap bahasa memiliki cara pengucapan yang berbeda. Sehingga teknologi ASR ini bersifat language dependent.
2.4. Tahapan-tahapan dalam pengenalan ucapan (speech recognition)
Sistem pengenalan ucapan (speech recognition system) terdiri dari 5 blok, yaitu: ekstraksi fitur (feature extraction), pemodelan akustik (acoustic
22
modelling), pemodelan pengucapan (pronounciation modelling), model bahasa (language model), dan decoder.
Blok diagram untuk sistem pengenalan ucapan adalah sebagai berikut: Feature Vectors
Speech Feature Extraction
Words ...
“Stop that.”
Decoder W
O
Acoustic Modelling
Pronounciation Modelling
Language Model
Gambar 2.7. Blok diagram untuk sistem pengenalan ucapan Sumber : (Gales dan Young, 2007)
2.4.1. Ekstraksi Fitur
Gelombang input audio dari sebuah microphone dikonversikan menjadi sebuah urutan vektor akustik O1:T = O1 ,..., OT dalam proses yang disebut ekstraksi fitur (fitur extraction)(Gales dan Young, 2007).
Tahap ekstraksi fitur bertujuan untuk memberikan sebuah gambaran dari gelombang ucapan. Tahap ekstraksi fitur ini dapat meminimalkan hilangnya informasi yang membedakan antara katakata, dan memberikan kecocokan dengan asumsi distribusi yang dibuat oleh model akustik. Metode yang digunakan adalah Linear Predictive Coding(LPC).
23
LPCmerupakan salah satu teknik analisis sinyal percakapan yang paling powerful dan menyediakan ekstraksi fitur yang berkualitas baik dan efisien untuk digunakan dalam perhitungan .
Prosedur untuk mendapatkan koefisien LPC diperlihatkan pada blok diagram berikut:
Pre-emphasis
Frame Blocking
Windowing
Auto Correlation
LPC Parameter
Analisa LPC
Gambar 2.8. Blok Diagram LPC
Langkah-langkah dasar yang harus dilakukan mengenai blok diagram tersebut adalah sebagai berikut: 1. Pre-emphasis : Proses dimana sinyal/ speech ucapan dirubah menjadi sinyal.
2. Frame Blocking : pada tahap ini, sinyal yang telah di preemphasis, diblok menjadi beberapa bagian dengan jumlah sampel N, dan tiap bagian dipisahkan dengan sejumlah M sampel.
3. Windowing : Tahap berikutnya adalah melakukan proses window pada setiap bagian sinyal yang telah dibuat sebelumnya. Hal ini dilakukan untuk meminimalkan pada bagian awal dan akhir sinyal. Jika didefinisikan sebuah window w(n) dan sinyal tiap bagian adalah x(n) maka sinyal hasil proses windowing.
24
4. Auto Correlation Analysis : Tiap bagian yang telah diberi window kemudian akan dibentuk autokorelasinya.
5. Analisa LPC : Langkah berikutnya adalah analisa LPC dimana semua nilai autokorelasinya yang telah dihitung pada tahap sebelumnya akan diubah menjadi parameter LPC.
6. Pengubahan parameter LPC menjadi koefisien cepstral : Parameter LPC yang sangat penting yang bisa diturunkan dari koefisien LPC adalah koefisien cepstral LPC, c(m)
Adapun langkah-langkah analisa LPC untuk pengenalan ucapan (speech recognition) adalah sebagai berikut: 1. Pre-emphasis terhadap cuplikan sinyal dengan persamaan Preemphasizer s (n) = s (n) − as (n − 1)
(2.5)
dengan s (n) adalah sampel ke-n dan harga a yang paling sering digunakan adalah 0.95
2. Membagi hasil pre-emphasis s (n) ke dalam frame-frame yang masing-masing memuat N buah sampel yang dipisahkan sejauh M buah sample. Semakin M < N semakin baik perkiraan spektral LPC dari frame ke frame.
3. Melakukan windowing terhadap setiap frame yang telah dibentuk untuk meminimalkan diskontinuitas pada ujung awal dan ujung akhir setiap frame dengan persamaan Hamming Window untuk sampel ke-n adalah : W (n) = 0.54 − 0.46 cos(2πn / N − 1) , 0 ≤ n ≤ N − 1
(2.6)
4. Analisis autokorelasi terhadap setiap frame hasil windowing x1 (n) dengan persamaan : r1 (m) = ∑n =0 x1 (n) x1 (n + m) n −1−1
25
(2.7)
dengan m dimulai dari 0 dan nilai tertinggi dari m = p adalah orde LPC yang biasa bernilai 8-16. 5. Mengubah p + 1 buah hasil autokorelasi pada masing-masing frame menjadi koefisien LPC am = am
( p)
untuk m = 1,2,..., p
dengan persamaan dibawah ini :
E ( 0 ) = r (0)
(2.8)
k m = {r (m) − ∑ m−1 r (| m − j |) / E ( m−1) , 1 ≤ m ≤ p
(2.9)
α m (m) = km
(2.10)
α j ( m ) = α j ( m−1) − k mα m− j ( m−1) , 1 ≤ j ≤ m − 1
(2.11)
E ( m ) = (1 − k m ) E ( m−1)
(2.12)
2
dengan r (0) adalah hasil autokorelasi, E(m ) adalah error, k m adalah koefisien pantulan, a j (m ) adalah koefisien prediksi untuk 1≤ j ≤ m.
6. Mengubah parameter LPC am ke koefisien cepstral cm untuk mendapatkan kinerja yang lebih baik dan tahan terhadap noise, yaitu dengan persamaan” cm = am + ∑k =1 (k / m)ck am−k , 1 ≤ m ≤ p
(2.13)
cm = ∑k =1 (k / m)ck am−k , m > p
(2.14)
m −1
m −1
Koefisien cepstral ini adalah koefisien dari representasi pada spectrum logarithms.
26
2.4.2. Pemodelan Akustik
Dalam sistem pengenalan ucapan automatis (automatic speech recognition)berbasis statistik, ucapan diwakili oleh beberapa urutan pengamatan fitur akustik O , berasal dari urutan kata-kata W . Sinyal akustik dirumuskan oleh: W = arg max{P(W | O)}
(2.15)
w
Akan tetapi, karena P(W | O) sulit untuk dimodelkan secara langsung, maka dapat menggunakan aturan Baye (Baye’s Rule) dapat ditulis sebagai berikut: W = arg max P(O | W ) . P(W )
(2.16)
w
Keterangan: P(O | W ) = probabilitas bahwa ketika string kata W
diucapkan P (W )
= probabilitas bahwa string kata W akan diucapkan
Dalam
persamaan
(2.13),
P (O | W ) adalah
probabilitas
pengamatan dan dievaluasi berdasarkan pemodelan
akustik
(acoustic modelling), sedangkan P(W ) adalah probabilitas sebagai model bahasa (language model).
Model akustik diimplementasikan dengan menggunakan pendekatan model seperti Hidden Markov Model (HMM), Artificial Neural Network (ANN), jaringan Bayesian dinamis (DBN), mendukung mesin vektor (SVM).
HMM digunakan dalam beberapa bentuk atau yang lain di setiap keadaan (state) dari sistem pengenalan ucapan.
27
HMM pada dasarnya perluasan dari rantai Markov yang merupakan model stokastik. Biasanya dalam model Markov setiap keadaan (state) dapat terlihat langsung oleh pengamat, sehingga kemungkinan
transisi
antara
keadaan
menjadi
satu-satunya
parameter yang teramati.
Rabiner (1989) mengemukakan bahwa transisi pada Rantai Markov yaitu: a. Transisi
dari
suatu
keadaan
tergantung
pada
keadaan
sebelumnya.
P[qt = S j | qt −1 = Si | qt − 2 = S k ......] = P[qt = S j | qt −1 = Si ] (2.17) b. Transisi keadaan bebas terhadap waktu.
aij = P[qt = S j | qt −1 = i ]
(2.18)
Berikut ini adalah contoh gambar dari rantai Markov. a11
1 a13
a12 a31
a21 a32
3
2 a23
a22
a33 Gambar 2.9. Rantai Markov Sumber: (Monika, 2012)
2.4.3. Pemodelan ucapan
Dalam pemodelan pengucapan (pronounciation modelling), selama pengenalan, urutan simbol-simbol yang dihasilkan oleh model
28
akustik HMM dibandingkan dengan serangkaian kata yang ada dalam kamus untuk menghasilkan urutan kata-kata yang hasil akhir sistem berisi informasi tentang kata-kata yang dikenal ke sistem dan bagaimana kata-kata yang diucapkan yaitu apa yang representasi fonetik mereka.
Gales dan Young (2007) mengemukakan bahwa setiap kata yang diucapkan didekomposisi menjadi urutan suara dasar yang disebut basis phones. Urutan ini disebut pengucapannya. Untuk memungkinkan kemungkinan beberapa pengucapan-pengucapan dapat dihitung:
p (O | W ) = ∑ p (O | Q) P(Q | W )
(2.19)
Q
di mana penjumlahan selesai semua urutan pengucapan berlaku untuk w , Q adalah urutan pengucapan partikular, L
P(Q | W ) = ∏ P(q ( wl ) | Wl ),
(2.20)
l =1
dan di mana masing-masing pengucapan berlaku untuk kata Wl .
Setiap base phone diwakili oleh kepadatan kontinu HMM dengan parameter probabilitas transisi dan distribusi observasi output digambarkan sebagai berikut: a33
a22
Markov Model
a23
a12
1 Acoustic Vector Sequence
O=
2
b2 (O1 )
O1
a44
4
3
b2 (O2 ) O2
a45
a34
b3 (O3 ) O3
b4 (O4 ) O4
5
b4 (O5 ) O5
Gambar 2.10. HMM model basis phone
29
Dalam operasi, HMM membuat transisi dari kondisi saat ini ke salah satu keadaan (state) yang terhubung setiap langkah waktu. Kemungkinan membuat transisi stertentu dari state ke state diberikan oleh probabilitas transisi {aij }. Masuk ke state, fitur vector yang dihasilkan dengan menggunakan distribusi terkait dengan keadaan (state) yang masuk, {b j ()}.
Bentuk proses menghasilkan asumsi bebas bersyarat standar untuk HMM: • keadaan (state) yang bersyarat independen dari semua state-state lain mengingat keadaan sebelumnya • pengamatan bersyarat independen dari semua pengamatan lainnya mengingat keadaan yang dihasilkan itu.
2.4.4. Model Bahasa
Model bahasa (Language Model) digunakan untuk membatasi proses pencarian pada pengenalan ucapan (speech recognition), yaitu menuntun pencarian urutan kata yang benar dengan memprediksi kemungkinan kata n menggunakan (n-1) kata-kata sebelumnya.
Model bahasa dapat diklasifikasikan menjadi: 1. Model seragam: setiap kata memiliki probabilitas yang sama terhadap kejadian. 2. Model stokastik: probabilitas terhadap kejadian dari sebuah kata tergantung pada kata yang mendahuluinya. 3. Bahasa state yang terbatas: bahasa menggunakan jaringan anegara yang terbatas untuk menentukan urutan kata yang diperbolehkan. 4. Konteks
tata
bahasa
bebas:
dapat
digunakan
mengkodekan yang jenis kalimat diperbolehkan.
untuk
30
Model bahasa N-gram merupakan sebuah metode yang diaplikasikan untuk pembangkitan kata atau karakter. Probabilitas sebelumnya dari urutan kata W = W1 ,...,Wk diperoleh dari persamaan berikut:
K
P(W ) = ∏ P(Wk | Wk −1 ,...,W1 )
(2.21)
k =1
Untuk pengenalan kosakata yang besar, sejarah pendingin kata dalam biasanya dipotong ke N-1 kata-kata untuk membentuk model bahasa N-gram K
P(W ) = ∏ P(Wi | Wi −1 , Wi −2 ,..., Wi − N +1 )
(2.22)
i =1
dimana N biasanya diantara 2-4. Model bahasa sering dinilai dari segi kebingungan (perplexity) mereka, H, yang didefinisikan sebagai H = − lim K →∞
≈−
1 K
1 log 2 ( P(W1 ,...,WK )) K
K
∑ log i =1
2
( P(Wi | Wi −1 , Wi −2 ,..., Wi − N +1 ))
dimana perkiraan tersebut digunakan untuk model bahasa Ngram dengan urutan kata dengan panjang terbatas.
Probabilitas N-gram diperkirakan dari training teks dengan menghitung kejadian N-gram untuk membentuk maximum likelihood (ML) estimasi parameter.
Sebuah pendekatan alternatif untuk estimasi model bahasa yang kuat adalah dengan menggunakan model berbasis kelas di mana untuk setiap kata Wk ada kelas yang sesuai C k . Maka, K
P(W ) = ∏ P(Wk | C k ) p (C k | C k −1 ,..., C k − N +1 ) k =1
(Gales dan Young, 2007)
(2.23)
31
2.4.5. Decoder
Decoder adalah peralatan yang digunakan untuk mendapatkan kembali sinyal analog yang telah dikodekan menjadi data digital. Perlu diingat bahwa untuk dapat melakukan pembalikkan kode, persyaratan Nyquist harus dipenuhi pada saat melakukan pencacahan (sampling) (Mafisamin, 2014).
Decoder merupakan suatu tahapan yang paling penting dalam proses pengenalan ucapan (speech recognition). Sebuah decoder berfungsi untukmelakukan keputusan yang sebenarnya dengan menggabungkan
pemodelan
akustik
(acoustic
modelling),
pemodelan pengucapan (pronounciation modelling)dan model bahasa (language model) untuk mencari semua urutan kata yang mungkin dan akan menghasilkan output.
2.5. Hidden Markov Model (HMM) Hidden Markov Model (HMM) adalah suatu model statistik dari sebuah sistem yang diasumsikan sebuah proses Markov dengan parameter yang tidak diketahui. Kita harus menentukan parameter-parameter tersembunyi (state) dari parameter-parameter yang dapat diamati. Parameter-parameter yang ditentukan kemudian dapat digunakan untuk analisis yang lebih jauh, misalnya untuk aplikasi pattern recognition(Monika, 2012). HMM pada dasarnya perluasan dari rantai Markov yang merupakan model stokastik. Biasanya dalam model Markov setiap keadaan (state) dapat terlihat langsung oleh pengamat, sehingga kemungkinan transisi antara keadaan menjadi satu-satunya parameter yang teramati. Dalam HMM, keadaan tidak dapat terlihat langsung meskipun parameter model diketahui, model tersebut tetap tersembunyi, tetapi hasil keluaran (output) yang bergantung pada keadaan tersebut dapat dilihat.
32
HMM terdiri dari dua proses stokastik. Proses stokastik pertama adalah rantai Markov yang ditandai oleh state-state dan probabilitas transisi. State pada bagian rantai Markov secara eksternal tidak terlihat, karena itu “tersembunyi”. Sedangkan proses stokastik kedua menghasilkan emisi diamati pada setiap saat, tergantung pada distribusi probabilitas tergantung pada state. Hal ini penting untuk melihat bahwa dominasi “tersembunyi” serta menciptakan Hidden Markov Model dirujuk ke state bagian Rantai Markov, bukan dengan parameter pada model tersebut.
2.5.1 Tipe HMM
Ada dua tipe HMM, yaitu HMM ergodic dan HMM kiri-kanan. a. HMM ergodic Pada HMM ergodic perpindahan keadaan satu ke keadaan yang lain semuanya memungkinkan, hal ini ditunjukkan pada gambar berikut:
S1
S3
S2
Gambar 2.11. HMM model ergodic Sumber: (Paul, 1990)
b. HMM kiri-kanan
Pada HMM kiri-kanan perpindahan keadaan hanya dapat berpindah dari kiri ke kanan, perpindahan keadaan tidak dapat mundur ke belakang, hal ini ditunjukkan pada gambar berikut:
33
S1
S2
S4
S3
S5
Gambar 2.12. HMM model kiri-kanan Sumber: (Paul, 1990)
Hidden Markov Model(HMM) terdiri dari keadaan (state), peluang transisi (state probabilities), peluang emisi (emission probabilities), dan peluang awal(initial probabilities).
2.5.2 Elemen HMM
HMM didefinisikan sebagai berikut: 1. N, jumlah state dalam model yang didefinisikan oleh
S = {S1 ,..., S N }
2. M, jumlah simbol pengamatan yang berbeda tiap state, misalnya ukuran alfabet diskrit didefinisikan oleh V = {v1 ,..., vM }. Jika pengamatankontinu maka M adalah tak terbatas. 3. Distribusi peluang keadaan transisi A = {aij }, dimana aij adalah distribusi yang state pada waktu t + 1 adalah S j , diberikan ketika keadaan pada waktu
adalah S i . Struktur matriks stokastik ini
t mendefinisikan hubungan struktur model.
[
]
aij = p qt +1 = S j | qt = Si , 1 ≤ i,
j≤N
(2.24)
34
4. Distribusi peluang simbol pengamatan pada masing-masing state j , B = {b j (k )} dimana badalah peluang yang simbol vk j (k ) diemisi dalam keadaan S j .
[
]
b j (k ) = p ot = vk | qt = S j , 1 ≤ j ≤ N , 1 ≤ k ≤ M
(2.25)
jika pengamatankontinu, maka kita harus menggunakan fungsi kepadatan peluang kontinu. 5. Distribusi keadaan awal π = {π i } dimana π i adalah peluang bahwa model tersebut berada dalam keadaan S i pada waktu
t = 0 didefinisikan oleh
π i = p{q1 = i}, 1 ≤ i ≤ N
(2.26)
Adapun contoh Hidden Markov Model (HMM) digambarkan sebagai berikut:
Gambar 2.13. Contoh Hidden Markov Model (HMM) Sumber : (Dymarski, 2011)
Hidden Markov Model (HMM) dapat dituliskan sebagai model λ = ( A, B, π ) . Dengan diketahuinya parameter-parameter N , M , A, B,
dan π (Dymarski, 2011).
35
2.5.3 Fungsi Rekursif HMM
Ada tiga fungsi rekursif HMM, yaitu: 1. Algoritma Forward Variabel algoritma forward : α i = P(O1 , O2 ,..., OT , qT = S i | λ ) . Berikut ini langkah-langkah dalam algoritma Forward:
Inisialisasi
a1 (i ) = π i bi (O1 ), 1 ≤ i ≤ N
(2.27)
Induksi
N
α t +1 ( j ) = ∑ α t (i )α ij b j (Ot +1 ), i =1
(2.28)
dengan 1 ≤ t ≤ T − 1 dan 1 ≤ j ≤ N
Terminasi N
P(O | λ ) = ∑ α T (i ), 1 ≤ i ≤ N
(2.29)
i =1
Ilustrasi algoritma forward dapat dilihat pada gambar berikut: S1
a1 j
a2 j
S2
Sj
. .
a Nj
. SN t
t +1
α t (i )
α t +1 ( j )
Gambar 2.14. Ilustrasi Alur Algoritma Forward Sumber: (Rabiner, 1989)
36
2. Algoritma Backward Variabel algoritma Backward: β t = P (O1 , O2 ,..., OT , qT = S i | λ ). Berikut ini langkah-langkah dalam algoritma Backward:
Inisialisasi
β T (i) = 1, 1 ≤ i ≤ N
(2.30)
N β t = ∑ α i , j ⋅b j (Ot +1 ) ⋅ β t +1 ( j ), i =1
(2.31)
Induksi
dengan t = T − 1, T − 2,...,1 dan 1 ≤ i, j ≤ N .
Ilustrasi untuk algoritma backward dapat dilihat pada gambar berikut:
ai1
ai 2
Si
S1
S2 .
aiN
. . SN
t
t +1
β t (i )
β t +1 ( j )
Gambar 2.15. Ilustrasi Alur Algoritma Backward Sumber: (Rabiner, 1989)
3. Algoritma Baum Welch Algoritms Baum Welch melibatkan algoritma forward dan algoritma backward.
37
Untuk menggambarkan prosedur update parameter HMM, diperlukan variabel ξ t (i, j ) yang merupakan peluang gabungan state i dan state j terhadap peluang pengamatan pada model yang diberikan, dan γ t (i ) state pada waktu dan merepresentasikan peluang berada di state i pada waktu t .
Secara
matematis
nilai
ξ t (i, j )
dan γ t (i )
dapat
diformulasikan dengan persamaan berikut:
ξ t (i, j ) = P(qt = S i , qt +1 = S j | O, λ ) =
α t (i )α i , j b j (Ot +1 ) β t +1 ( j ) P (O | λ )
(2.32)
Variabel state:
γ t (i ) = P(qt = S i | O, λ )
(2.33)
N
= ∑ ξ (i, j ) j =1
Dengan menggunakan persamaan (2.32) dan (2.33), maka
persamaan
untuk
mengupdate
parameter-parameter
( A, B, π ) pada HMM dapat dirumuskan sebagai berikut:
Probabilitas state transisi: T −1
a ij =
∑ ξ (i, j ) t =1 T −1
∑γ t =1
t
t
, 1 ≤ i ≤ N, 1 ≤ j ≤ M
(2.34)
(i )
Simbol probabilitas emisi T
b j (k ) =
∑ γ ( j)
t =1,OT =Vk T
∑γ t =1
t
( j)
, 1 ≤ i ≤ N, 1 ≤ j ≤ M
(2.35)
38
Probabilitas state awal
π i = γ t (1), 1 ≤ i ≤ N
(2.36)
Ilustrasi mengenai algoritma Baum-Welch dapat dilihat sebagai berikut:
Sj
Si aij b j (Ot +1 )
. . .
t −1
. . .
α t (i )
β t+1 ( j )
t
t +1
t +1
Gambar 2.16. Ilustrasi Perhitungan pada Algoritma Baum-Welch Sumber: (Rabiner, 1989)
2.6. Contoh Penyelesaian Rantai Markov pada Kasus Cuaca
Cuaca dalam tiga hari yang lalu dimodelkan dalam tiga state: cerah(1), berawan(2), dan hujan(3). Misalkan, kita asumsikan bahwa probabilitas cuaca esok hari berdasarkan cuaca hari ini dalam tabel berikut:
Tabel 2.2. Probabilitas cuaca hari ini berdasarkan cuaca esok hari Cuaca Esok Hari Cerah
Hujan
Berawan
Cuaca Hari
Cerah
0,8
0,05
0,15
Ini
Hujan
0,2
0,6
0,2
Berawan
0,2
0,3
0,5
Sumber: (Lussier, 1998)
39
Penyelesaian: Diketahui rantai Markov sebagai berikut: 0,6
hujan 0,2
0,2 0,05
cerah 0,8
0,3
berawan
0,2
0,5
0,5
Gambar 2.17. Rantai Markov pada kasus cuaca
Contoh 3: Jika hari ini cuaca cerah, berapakah probabilitas bahwa esok hari cuaca cerah dan lusa adalah hujan? Jika hari ini cuaca cerah, maka probabilitas bahwa esok hari cuaca cerah dan lusa adalah hujan, yaitu:
P(q2 = cerah, q3 = hujan | q1 = cerah) = P(q3 = hujan | q2 = cerah, q1 = cerah) * P(q2 = cerah | q1 = cerah) = P(q3 = hujan | q2 = cerah) * P(q2 = cerah | q1 = cerah) = (0.05)(0.8) = 0.04
Contoh 4: Jika hari ini cuaca berawan, berapakah probabilitas bahwa lusa akan hujan?
Jika hari ini cuaca berawan, maka probabilitas bahwa lusa akan hujan, yaitu:
40
P(q3 = hujan | q1 = berawan) = P(q2 = berawan, q3 = hujan | q1 = berawan) + P(q2 = hujan, q3 = hujan | q1 = berawan) + P(q2 = cerah, q3 = hujan | q1 = berawan) = P(q3 = hujan | q2 = berawan) P(q2 = berawan | q1 = berawan) + P(q3 = hujan | q2 = hujan) P(q2 = hujan | q1 = berawan) + P(q3 = hujan | q2 = cerah) P(q2 = cerah | q1 = berawan) = (0.3)(0.5) + (0.6)(0.3) + (0.05)(0.2) = 0.34
Dari penjelasan diatas, dapat disimpulkan bahwa Markov Chain bermanfaat untuk menghitung probabilitas urutan state yang dapat diamati. Masalahnya terkadang ada urutan state yang ingin diketahui tetapi tidak dapat diamati. Untuk menyelesaikan kasus tersebut, dikembangkan oleh model baru yang memodelkan kejadian yang tersembunyi, disebut Hidden Markov Model (HMM).
2.7. Contoh Penyelesaian Hidden Markov Model pada Kasus Cuaca
Anggaplah bahwa Anda sedang terkunci di sebuah ruangan untuk beberapa hari, dan Anda ditanya tentang cuaca diluar. Satu-satunya bukti yang Anda miliki adalah apakah orang yang datang ke ruangan sedang membawa makanan sehari-hari Anda membawa sebuah payung atau tidak. Probabilitas melihat ada sebuah payung berdasarkan cuaca tersebut dapat dilihat pada tabel berikut:
Tabel 2.3. Probabilitas melihat sebuah payung berdasarkan cuaca Probabilitas Payung Cerah
0.1
Hujan
0.8
Berawan
0.3
Sumber: (Lussier, 1998)
41
Contoh 5: Anggaplah hari dimana Anda terkunci adalah cuaca cerah. Hari berikutnya, penjaga rumah membawa sebuah payung ke ruangan. Asumsikan bahwa probabilitas utama dari penjaga rumah yang membawa sebuah payung pada hari itu adalah 0.5. Berapakah probabilitas bahwa hari kedua adalah hujan?
Anggaplah hari dimana Anda terkunci adalah cuaca cerah. Hari berikutnya, penjaga rumah membawa sebuah payung ke ruangan. Asumsikan bahwa probabilitas utama dari penjaga rumah yang membawa sebuah payung pada hari itu adalah 0.5
Maka, probabilitas bahwa hari kedua adalah hujan, yaitu:
(W2 dan O1 tidak bergantung) =
P(O2 = hujan, O1 = cerah | W2 = T ) P(O1 = cerah)
P(W2 = T | O1 = cerah, O2 = hujan) P(O2 = hujan, O1 = cerah) P(O1 = cerah) P(W = T ) P(W2 = T | O2 = hujan) P(O2 = hujan, O1 = cerah) ( Markov assumption) = P(O1 = cerah) P(W2 = T )
( Baye' sRule) =
(Cancel : P(cerah)) =
P(W2 = T | O2 = hujan) P(O2 = hujan | O1 = cerah) P(W2 = T )
(0.8)(0.05) 0.5 = .08 =
Contoh 6: Anggaplah hari dimana Anda terkunci di ruangan adalah cerah. Penjaga rumah membawa sebuah payung di hari kedua, tetapi tidak di hari ketiga. Asumsikan bahwa probabilitas utama dari penjaga rumah membawa sebuah payung adalah 0.5. Berapakah probabilitas bahwa hari tersebut berawan di hari ketiga?
Anggaplah hari dimana Anda terkunci di ruangan adalah cerah. Penjaga rumah membawa sebuah payung di hari kedua, tetapi tidak di hari ketiga.
42
Asumsikan bahwa probabilitas utama dari penjaga rumah membawa sebuah payung adalah 0.5
Maka, probabilitas bahwa hari tersebut berawan di hari ketiga, yaitu: P(O3 = F | O1 = S , W2 = T , W3 = F ) = P(O2 = berawan, O3 = berawan | O1 = cerah, W2 = True, W3 = False) = P(O2 = hujan, O3 = berawan | ...) + P(O2 = cerah, O3 = berawan | ...) =
P(W3 = F | O3 = F ) P(W2 = T | O2 = F ) P(O3 = F | O2 = F ) P(O2 = F | O1 = S | O1 = S ) + P(W3 = F ) P(W2 = T ) P(O1 = S ) P(W3 = F | O3 = F ) P(W2 = T | O2 = R) P(O3 = F | O2 = R) P(O2 = R | O1 = S | O1 = S ) P(W3 = F ) P(W2 = T ) P(O1 = S ) P(W3 = F | O3 = F ) P(W2 = T | O2 = S ) P(O3 = F | O2 = S ) P(O2 = S | O1 = S | O1 = S ) P(W3 = F ) P(W2 = T ) P(O1 = S )
=
P(W3 = F | O3 = F ) P(W2 = T | O2 = F ) P(O3 = F | O2 = F ) P(O2 = F | O1 = S ) + P(W3 = F ) P(W2 = T ) P(W3 = F | O3 = F ) P(W2 = T | O2 = R) P(O3 = F | O2 = R) P(O2 = R | O1 = S | O1 = S ) P(W3 = F ) P(W2 = T ) P(W3 = F | O3 = F ) P(W2 = T | O2 = S ) P(O3 = F | O2 = S ) P(O2 = S | O1 = S | O1 = S ) P(W3 = F ) P(W2 = T )
(0.7)(0.3)(0.5)(0.15) + (0.5)(0.5) (0.7)(0.8)(0.2)(0.05) + (0.5)(0.5) (0.7)(0.1)(0.15)(08) (0.5)(0.5) = 0.119 =
3.1. Microsoft Speech API
Speech Application Programming Interface adalah sebuah API yang dikembangkan oleh Microsoft yang digunakan sebagai pengenal suara di dalam lingkungan pemrograman aplikasi Windows. Sampai saat ini Speech APIdikemas baik berupa SDK (Sistem Development Kit) maupun disertakan dalam sistem operasi Windows itu sendiri.
43
Salah satu aplikasi yang telah menggunakan Speech Application Programming interface antara lain Microsoft Office. Secara arsitektur pemrograman SAPI dapat dilihat sebagai sebuah middleware yang terletak antara aplikasi dan speech engine.
Di dalam SAPI versi 1 sampai 5, aplikasi dapat berkomunikasi langsung dengan speech engine seperti tampak pada gambar berikut:
Gambar 2.18. Arsitektur Microsoft Speech Application Programming Interface
Komponen-komponen utama di dalam Microsoft Speech API adalah sebagai berikut: a. Voice Command, sebuah objek level tinggi untuk perintah dan kontrol menggunakan pengenalan suara.
b. Voice Dictation, sebuah obyek level tinggi continuous dictationspeech recognition.
c. Voice Talk, sebuah obyek untuk menulis aplikasi telepon berbasiskan pengenalan suara.
44
d. Direct Speech Recognition, sebuah obyek sebagai mesin untuk mengontrol pengenalan suara (direct control of recognition engine).
e. Direct Text to Speech, sebuah mesin yang mengontrol synthesis.
f. Audio Object, untuk membaca dari audio device atau sebuah file audio Option Explicit.