Teknologi Pengenalan dan Pensintesa Ucap

TEKNOLOGI PENGENALAN DAN PENSINTESA UCAPAN
BAHASA INDONESIA PADA SISTEM INFORMASI
BERBASIS MICROSOFT SPEECH API
Stephanus Priyowidodo
AMIK HARAPAN MEDAN
[email protected]

Abstrak
Seiring dengan cepatnya kemajuan teknologi perangkat komputer, membuka peluang baru bagi perkembangan
teknologi pengenalan ucapan ( speech recognition ) dan pensintesa ucapan ( speech synthesizer ). Perangkat
komputer yang ukurannya semakin kecil dan ringan kelak dapat membantu siapa saja dalam memperoleh
informasi dari berbagai sumber hanya dengan menggunakan ucapan. Sistem ucapan juga dapat disambungkan ke
serangkaian perangkat elektronik lain, seperti perangkat sensor, perangkat hiburan dan sistem penerangan. Selain
itu, teknologi pengenalan dan pensintesa ucapan dapat diaplikasikan pada robot humanoid sehingga robot dapat
berkomunikasi dengan manusia atau sesama robot melalui ucapan. Permasalahannya adalah kurangnya
penelitian pengenalan ucapan dan pensintesa ucapan bahasa Indonesia. Makalah ini membahas topik pengenalan
ucapan dan pensintesa ucapan bahasa Indonesia menggunakan engine Microsoft Speech Application
Programming Interface (SAPI).
Kata kunci : pengenalan ucapan, sintesa ucapan, speech recognition, speech synthesizer, SAPI

1.


Pendahuluan

Bagaimana menurut Anda apabila Anda dan
komputer bisa saling berkomunikasi melalui
ucapan? Memerintah komputer untuk melakukan
sesuatu yang Anda inginkan, seperti membacakan
laporan, menampilkan grafik, menghidupkan lampu,
memutar lagu kesukaan, membesarkan kecilkan
volume sampai membacakan berita. Tentu itu semua
akan menjadi pengalaman yang menyenangkan.
Pengenalan dan pensintesa ucapan saat ini
banyak diaplikasikan pada robot humanoid.
Beberapa robot humanoid yang dapat diperintah
melalui ucapan seperti ASIMO dan HRP dari Jepang,
Hubo dari Korea dan beberapa robot humanoid lain.
Robot-robot tersebut dapat melakukan tugas sesuai
perintah yang diucapkan dan menjawab sejumlah
pertanyaan dalam bentuk sintesa ucapan.
Pengenalan ucapan adalah proses konversi dari

sinyal yang diucapkan menjadi serangkaian kata
atau kalimat dengan algoritma yang telah
diimplementasi pada aplikasi komputer. Performansi
sistem pengenalan ucapan selalu dispesifikasikan
dalam bentuk kecepatan pengenalan dan akurasinya.
Beberapa aplikasi sangat sensitif terhadap tingkat
akurasi pengenalan ucapan misalnya alat dikte
otomatis. Akurasi pada umumnya berkisar antara
98% sampai 99%.
Saat ini pengenalan ucapan menggunakan
teknologi, metoda dan algoritma yang kompleks.
Salah satu metoda yang banyak digunakan pada

sistem pengenalan ucapan adalah Hidden Markov
Models (HMM) [3]. Pendekatan lain untuk
pengenalan ucapan adalah teknologi neural network
atau dalam bahasa Indonesia disebut Jaringan Syaraf
Tiruan (JST). Teknologi ini memiliki tingkat akurasi
pengenalan ucapan yang sangat tinggi dan dapat
mengenal ucapan berkualitas rendah, data yang

kabur (noise) dan pembicara yang berbeda-beda.
Pengenalan ucapan dengan teknologi JST banyak
digunakan untuk mengenal fonem. Meski memiliki
keakuratan yang tinggi, teknik ini harus dilatih terusmenerus.
Penelitian perihal pengenalan ucapan pada
komputer masih terus dilakukan. Beberapa engine
pengenal ucapan sudah diperkenalkan secara umum,
seperti Dragon Speech Recognition, CMU Sphinx,
engine Nuance Communications dan Microsoft
Speech API.
Pensintesa ucapan merupakan proses terbalik
dari pengenalan ucapan. Teks yang akan diucapkan
oleh komputer dikonversi menjadi suara fonem
dimulai dari karakter awal sampai karakter akhir.
Hasil akhirnya berupa sinyal suara digital yang
selanjutnya disuarakan lewat loudspeaker. Proses
pensintesa ucapan lebih sederhana bila dibandingkan
dengan proses pengenalan ucapan. Beberapa engine
pensintesa ucapan diantaranya DECtalk, MBROLA,
eSpeak dan Microsoft Speech API.

Makalah ini lebih diarahkan kepada teknologi
pengenalan dan sintesa ucapan menggunakan engine
Microsoft Speech Application Programming

Interface (SAPI) pada sistem operasi Microsoft
Windows.
2.

Microsoft Speech API (SAPI)

Secara umum SAPI dapat dianggap sebagai
antar-muka yang terdapat diantara aplikasi dan
speech engine (pengenalan dan pensintesa suara).
Pada SAPI versi 1 sampai 4 aplikasi dapat langsung
mengakses speech engine, sedangkan pada SAPI 5
komunikasi langsung antara aplikasi dan speech
engine diberi batasan. Aplikasi dan speech engine
berbicara lewat komponen run-time sapi.dll. Tabel I
berisi versi, tahun rilis dan jenis paket SAPI.


SAPI versi 1 dirilis untuk pertama sekali pada
tahun 1995 dan mendukung sistem operasi
Windowss 95 dan Windows NT 3.51. Pada versi ini
SAPI berisikan Direct Speech Recognition dan
Direct Text To Speech tingkat rendah di mana
aplikasi dapat langsung mengendalikan speech
engine. Versi 2 dirilis tahun 1996 dan versi 3 tahun
1997, saat itu SAPI memiliki kemampuan
pengenalan ucapan terus-menerus yang terbatas.
SAPI 4 dirilis pada tahun 1998. Pada versi ini
SAPI
telah
memiliki
komponen-komponen
diantaranya objek-objek tingkat tinggi untuk
memerintah dan mengendalikan pengenalan ucapan,
objek tingkat tinggi untuk diktasi secara terusmenerus, objek pensintesa suara, objek untuk
aplikasi speech via telepon dan objek-objek lainnya.
2.2 SAPI versi 5.x
SAPI 5 dirilis pada tahun 2000 dengan

perubahan konsep yakni aplikasi dan speech engine
didesain terpisah, komunikasi antara keduanya
dilakukan lewat run-time sapi.dll. Dengan demikian
speech engine-nya menjadi lebih independen. Pada
versi 5 SAPI telah mendukung continous dictation
dan command/control.
TABEL I
VERSI SAPI, TAHUN RILIS, PAKET

SAPI 1
SAPI 2
SAPI 3
SAPI 4
SAPI 5.0
SAPI 5.1
SAPI 5.2
SAPI 5.3
SAPI 5.4

TAHUN

RILIS
1995
1996
1997
1998
2000
2001
2004
2007
2010

Database
Suara-ke-fonem

Analisa
Frekuensi

2.1 SAPI versi 1 sampai versi 4

VERSI


pengguna yang diterima mikrofon dikonversi
menjadi sinyal digital. Suara digital ini umumnya disampling pada frekwensi 11 Khz dengan format 16
bit. Sinyal yang masih baku ini selanjutnya dianalisa
frekuensinya untuk diambil informasi fonem di
dalamnya. Engine pengenal ucapan memiliki
database suara-ke-fonem yang telah didefinisikan
sebelumnya.

PAKET
Windows 95
Windows 95
Windows 95
Windows 98
Speech SDK 5.0
Windows XP
Microsoft Speech Server
Windows Vista
Windows 7


Sistem pengenalan ucapan pada SAPI
memiliki prinsip kerja seperti gambar 1. Suara

Pengenal
fonem

Pembentuk
Teks

Prediksi
fonem

“Selamat pagi.
Apa kabar?”

Kamus
Kata

Prediksi
Kata


Gambar 1, Sistem Pengenalan Ucapan
Susunan fonem yang telah diperoleh dari
proses sebelumnya dicari kesamaannya pada
database kata. Setelah semua bagian fonem berhasil
diperoleh, engine akan mengeluarkan hasil konversi
fonem berupa teks. Namun demikian tidak semua
suara digital dapat dikenali dengan mudah. Kata
yang sama yang diucapkan oleh dua orang dapat
diartikan berbeda oleh engine. Hal ini bisa terjadi
disebabkan oleh perbedaan warna suara, noise dan
gangguan lain. Solusinya adalah melatih ulang
engine agar dapat mengenal berbagai perbedaan.
Sistem pensintesa ucapan lebih sering disebut
text-to-speech (TTS). Prinsip kerja umum sistem
pensintesa ucapan terlihat seperti gambar 2. Teks
yang akan diucapkan mulanya dianalisa untuk
dinormalisasi, singkatan dan istilah dinormalisasi
menjadi teks terbaca, misalnya singkatan “dr.” akan
diubah menjadi “dokter”, “computer” menjadi

“komputer”, “10” menjadi “sepuluh”.
“Selamat
pagi”

S ax l aa m aa t
p aa g iy

Analisa
Teks

Prosody

Pembangkit
fonem

Pengolahan
sinyal

Database
singkatan
dan istilah

Aturan
penekanan
huruf

Kamus
pengucapan

Database
fonem ke suara

Gambar 2, Sistem Teks ke Ucapan

Kalimat yang telah dinormalisasi selanjutnya
dikenakan proses prosody. Prosody adalah bagian
ilmu bahasa yang mempelajari tentang irama,
intonasi, stres dan atribut yang terkait, seperti marah,
takut, sedih, gembira, heran dan terkejut[1]. Hasil
akhirnya berupa teks yang telah dinormalisasi dan
telah diberi parameter prosody.
Selanjutnya proses mengubah teks menjadi
fonem berdasarkan kamus pengucapan. Daftar
fonem-fonem yang telah tersusun selanjutnya
diambil suara-suara digital-nya dari database
fonem-ke-suara dan selanjutnya diucapkan melalui
loudspeaker.
Sampai saat ini engine SAPI hanya mendukung
pengenalan ucapan dan pensintesa ucapan dalam
tiga bahasa yakni bahasa Inggris, Simplified Chinese
dan Jepang. Bahasa lainnya, termasuk bahasa
Indonesia, belum didukung oleh SAPI.
3.

Teknis Microsoft SAPI 5.x

3.a. Pengenalan Ucapan
SAPI versi 5.x mendukung dua jenis
pengenalan ucapan, dictation (dikte) dan command
and control (komando dan kendali) [4]. Sangat
penting untuk memahami perbedaan antara
keduanya.
- Dictation
Dictation mengacu pada jenis pengenalan ucapan
di mana komputer mendengarkan apa yang di
katakan dan mencoba untuk menerjemahkannya
ke dalam teks. SAPI melakukan hipotesa
terhadap semua kata yang didengar. Setiap
bagian kata yang dihipotesa dianggap ada
hubungannya dengan kata-kata yang diterima
sebelum dan sesudahnya. Hasil akhir hipotesa
akan mengembalikan keluaran berupa teks yang
dikenal dan mengembalikan hasilnya ke aplikasi.
Semua proses terjadi otomatis di dalam engine
SAPI.
-

Command and Control (CnC)
CnC digunakan untuk mengendalikan aplikasi
berdasarkan aturan tata bahasa (grammar) yang
telah ditentukan dan masing-masing aturan
memiliki respon yang telah diprogram. Dalam
mengembangkan aplikasi yang menggunakan
CnC, programmer harus mendefinisikan tata
bahasa, aturan dan respon aplikasi terhadap
aturan yang dikenal [2].

SAPI belum mendukung bahasa Indonesia,
karena itu teknik dictation tidak dapat diterapkan
untuk kata-kata berbahasa Indonesia. Namun untuk
CnC masih ada cara agar bahasa Indonesia dapat
dikenal oleh SAPI 5.x.
Memperkenalkan kata atau kalimat bahasa
Indonesia ke dalam engine SAPI 5.x membutuhkan
kecermatan dan ujicoba. Data fonem yang akan kita

gunakan sebagai dasar fonem dari kata yang akan
diperkenalkan adalah data fonem bahasa Inggris.
Fonem bahasa Inggris pada SAPI 5.x terdiri atas 42
fonem yakni : silence (tanda diam), ae, ax, ah, aa,
ao, ey, eh, uh, er, y, iy, ih, ix, w, uw, ow, aw, oy, ay,
h, r, l, s, z, sh, ch, jh, zh, th, dh, f, v, d, t, n, k, g, ng,
p, b, m. Sebagai contoh, kata “halo”, harus
diperkenalkan sebagai urutan fonem “h aa l ow”,
kata “bagus” urutan fonemnya “b aa g uw s s”.
Dari hasil penelitian dan ujicoba diperoleh
tabel fonem dan contoh kata seperti pada tabel II.
TABEL II
FONEM DAN KATA BAHASA INDONESIA
NO

FONEM

CONTOH KATA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

silence
ae
ax
ah
aa
ao
ey
eh
uh
er
y
iy
ih
ix
w
uw
ow
aw
oy
ay
h
r
l
s
z
sh
ch
jh
zh
th
dh
f
v
d
t
n
k
g
ng
p
b
m

(tidak ada)
aestika
senang
merah
baik, bagus,
kakao
hemat, medan
september
patuh
terakhir
yakin
kiri, miring
terimakasih
matriks, helix
waktu
ulang, baru
roster, monster
kacau, awas
amboi
ayam, balai
hampir, tujuh
rumah, harus, dengar
lima, selasa, hasil
satu, puasa, panas
zamrut
sholat
catur
jauh, jam
(lihat z)
semut
(lihat d)
final
variasi
desa, sedia
tanah, kiamat
nada, dimana, bukan
kecil, bekerja, batik
gerak, begitu
siang, mengantuk
pasti, tiap
besar, kabar
mesin, kemana, hikam

Berdasarkan tabel II, dapat di-create engine
baru yang secara otomatis mengubah kata atau
kalimat bahasa Indonesia menjadi urutan fonem
yang sesuai. Kata atau kalimat yang telah diubah
menjadi fonem selanjutnya diperkenalkan ke SAPI
5.x
melalui
objek
SpLexicon
method
AddPronunciation.
Objek
SpLexicon
dapat
mengakses langsung ke bagian SAPI 5.x yang berisi
kata atau kalimat yang dikenal.
3.b. Pensintesa Ucapan
Engine SAPI 5.x telah didesain sedemikian
rupa sehingga untuk mengucapkan kata atau kalimat
hanya dibutuhkan perintah satu baris yakni
SpVoice.Speak. Namun yang menjadi masalah
adalah SAPI tidak mendukung bahasa Indonesia
sehingga perintah SpVoice.Speak normal menjadi
tidak begitu berguna. Kalimat dalam bahasa
Indonesia akan diucapkan sesuai dengan cara baca
bahasa yang didukung oleh sistem operasi. Bila
sistem operasi mendukung bahasa Inggris maka
kalimat “apa kabar” akan diucapkan “aopekaber”.
Bagi pendengar, ucapan yang tidak sesuai dari yang
seharusnya akan sulit dimengerti. Ada beberapa
solusi yang dapat dilakukan untuk memperbaiki
kualitas ucapan bahasa Indonesia yang dihasilkan
oleh SAPI.
Solusi pertama adalah dengan mengubah
fonem yang akan diucapkan oleh SAPI menjadi
fonem yang seharusnya. SAPI 5.x menyediakan
fungsi pengucapan menggunakan simbol-simbol
fonem, sehingga kalimat “Apa kabar?” dapat diganti
dengan simbol fonem seperti “aa p aa k aa b aa r
?”. Contoh lainnya, kalimat “Konferensi Nasional
Sistem Informasi” secara normal akan diucapkan
oleh SAPI dengan urutan fonem “k aa n f er ax n s iy
n ae s iy ax n ae l s ih s t eh m ih n f ao r m aa s iy”,
ucapan tersebut sulit dimengerti. Berdasarkan tabel
II dapat di-create urutan fonem baru yang bila
didengar akan lebih mudah dimengerti yakni, “k ow
n f eh r eh n s iy n ah s iy ow n ah l s iy s t ax m iy n f
ow r m ah s iy”.
Solusi kedua adalah dengan menggunakan
engine selain Microsoft, misalnya eSpeak [7].
eSpeak menghasilkan ucapan kalimat yang lebih
baik dibandingkan ucapan asli SAPI.
eSpeak
merupakan speech engine tidak berbayar yang
banyak digunakan oleh aplikasi, diantaranya NVDA
dan Google Translate. Setelah meng-install eSpeak,
daftar suara pada SAPI properties Windows akan
bertambah dengan suara dari eSpeak. Tambahkan
kode negara Indonesia pada saat instalasi yakni ‘id’
agar eSpeak mendukung ucapan dalam bahasa
Indonesia.
Dengan
menggunakan
perintah
SAPI
SpVoice.Speak yang normal eSpeak
akan
menghasilkan ucapan kata atau kalimat dalam
bahasa Indonesia dengan kualitas lebih baik.

Solusi ketiga adalah dengan menambahkan
eSpeak dan MBROLA pada SAPI 5.x. Solusi ini
merupakan solusi terbaik. MBROLA adalah MultiBand Resynthesis OverLap-Add, proyek database
diphone berbagai bahasa dari Faculte Polytechnique
de Mons, TCTS Lab, Belgia [8]. Database diphone
MBROLA untuk bahasa Indonesia diberi nama
ID1[5].Solusi ini menggabungkan kemampuan SAPI
5.x, engine eSpeak dan database diphone MBROLA
ID1, menghasilkan ucapan kata atau kalimat dalam
bahasa Indonesia dengan sangat baik [9].
4.

Pengujian

4.a. Pengujian Pengenalan Ucapan
Pengujian terhadap sistem pengenalan ucapan
dilakukan terhadap 10 orang dengan mengucapkan
30 kalimat berbeda kepada komputer. Dari hasil
pengujian diambil jumlah kalimat yang dikenali dan
tidak dikenali oleh komputer. Hasil pengujian sistem
pengenalan ucapan menggunakan SAPI
dapat
dilihat pada tabel III.
TABEL III
PENGUJIAN SISTEM PENGENALAN UCAPAN

Orang
ke
1
2
3
4
5
6
7
8
9
10

Kalimat
yang tidak
dikenali
3
5
2
4
5
2
3
2
5
1

Kalimat
yang
dikenali
27
25
28
26
25
28
27
28
25
29

Prosentase
kalimat
dikenali
90.00%
83,33%
93,33%
86,66%
83,33%
93,33%
90.00%
93,33%
83,33%
96,66%

Dari hasil pengujian di atas diperoleh prosentase
rata-rata kalimat yang dikenali oleh komputer adalah
89.33%.
4.b. Pengujian Pensintesa Ucapan
Pengujian terhadap sistem pensintesa ucapan
dilakukan dengan memperdengarkan ucapan 20
kalimat yang dihasilkan oleh komputer kepada 5
orang yang berbeda. Ucapan kalimat yang
diperdengarkan dihasilkan oleh sistem pensintesa
ucapan yang berbeda yakni dengan sistem
pengucapan SAPI, SAPI dengan tambahan eSpeak
serta SAPI dengan tambahan eSpeak dan MBROLA.
Kemudian diambil jumlah ucapan kalimat yang
mudah dimengerti dari masing-masing sistem
pengucapan.
Hasil pengujian terhadap masing-masing
sistem pensintesa ucapan dapat dilihat pada tabel IV.

TABEL IV
PENGUJIAN SISTEM PENSINTESA UCAPAN

Orang
ke
1
2
3
4
5

SAPI

SAPI +
eSpeak

11
10
14
13
12
60.00%

13
11
10
15
15
64.00%

SAPI +
eSpeak +
MBROLA
18
20
19
20
20
97.00%

Dari hasil pengujian terhadap sistem pensintesa
ucapan di atas diperoleh bahwa pengucapan kalimat
dengan sistem SAPI yang ditambah dengan eSpeak
dan MBROLA lebih mudah dimengerti.
5.

2.

3.

4.

[1]

[2]

[3]

[4]
[5]

Kesimpulan

Dari
pembahasan
sebelumnya
perihal
pengenalan ucapan dan pensintesa ucapan dapat
disimpulkan :
1.

Daftar Pustaka:

Pengenalan ucapan SAPI dikte (dictation) tidak
dapat dipergunakan pada bahasa Indonesia
karena dukungan SAPI terbatas hanya pada
bahasa Inggris, Cina dan Jepang.
Pengenalan ucapan SAPI CnC dapat
dipergunakan agar komputer dapat mengenali
kata atau kalimat dalam bahasa Indonesia
dengan persyaratan konversi kata atau kalimat
menjadi fonem SAPI dilakukan dengan tepat.
Pensintesa ucapan SAPI untuk bahasa
Indonesia harus dilakukan dengan cara
mengkonversi kalimat yang akan diucapkan
menjadi urutan fonem-fonem yang didukung
oleh SAPI.
Penambahan engine eSpeak dan database
diphone MBROLA akan meningkatkan secara
drastis kualitas ucapan yang akan dihasilkan
oleh SAPI.

[6]

[7]
[8]
[9]

Breazeal, Cynthia, 2002, Emotive Qualities in
Lip-Synchronized Robot Speech, MIT Media
Lab.
Dunn, Michael, 2007, Pro Microsoft Speech
Server 2007 – Developing Speech Enabled
Applications with .NET, Apress.
Holmes, John, and Holmes, Wendi, 2001,
Speech Synthesis and Recognition, Taylor &
Francis.
Microsoft, 2001, Microsoft Speech SDK SAPI
5.1, Microsoft Corp.
Priyowidodo, Stephanus, and Irwan, Dedi,
2010, Speech Synthesizer Bahasa Indonesia
Berbasis Diphone MBROLA, Proceeding
SNIKOM 2010 Universitas Sumatera Utara.
Rozak, Mike, 1996, Talk to Your Computer
and Have It Answer Back with the Microsoft
Speech API, Microsoft Systems Journal.
http://espeak.sourceforge.net/
http://tcts.fpms.ac.be/synthesis/mbrola.html
http://stefano-albiruni.blogspot.com/2009/02/
speech-synthesizer-berbahasa-indonesia.html