You are on page 1of 6

Nama : Luluk Farkhiah (08650089)

Qurin Ainun (08650112)

TEXT TO SPEECH- EBOOK PADA PC

1.1 Latar belakang

E-book adalah singkatan dari Electronic Book atau buku elektronik. E-book tidak lain
adalah sebuah bentuk buku yang dapat dibuka secara elektronis melalui komputer.
Karena format eBook dapat diproses oleh komputer, maka isi dari eBook dapat
“dibacakan” oleh sebuah komputer dengan menggunakan text to speech synthesizer.
Tentunya riset masih dibutuhkan untuk membuat teknologi pembacaan yang bagus.
Selain untuk orang buta, pembacaan ini juga dapat digunakan oleh orang yang buta huruf
dan bagi orang yang sulit membaca dengan huruf kecil.

Suatu perangkat lunak text-to-speech menghasilkan file suara output berisi percakapan,
misalnya dalam bahasa Indonesia, berdasarkan teks yang diinputkan. Secara garis besar,
keseluruhan proses yang dilaksanakan oleh perangkat lunak ini untuk menghasilkan
percakapan yang diinginkan dapat dibagi menjadi 3 subproses:

1. Sub-proses "text normalization" yang melakukan normalisasi terhadap input teks


untuk menghasilkan bentuk yang akan diucapkan serta memilah-milah teks input
menjadi kalimat, kata, dan suku kata;
2. Sub-proses "prosody" generation yang berfungsi untuk menambahkan atribut
pengucapan intonasi dan volume suara kepada setiap suku kata dalam suatu kalimat;
dan karena perangkat lunak ini menggunakan metode phoneme synthesis,
3. Sub-proses terakhir adalah "speech generation" yang bertugas merangkai berbagai
file suara, yang berupa suku kata yang telah disimpan di basis data dan direkam
sebelumnya, untuk membuat hasil akhir dari seluruh proses yaitu file suara output
yang berisi percakapan yang diinginkan.
Lebih lanjut, terdapat 4 (empat) perangkat lunak lainnya yang menunjang perangkat
lunak text-to-speech ini, yang memiliki fungsi utama untuk menyediakan berbagai data
penunjang yang diperlukan oleh aplikasi utama untuk dapat bekerja dengan baik, yaitu
a. daftar fonem,
b. difon,
c. dan trifon
d. serta suku kata umum yang digunakan atau dikenal dalam bahasa Indonesia, file- file
suara suku kata, daftar kata yang unik yaitu yang tidak dipenggal suku katanya dengan
aturan umum, yang disebut sebagai exceptional dictionary, daftar singkatan dan
akronim yang dikenal di dalam bahasa Indonesia, dan daftar kata yang mengandung
diftong yang dikenal di dalam bahasa Indonesia.

Tingkat keberhasilan perangkat lunak utama untuk menghasilkan percakapan yang


diharapkan yang sesuai dengan berbagai aturan yang ada di dalam bahasa Indonesia
bergantung kepada kompleksitas sub-proses "text normalization" dan "prosody
generation" serta ketersediaan berbagai data penunjangnya. Sedangkan kualitas suara
yang dihasilkan bergantung kepada kualitas suara yang telah direkam sebelumnya dan
kemampuan perangkat lunak penunjang untuk melakukan normalisasi terhadap volume
dan frekuensi suara rekaman tersebut.

1.2 Mengkonversi teks ke ucapan dengan Java


Pada tugas kali ini kita akan membuat bagaimana mengkonvert input text ke speech
menggunakan Java yang dapat dikerjakan dengan 2 cara, yaitu:
a. JSAPI 1.0
JSAPI 1.0 dikembangkan oleh Sun Microsystems. JSAPI terdiri dari 2 teknologi.
Speech Synthesis dan Speech Recognition.
Speech Synthesis adalah sebuah speech engine yang dapat mengkonversi teks ke
suara.
Speech Recognition digunakan untuk mengkonversi dari ucapan ke teks.

b. FreeTTS
FreeTTS adalah sebuah paket open source. Seluruhnya ditulis menggunakan bahasa
pemrograman Java. Paket ini juga bisa digunakan untuk mengkonversi dari teks ke
ucapan.
1.2.1 Kebutuhan untuk mengkonversi teks ke ucapan
Speech synthesis dari teks pada word processor adalah sebuah bantuan untuk
mengoreksi tulisan. Hal itu dapat mempermudah untuk mendeteksi masalah tata
bahasa dan gaya bahasa. Pada TTS, jika kita menyimpan file dalam format audio,
ukurannya akan menjadi lebih besar dari pada file teks. Mungkin lebih berguna pada
ponsel dimana kita dapat mendengar pesan yang kita terima daripada membacanya.

1.2.2 Metode untuk mengkonversi teks ke ucapan


 Structure analysis: proses analisis struktur input teks untuk memilah-milah
paragraf, kalimat, dan struktur lainnya dari awal sampai akhir.
 Text pre-processing: memperluas singkatan atau bentuk dari tulisan singkat
lainnya.
Contoh: Bpk. Mahyadi Panggabean menjadi Bapak Mahyadi Panggbean.
 Text- to-phoneme conversion: mengkonversi setiap kata ke fonem yang mengacu
pada sebuah unit dasar dari suara pada bahasa.
 Prosody analysis: memproses susunan kalimat, kata dan fonem untuk ditentukan
dengan tepat intonasinya pada kalimat.
 Waveform production: Akhirnya, informasi dari phonemes dan prosody
digunakan untuk memproduksi audio waveform untuk setiap kalimat.

1.2.3 Syarat-syarat untuk TTS


Jar berikut ini sangat dibutukan
 Cmu_us.kal.jar
 Cmulex.jar
 En_us.jar
 Freetts.jar
 Jsapi.jar
File-file diatas tersedia di FreeTTS-1.2.1-bin. Download freetts-1.2.1-bin.zip dari
http://sourceforge.net/projects/freetts/files/
Unzip paket freeTTS binary dan cek didalam direktori lib, yang mana semua jar diatas
tersedia kecuali jsapi.jar. File Jsapi.exe akan disediakan.
Run jsapi.exe, dan kamu akan mendapatkan jsapi.jar
Copi semua file jar yang disebutkan diatas ke folder yang digunakan atau
C:\Program Files\java\jdk.1.6.0_03\jre\lib\ext
Important classes pada javax.speech package:
import javax.speech.*;
import javax.speech.synthesis.*;

1.3 Engine
Engine Interface disediakan didalam paket speech. Engine Interface adalah induk
interface untuk semua speech engines termasuk Recognizer dan Synthesizer. “Speech
engine” adalah istilah umum untuk sebuah system yang didesain untuk berhubungan
dengan antara speech input dan speech output.
Paketnya adalah import javax.speech.Engine;
Proses dasar menggunakan speech engine pada sebuah aplikasi adalah sebagai berikut.
 Identifikasi kebutuhan fungsional aplikasi untuk engine (contoh: bahasa atau
kemampuan pendiktean)
 Menempatkan dan membuat engine sehingga bertemu dengan kebutuhan fungsional
 Alokasikan sumber untuk engine.
 Set up engine.
 Mulai pengoperasian untuk mengalokasikan engine dan memulainya lagi.
 Gunakan engine. Mengalokasikan kembali sumber dari engine.

1.4 Central
Central class adalah awal access point untuk semua kemampuan speech input dan output.
Central menyediakan kemampuan untuk menempatkan, memilih dan membuat speech
recognizer dan speech synthesizers.

1.5 SysthesizerModeDesc
1.6 SysthesizerModeDesc termasuk EngineModeDesc dengan properti yang spesifik untuk
speech synthesizers. SysthesizerModeDesc menambahkan 2 properti: daftar dari suara
disediakan oleh synthesizer voice akan dimuat ketika synthesizer dimulai.
1.6.1 Synthesis
Systhesizer interface menyediakan akses utama untuk kemampuan speech synthesis.
1.6.2 Suara (Voice)
Sebuah deskripsi salah satu output suara dari speech synthesizer adalah sebagai
pengikut.
Objek suara dapat digunakan pada pemilihan synthesis engines (termasuk
SynthesizerModeDesc). Suara yang sedang berbicara dari Synthesizer dapat dirubah
selama pengoperasian dengan metode setVoice dari objek SynthesizerProperties.
Membuat sebuah program sederhana menggunakan jsapi speech synthesis.

import javax.speech.*;
import javax.speech.synthesis.*;

Langkah 1 : pertama kita mengimport paket diatas


Langkah 2 : Buatlah sebuah Synthesizer
Synthesizer syn = Central.createSynthesizer(null);

Metode ini membuat sebuat default Synthesizer. Synthesizer mendapatkan locale


default.
SynthesizerModeDesc desc = new SynthesizerDesc();
desc.setLocale(new Locale(“de”, ””));
desc.addVoice(new Voice(null, GENDER_FEMALE, AGE_DONT_CARE, null));
Synthesizer synthesizer = Central.createSynthesizer(desc);

Kode diatas adalah untuk memilih locale khusus dan suara khusus

Langkah 3: kode berikut ini untuk mengalokasikan dan memulai kembali synthesizer.
synthesizer.allocate();
synthesizer.resume();

Langkah 4:

Voice[] voices = desc.getVoices();

Ambil suara yang tersedia:


Method getVoices() mengembalikan semua suara yang tersedia dari Synthesizer yang
tersedia
synthesizer.getSynthesizerProperties().setVoice(voice);

Langkah 5: method setVoice() mengeset sebuah nilai khusus


Langkah 6: teks berbicara
synthesizer.speakPlainText(speaktext, null);
synthesizer.waitEngineState(Synthesizer.QUEUE_EMPTY);

Method speakPlainText(speaktext, null) berbicara teks yang diberikan sampai selesai.


Langkah 7:
Deallocate the Synthesizer.
synthesizer.deallocate();

You might also like