Senin, 21 September 2015

Beginilah Cara Mudah Membuat Program C Anda Bisa Bicara


Speech synthesis atau TTS (Text To Speech) merupakan teknologi terkini yang mampu meningkatkan interaksi antara manusia dengan komputer. Dengan teknologi seperti ini, komputer dapat menyampaikan pesan dalam bentuk suara.

Teknologi TTS biasanya ada dalam wujud perangkat lunak executable ataupun library. Software dalam bentuk library biasanya ditujukan untuk developer, sedangkan software dalam wujud executable ditujukan untuk keperluan lain. Ada banyak sekali software TTS yang bisa ditemukan di internet, namun hanya beberapa saja yang mendukung sintesa ucapan bahasa Indonesia.

Software yang akan kita pakai dalam tutorial ini adalah eSpeak. Software ini tersedia dalam bentuk executable dan library, namun keduanya dapat diimplementasikan pada program yang akan kita buat dengan mudah. Tulisan ini hanya menjelaskan cara pemakaian software executable eSpeak daripada library nya, karena lebih sederhana dan mudah diimplementasikan.

Sebelumnya download dan install eSpeak di komputer anda.
http://espeak.sourceforge.net/download.html

Lalu build dan jalankan program dari source code di bawah ini.

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char *espeak_path = "C:/Program Files/eSpeak/command_line/espeak.exe";

int speak(char *string){
 int r;
 char command[1000];
 
 sprintf(command, "\"\"%s\" -v id \"%s\"\"", espeak_path, string);
 r = system(command);
 return r;
}

int main(){
 int r;
 
 r = speak("Halo, nama saya Irvan");
 if (r)
  printf("Gagal");
 else
  printf("OK");
 return r;
}

espeak_path adalah string yang menyimpan alamat executable eSpeak. Pada umumnya lokasinya akan terdapat pada C:/Program Files/eSpeak/command_line
fungsi speak() kita buat untuk memudahkan proses sintesa teks ke ucapan. Cara kerjanya sederhana, fungsi ini akan menjalankan program espeak beserta argumennya yang berisi teks yang ingin diucapkan. Jika melakukannya melalui CMD (Command Prompt), kita bisa melakukannya dengan command> "C:\Program Files\eSpeak\command_line\espeak.exe" -v id "Halo, nama saya irvan". Hal ini sama saja dengan memanggil fungsi system() dari program kita. Hanya saja, cara penulisannya agak berbeda, kita butuh 2 tanda petik lagi, seperti ini ""C:\Program Files\eSpeak\command_line\espeak.exe" -v id "Halo, nama saya irvan"".

Command dieksekusi dengan tambahan argumen -v id yang memberitahukan eSpeak bahwa argumen teks masukan berbahasa Indonesia. Selain itu, kita juga bisa mengatur gaya pengucapan dengan parameter berikut.
-p <integer> : Mengatur pitch, atau tinggi rendahnya nada suara. Nilai integer dapat diatur antara 0 - 99.
-s <integer> : Mengatur kecepatan pengucapan. Nilai parameter dapat berupa 80 - 450
-g <integer> : Mengatur jeda antar kata. Argumen berupa nilai dalam ukuran integer * 10 miliditik.


Untuk menggabungkan command dan argumennya agar bisa dieksekusi dengan fungsi system(), kita menggunakan sprintf().
sprintf(command, "\"\"%s\" -v id \"%s\"\"", espeak_path, string);

Jika fungsi system() berhasil, dapat dipastikan return value akan bernilai 0. Namun jika gagal, biasanya fungsi ini akan mengembalikan nilai -1.

Selamat mencoba :)
Load disqus comments

2 comments