Kamis, 03 Oktober 2013

Aplikasi Pembaca PDF Berbasis Teks To Speech Menggunakan Metode Diphone Concatenation




Pendahuluan
1. Latar Belakang
Sistem konversi text-to-speech (TTS) merupakan suatu sistem yang mampu memproduksi sinyal ucapan secara otomatis melalui transkripsi grafem-ke-fonem untuk kalimat yang diucap kan atau lebih mudahnya system yang dapat merubah teks menjadi suara. Perbedaan sistem TTS dengan talking machine biasa adalah keotomatisannya dalam mengucapkan kata-kata baru. Luasnya aplikasi yang ditawarkan oleh sistem TTS ini, dan berkembangnya beberapa perangkat/platform, seperti Handphone dan PDA, telah mendorong diimplementasikannya sistem TTS pada berbagai platform untuk berbagai keperluan. Dukungan hardware dan software yang memadai memungkinkan sistem TTS untuk diimplementasikan pada perangkat tersebut. Oleh karena itu TTS memungkinkan untuk diimplementasikan pada bidang aplikasi yang beragam seperti aplikasi sms bicara, buku digital, pembaca email otomatis bahkan dapat membaca teks dalam format pdf.

BAB II Pembahasan
2.1 PDF
2.1.1 Definisi PDF
PDF (Portable Document Format) adalah sebuah format berkas yang dibuat oleh Adobe System pada tahun 1993 untuk keperluan pertukaran dokumen digital. Format PDF digunakan untuk merepresentasikan dokumen dua dimensi yang meliputi teks, huruf, citra dan grafik vektor dua dimensi. Pada Acrobat 3-D, kemampuan PDF juga meliputi pembacaan dokumen tiga dimensi. PDF telah menjadi standar ISO pada tanggal 1 Juli 2008 dengan kode ISO 32000-1:2008.

2.1.2 Sejarah PDF
Ketika pertama kali diperkenalkan pada tahun 1993, tingkat penggunaan dokumen berformat PDF relatif rendah. Pada saat itu perangkat lunak untuk membuat dokumen PDF (Adobe Acrobat) dan perangkat lunak untuk membacanya (Acrobat Reader, sekarang Adobe Reader) tersedia secara komersial, tidak didistribusikan gratis.
Versi-versi awal PDF tidak mendukung fasilitas pranala luar, yang membuatnya kurang terintegrasi dengan World Wide Web, dan penambahan besar ukuran berkas PDF pada paket data yang dikirimkan membuatnya lambat untuk diunduh (download) dengan tingkat kecepatan modem pada saat itu. Penyebab lain kekurangpopuleran PDF pada masa itu disebabkan karena format berkas PDF harus bersaing dalam tingkat penggunaannya dengan format lain seperti Envoy, Common Ground Digital Paper, dan PostScript (.ps). PostScript adalah format yang juga diciptakan oleh Adobe dan sebagian fungsinya diimplementasikan pada PDF. Laju peningkatan penggunaan dokumen PDF meningkat dengan pesat setelah Adobe mulai mendistribusikan perangkat lunak Acrobat Reader secara gratis. Mereka juga membebaskan siapapun untuk menciptakan aplikasi pembuat maupun pembaca dokumen PDF tanpa perlu membayar royalti kepada Adobe System selaku pemegang hak paten PDF.
Format dokumen PDF mengkombinasikan tiga teknologi :
• Sub-set dari pemrograman deskripsi halaman PostScript untuk menghasilkan tampilan dan grafik
• Sistem penempatan/pemindahan huruf untuk mengijinkan perpindahan huruf di dalam dokumen
• Sistem penyimpanan terstruktur untuk menempatkan dan mengkompresi elemen-elemen dokumen ke dalam satu berkas.

2.1.3 Sifat –Sifat PDF
1. Antarmuka PDF
Antarmuka dokumen PDF pada umumnya tersusun atas kombinasi teks, grafik vektor, dan grafik raster. Grafik vektor digunakan untuk menampilkan ilustrasi yang terbentuk dari garis dan kurva, sedangkan grafik raster digunakan untuk menampilkan foto dan citra. Pada perbaikan format selanjutnya, dokumen PDF juga mampu mendukung hyperlink, forms, javascript, dan berbagai kemampuan lain yang dapat didukung dengan melakukan penambahan plugin. Dokumen PDF versi 1.6 telah memiliki kemampuan untuk menampilkan grafik tiga dimensi interaktif.
2. Aksesibilitas
Berkas PDF dapat dibuat secara spesifik agar dapat diakses oleh orang-orang dengan cacat/keterbatasan fisik. Format berkas PDF dapat dilengkapi dengan label ( tag ) XML, teks ekuivalen, perbesaran visual teks ( magnifier ), penambahan fasilitas audio/suara, dan sebagainya. Beberapa perangkat lunak kreator PDF seperti Adobe InDesign dapat secara otomatis membuat berkas PDF berlabel.
3. Keamanan dan Pembatasan Penggunaan
Berkas PDF dapat disandikan sehingga untuk dapat membuka atau mengeditnya diperlukan katakunci tertentu. Penyandian berkas PDF dilakukan dalam dua tingkat, yakni 40-bit dan 128-bit dengan menggunakan sistem sandi kompleks RC4 dan MD5. Berkas PDF juga dapat diberi pembatasan DRM untuk membatasi aktivitas penggandaan, penyuntingan, maupun pencetakan berkas tersebut.

2.2 Definisi Text to Speech
Pada prinsipnya, sistem TTS (Text to Speech) adalah suatu sistem yang dapat melakukan konversi dari teks menjadi ucapan.. Untuk mempertegas definisi TTS dalam disertasi ini, berikut ini akan ditinjau beberapa definisi TTS dari beberapa literatur.
Speech FAQ, suatu situs Internet yang merangkum pendapat dari berbagai universitas, lembaga penelitian dan industri di bidang aplikasi ucapan, menyatakan bahwa “Speech synthesis programs convert written input to spoken output by automatically generating synthetic speech. Speech synthesis is often referred to a Text-to-Speech conversion (TTS)”.
Berdasarkan ketiga sumber tersebut, suatu sistem TTS dapat didefinisikan sebagai “Sistem yang dapat mengubah suatu teks menjadi ucapan secara otomatis dengan cara fonetisasi (penyusunan fonem-fonem untuk membentuk ucapan)”. Sebuah sistem TTS dapat mengucapkan kata apapun, dan kosa katanya tidak terbatas. Berdasarkan definisi tersebut, maka suatu sistem IVR tidak dapat dikategorikan sebagai sistem TTS, karena hanya dapat mengucapkan kata-kata atau kalimat dengan jumlah atau kombinasi yang sangat terbatas, tidak dapat mengucapkan semua kata atau kalimat. Selain itu, IVR tidak melakukan fonetisasi.
Fonem murupakan unit ucapan pada database. Penggunaan fonem memberikan fleksibilitas yang tinggi dengan sistem rule-based. Tetapi, beberapa fonem yang tidak memiliki target posisi yang tetap, seperti plosives, akan sulit untuk disintesis. Artikulasi juga harus dirumuskan sebagai aturan
Durasi, merupakan lama waktu pengucapan untuk setiap fonem, sedangkan pitch merupakan perubahan nilai frekuensidasar pada pengucapan fonem untuk menghasilkan intonasi yang diinginkan.
Pada gambar 1 menggambarkan diagram fungsional text to speech (TTS) secara umum. Proses pada gambar diatas terdiri dari 2 proses yaitu :
1) Bagian Konverter Teks ke Fonem (Text to Phoneme).
2) Bagian Konverter Fonem to Ucapan (Phoneme to Speech).

2.3 Konverter Teks ke Fonem (Text to Phoneme).
Bagian Konverter Teks ke Fonem berfungsi untuk mengubah kalimat masukan dalam suatu bahasa tertentu yang berbentuk teks menjadi rangkaian kode-kode bunyi yang biasanya direpresentasikan dengan kode fonem, durasi serta pitch-nya. Bagian ini bersifat sangat language dependant. Untuk suatu bahasa baru, bagian ini harus dikembangkan secara lengkap khusus untuk bahasa tersebut.
Konversi dari teks ke fonem sangat dipengaruhi oleh aturan-aturan yang berlaku dalam suatu bahasa. Pada prinsipnya proses ini melakukan konversi dari simbol-simbol tekstual menjadi simbol-simbol fonetik yang merepresentasikan unit bunyi terkecil dalam suatu bahasa. Setiap bahasa memiliki aturan cara pembacaan dan cara pengucapan teks yang sangat spesifik. Hal ini menyebabkan implementasi unit konverter teks ke fonem menjadi sangat spesifik terhadap suatu bahasa.
Pada proses konversi teks ke fonem terdiridari beberapa tahap, yaitu normalisasi teks,, konversi setiap fonem menjadi kode fonem, dan penetapan durasi dan pitch untuk setiap fonem. Normalisasi teks merupakan suatu proses yang merepresentasikan teks tertulis menjadi teks yang sesuai dengan pengucapan oleh manusia. Setiap teks hasil normalisasi dikonversi ke fonem, dan tidak semua huruf sama dengan kode fonemnya. Sebagai contoh konversi teks ke fonem dapat dilihat pada table dibawah ini.

Fonem Kode Fonem Contoh Teks converter teks ke fonem
A V Acara /V/,/c/,/V/,/r/,/V/
I I Inspirasi /I/,/n/,/s/,/p/,/I/,/r/,/V/,/s/,/V/
U U Gugur /g/,/U/,/g/,/U/,/r/
E E Bebek /b/,/E/,/b/,/e/,/k/
Ē @ Dēlapan /d/,/@/,/l/,/V/,/p/,/V/,/n/
NG N Datang /d/,/V/,/t/,/V/,/N/
NY nY Bunyi /b/,/U/,/nY/,/I/
C tS Cacat /tS/,/V/,/tS/,/V/,/t/
Q K Qiyash /K/,/I/,/y/,/V/,/s/,/h/
Y J Yummy /J/,/U/,/m/,/m/,/y/
J dZ Jalan /dZ/,/V/,/l/,/V/,/n/
V f Valas /f/,/V/,/l/,/V/,/s/
[spasi] - Aku makan nasi /V/,/k/,/U/,/ /,/m/,/V/,/k/,/V/,/n/,/ /,/n/,/V/,/s/,/I/

2.4 Konverter Fonem to Ucapan (Phoneme to Speech).
Pada bagian Konverter Teks ke Fonem berfungsi untuk mengubah kalimat masukan dalam suatu bahasa tertentu yang berbentuk teks menjadi rangkaian kode-kode bunyi yang biasanya direpresentasikan dengan kode fonem, durasi serta pitch-nya. Bagian ini bersifat sangat language dependant. Untuk suatu bahasa baru, bagian ini harus dikembangkan secara lengkap khusus untuk bahasa tersebut.
Bagian Konverter Fonem ke Ucapan akan menerima masukan berupa kode-kode fonem serta pitch dan durasi yang dihasilkan oleh bagian sebelumnya. Berdasarkan kode-kode tersebut, bagian Konverter Fonem ke Ucapan akan menghasilkan bunyi atau sinyal ucapan yang sesuai dengan kalimat yang ingin diucapkan. Ada beberapa alternatif teknik yang dapat digunakan untuk implementasi bagian ini. Dua teknik yang banyak digunakan adalah formant synthesizer, serta diphone concatenation.
Untuk mendapatkan ucapan yang lebih alami, ucapan yang dihasilkan harus memiliki intonasi (prosody). Secara kuantisasi, prosodi adalah perubahan nilai pitch (frekuensi dasar) selama pengucapan kalimat dilakukan atau pitch sebagai fungsi waktu. Pada prakteknya, informasi pembentuk prosodi berupa data-data pitch serta durasi pengucapannya untuk setiap fonem yang dibangkitkan. Nilai-nilai yang dihasilkan diperoleh dari suatu model prosodi. Prosodi bersifat sangat spesifik untuk setiap bahasa, sehingga model yang diperlukan untuk membangkitkan data-data prosodi menjadi sangat spesifik juga untuk suatu bahasa. Beberapa model umum prosodi pernah dikembangkan, tetapi untuk digunakan pada suatu bahasa masih perlu banyak penyesuaian yang harus dilakukan.
Konverter fonem ke ucapan berfungsi untuk membangkitkan sinyal ucapan berdasarkan kode-kode fonem yang dihasilkan dari proses sebelumnya. Sub sistem ini harus memiliki pustaka setiap unit ucapan dari suatu bahasa. Pada sistem yang menggunakan teknik diphone concatenation, sistem harus didukung oleh suatu diphone database yang berisi rekaman segmen-segmen ucapan yang berupa diphone. Ucapan dalam suatu bahasa dibentuk dari satu set bunyi yang mungkin berbeda untuk setiap bahasa, oleh karena itu setiap bahasa harus dilengkapi dengan diphone database yang berbeda.

2.5 Teks To Speech Menggunakan Metode ‘Diphone Concatenation’
Diphone merupakan unit ucapan yang paling sering digunakan sebagai unit database. Diphone diberikan untuk memperluas titik tengah pada kondisi tetap suatu bagian bunyi dengan titik tengah bunyi yang mengikutinya. Ini dimaksudkan agar pada perangkaian selalu diupayakan untuk berada pada kondisi yang tetap (steady state), yang mengurangi distorsi pada titik perangkaian. Keuntungan lainnya, diphone tidak terlalu banyak membutuhkan formulasi pengaruh co-artikulasi sebagai suatu aturan. Secara prinsip, jumlah diphone adalah kuadrat dari jumlah fonem beserta alofon-nya, tetapi tidak semua kombinasi fonem dibutuhkan.
Teknik diphone concatenation bekerja dengan cara menggabung-gabungkan segmen-segmen bunyi yang telah direkam sebelumnya. Setiap segmen berupa diphone (gabungan dua buah fonem). Synthesizer jenis ini dapat menghasilkan bunyi ucapan dengan tingkat kealamian (naturalness) yang tinggi.
Struktur sistem seperti di atas pada prinsipnya merupakan konfigurasi tipikal yang digunakan pada berbagai sistem Text to Speech berbagai bahasa. Namun demikian, pada setiap sub-sistem terdapat sifat-sifat serta proses-proses yang sangat spesifik dan sangat tergantung dari bahasanya.
Sebagai contoh, saat pembentukan kata atau ucapan “berlari” yang disusun dari diphone-diphone /_b/,/be/,/er/,/rl/,/la/,/ar/,/ri/,/r_/.
Supaya pensitesa ucapan dapat mengucapkan semua kemungkinan kata atau kalimat yang ada dalam suatu bahasa, sehingga sistem tersebut harus didukung oleh diphone database yang terdiri dari semua kombinasi diphone yang ada dalam bahasa tersebut.
Diphone concatenation engine atau unit pemroses diphone akan menerima masukan berupa daftar fonem yang ingin diucapkan, masing-masing disertai oleh durasi pengucapannya, serta pitch atau frekuensinya. Berdasarkan daftar fonem yang diterima, unit ini akan menentukan susunan diphone yang sesuai. Selanjutnya, unit ini akan melakukan smoothing sambungan antar diphone, melakukan manipulasi durasi pengucapan serta manipulasi pitch.
Sejumlah teknik untuk pemrosesan diphone telah dikembangkan oleh berbagai pihak, diantaranya adalah autoregressive (AR), Glottal AR, hybrid harmonic/stocastic, time domain PSOLA (TD-PSOLA), multiband resynthesis-PSOLA (MBR-PSOLA), serta Linear Prediction-PSOLA (LP-PSOLA) [Dut97].
Untuk mendapatkan ucapan yang lebih alami, ucapan yang dihasilkan harus memiliki intonasi (prosody). Secara kuantisasi, prosodi adalah perubahan nilai pitch (frekuensi dasar) selama pengucapan kalimat dilakukan atau pitch sebagai fungsi waktu. Pada prakteknya, informasi pembentuk prosodi berupa data-data pitch serta durasi pengucapannya untuk setiap fonem yang dibangkitkan. Nilai-nilai yang dihasilkan diperoleh dari suatu model prosodi. Prosodi bersifat sangat spesifik untuk setiap bahasa, sehingga model yang diperlukan untuk membangkitkan data-data prosodi menjadi sangat spesifik juga untuk suatu bahasa. Beberapa model umum prosodi pernah dikembangkan, tetapi untuk digunakan pada suatu bahasa masih perlu banyak penyesuaian yang harus dilakukan.

2.6 Alur Aplikasi Pembaca PDF
Alur aplikasi pembaca PDF menggunakan metode diphone concatenation adalah sebagai berikut :
1. Insert Format PDF ke program
2. Program mengeksekusi format PDF dan merubahnya ke format TXT (untuk mengeksekusi format tulisan) dengan menggunakan PDFBox. PDBox yaitu suatu librari di Java yang berguna buat mengkonersi file PDF menjadi sebuat file teks.
Txt adalah format file yang terdiri dari teks biasanya berisi format sangat sedikit (ex: tidak ada huruf tebal atau miring). Definisi yang tepat dari format txt tidak ditentukan, tapi biasanya sesuai dengan format yang diterima oleh sistem terminal atau editor teks sederhana. File dengan ekstensi txt mudah dibaca atau dibuka oleh program yang membaca teks dan dianggap universal (atau platform independen).
Proses perubahan pdf ke txt pada pdfBox
• Pada PDFBox saat proses ekstraksi file pdf ke file txt pertama kali yaitu menjalankan class PDFStreamEngine, pada class ini akan menganalisa format PDF dan mengambilnya untuk diproses, sehingga pada kelas ini dokumen yang bukan berbentuk PDF akan diabaikan dan tidak dieksekusi.
• Setelah pengambilan file PDF maka PDFBox akan mendeteksi awal dan akhir halaman pada format PDF yang akan diekstraksi ke file TXT, pada pendeteksian halaman awal dan akhir format PDF terdapat 2 pilihan yaitu yang pertama menentukan sendiri halamn awal dan akhir, yang kedua secara default akan akan dibaca oleh PDFBox untuk diekstraksi.
Contoh : pada file PDF terdapat 5 halaman, jika secara default maka ekstraksi akan berawal dari halaman pertama dan berakhirpada halaman ke 5, tetapi jika halaman awal dan akhir ditentukan, contoh halan 4 dan 5 maka halaman awal adalah 4 dan halaman akhir adalah halaman 5.
• Mengenali pemisahan kata perkata pada format PDF (Spasi kata perkata)
Contoh :
SAYA BERLARI PAGI ----------------> SAYA/ /BERLARI/ / PAGI
• Mengelompokkan kata-kata dalam format PDF berdasarkan kolom, pada pengelompokan ini, pemrosesan dilakukan dari kelompok 1 dan dilanjutkan ke kelompok 2, begitu seterusnya hingga halaman akhir.
• Teks yang telah dikenali pemisahan katanya dan dikelompokkan berdasarkan kolomnya (teks token) akan diurutkan terlebih dahulu pada stream yaitu sebuah method yang menampung teks yang telah diproses (teks token) sebelum dicetak atau ditulis pada format txt.
• Teks token pada stream akan diseragamkan secara default menjadi tulisan tipis semua
Contoh :
SAYA BERLARI PAGI ------------> SAYA BERLARI PAGI
• Setelah teks token diseragamkan, maka akan diduplikasi dan disimpan dalam format txt.

3. Format TXT diproses dengan metode diphone concatenation terdiri dari 2 tahap yaitu text to fonem dan fonem to speech menggunakan MBOLA engine.

4. Mengeluarkan output dalam bentuk suara

Tidak ada komentar:

Posting Komentar