Tutorial Speech Syntesizer menggunakan JavaScript dan HTML DOM
Assalamuálaikum
Apa itu Speech Syntesizer?
Speech syntesizer adalah fitur windows untuk memutar suara dari tulisan/teks tanpa terdapat file audio dari teks tersebut. Audio/Suara dari teks dihasilkan saat speech synthesizer diaktifkan/
Bagaimana cara kerjanya?
Pertama tentu harus ada teks yang akan dibaca. Dan yang kedua harus ada sambungan internet. Dengan Javascript, teks akan di-split menjadi beberapa bagian dengan memperhatikan tanda titik dan koma atau titik dua. Kemudian suara akan dihasilkan hingga seluruh bagian teks selesai dibaca.
Bagaimana cara memakai speech synthesizer?
Pada contoh video tersebut saya memakai tombol play untuk memanggil fungsi pembacaan teks.Tombol tersebut memiliki atribut onclick="baca(t
Fungsi 'baca' merupakan nama fungsi yang isinya memanggil speech synthesizer untuk mulai membaca (memutar audio) teks yang terdapat di bagian 'Ãsi'.
LANGKAH PERTAMA:
Pertama inisiasi dulu fitur speech synthesizer saat halaman web dibuka. Tempatkan kode ini di atas/sebelum body web, misal di bagian header web.
Script-nya seperti ini
<script>
//paste kode ini di bagian header website anda
$( window ).load(function
var msg = new SpeechSynthesis
});
</script>
<script language="JavaS
//close all speech synthesizer saat laman web ditutup
window.onbefore
function confirmExit()
{ speechSynthesis
</script>
LANGKAH KEDUA:
Paste kode berikut di bawah kode di atas.
<script>
function makemultipart(t
//fungsi ini untuk men-split teks jadi beberapa bagian
var CHARACTER_LIMIT
var text = text;
var multipartText = [];
if (text.length > CHARACTER_LIMIT
var tmptxt = text;
while (tmptxt.length > CHARACTER_LIMIT
//Split dengan tanda baca umum
var p = tmptxt.search(/
var part = '';
//Jika gagal split, pakai tanda koma
if (p == -1 || p >= CHARACTER_LIMIT
p = tmptxt.search(/
}
//Jika gagal split, coba pakai tanda spasi
if (p == -1 || p >= CHARACTER_LIMIT
var words = tmptxt.split(' ');
for (var i = 0; i < words.length; i++) {
if (part.length + words[i].length
break;
part += (i != 0 ? ' ' : '') + words[i];
}
} else {
part = tmptxt.substr(0
}
tmptxt = tmptxt.substr(p
multipartText.p
//
}
//Add the remaining text
if (tmptxt.length > 0) {
multipartText.p
}
} else {
//Small text
multipartText.p
}
return multipartText;
}
</script>
<script type="text/
function baca(tombol,Tar
//fungsi ini untuk memutar audio teks yang sudah ter-split.
var elmnt = document.getEle
elmnt.scrollInt
if (document.getEl
document.getEle
document.getEle
document.getEle
speechSynthesis
return;
}else{
//
var backupText = document.getEle
//
document.getEle
}
//Play multipart text
document.getEle
document.getEle
var narasi = document.getEle
txttosay = makemultipart(n
txttosay = txttosay;
//
var i = 0;
for (i = 0; i < txttosay.length
var msg = new SpeechSynthesis
//
//
msg.volume = 1; // 0 to 1
msg.rate = 1; // 0.1 to 10 speed of speech
msg.pitch = 1; //0 to 2*/
msg.text = txttosay[i];
msg.speak = txttosay;
msg.lang = lang;
msg.onend = self.OnFinished
msg.onerror = function (e) {alert('Browser
msg.onstart = function (e) {hlight("isi",e
if ((i+1) == txttosay.length
msg.addEventLis
//tambahkan baris perintah lain di sini ketika teks selesai dibaca
document.getEle
document.getEle
document.getEle
});
}
//
window.speechSy
//
}
}
</script>
<script>
function hlight(TargetDi
//fungsi untuk meng-highlight teks yang sedang dibaca
var curenttxt = TeksToHL;
var new_text = document.getEle
new_text = new_text.replac
document.getEle
}
</script>
LANGKAH KETIGA:
Tempatkan elemen web berikut untuk menjalankan fungsi syntesyzer berupa tombol play, elemen isi teks yang akan dibaca, dan elemen tersembunyi untuk membackup format teks asli. Saya memakai tag <IMG> yang dipakai untuk tombol play. Tombol tersebut menggunakan gambar 'play.png' yang gambarnya dapat diganti sesuai selera anda. Image resources yang digunakan di script tersebut hanya gambar 'play.png' dan gambar 'stop.png' yang diletakkan di folder 'images' di bagian root website anda.
Paste kode berikut di halaman web anda.
<div style="display:
<a id="isi">Bagian
<img src="images//
LANGKAH TERAKHIR:
Uji coba halaman web anda di browser yang mendukung javascript. saya sarankan browser Chrome. Jika suara yang keluar masih bahasa inggris, ubah bahasa di Control Panel bagian Regional Setting, lokasi pilih Indonesia.
Atau untuk windows10 dari control panel dicari setting text-to-speech.
Anda dapat menggunakan skrip ini untuk 'mendengarkan suara' dari teks berita atau tulisan lain yang sangat panjang, namun mata tidak kuat membacanya.
Anda dapat mengembangkan sendiri kode ini agar website otomatis 'memutar audio' saat halaman selesai di-load. Atau otomatis membuka halaman berikutnya ketika pembacaan teks selesai. Pada contoh web di video tersebut digunakan untuk otomatis membuka dan membaca hadits berikutnya jika audio isi hadits selesai diputar.
Selamat mencoba, semoga berhasil dan semoga tutorial ini bermanfaat terutama bagi yang suka coding.