• Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa
  • Jadilah orang yang sesederhana mungkin yang kamu bisa

Search

Loading...

Android Text to Speech | Tutorial Android

Kali ini saya mau berbagi contoh aplikasi sederhana Text to Speech pada Android. Aplikasinya sederhana saja, jadi nanti aplikasinya mengeluarkan suara dari Text yang kita inputkan. Mau tau gimana cara membuatnya? Cekidott....

1. Buat project baru dengan nama "TextToSpeech" dengan nama activity "AndroidTextToSpeechActivity" dan layoutnya "main".

2. Masukkan kodingan berikut pada AndroidTextToSpeechActivity.java
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;

public class AndroidTextToSpeechActivity extends Activity implements
        TextToSpeech.OnInitListener {
    /** Called when the activity is first created. */

    private TextToSpeech tts;
    private ImageButton btnSpeak;
    private EditText txtText;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tts = new TextToSpeech(this, this);

        btnSpeak = (ImageButton) findViewById(R.id.btnSpeak);

        txtText = (EditText) findViewById(R.id.txtText);

        // button on click event
        btnSpeak.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                speakOut();
            }

        });
    }

    @Override
    public void onDestroy() {
        // Don't forget to shutdown!
        if (tts != null) {
            tts.stop();
            tts.shutdown();
        }
        super.onDestroy();
    }

    public void onInit(int status) {
        // TODO Auto-generated method stub

        if (status == TextToSpeech.SUCCESS) {

            int result = tts.setLanguage(Locale.US);

            // tts.setPitch(5); // set pitch level

            // tts.setSpeechRate(2); // set speech speed rate

            if (result == TextToSpeech.LANG_MISSING_DATA
                    || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                Log.e("TTS", "Language is not supported");
            } else {
                btnSpeak.setEnabled(true);
                speakOut();
            }

        } else {
            Log.e("TTS", "Initilization Failed");
        }

    }

    private void speakOut() {

        String text = txtText.getText().toString();

        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
    }
}
 3. Selanjutnya pada main.xml, masukkan ....

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ffffff">
   
    <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Text To Speech"
                android:padding="15dip"
                android:textColor="#000000"
                android:textSize="26dip"
                android:gravity="center"
                android:textStyle="bold"/>
   
    <EditText android:id="@+id/txtText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Enter some text to speak"
        android:layout_marginTop="20dip"       
        android:layout_margin="10dip"/>

    <ImageButton
        android:id="@+id/btnSpeak"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/speak" />

</LinearLayout>

Sebelumnya buat dulu folder baru di res dengan nama drawable dan masukkan gambar ini (speak.png).


4. Habis itu coba RUN deh.... Kira-kira nanti keluarnya seperti ini,


Setelah itu coba masukkan text dan klik gambar speaker. Taraaa.... Ada suaranya kan? XD



Related Post



15 comments:

  1. mas kalo inputnya dibikin otomatis dari sms gimana bisa ga? jadi ada sms masuk langsung keluar suara dari isi smsnya.

    ReplyDelete
  2. mas mau nanya kalo misalkan merubah menu dan sub menu menjadi suara apakah bisa??

    ReplyDelete
  3. klo buat baca data dari database bisa gak mas ??

    jadi kita punya uraian tentang sesuatu trus tinggal tambah tombol baca..

    ReplyDelete
    Replies
    1. Bisa, tinggal setting aja di kodingannya

      Delete
  4. sebelumnya terimakasih udah posting tentan ini, trus maaf juga, saya mau tanya....
    saya sudah coba program ini, berhasil dijalankan di emulator, tapi kenapa kok ketika saya install file apk nya k android jadi g keluar suara ya????

    ReplyDelete
    Replies
    1. Mungkin karena di androidnya belum diinstall library suaranya mbak

      Delete
  5. Mas ozi priawadi ,Terima kasih, postinganya sangat membantu, tapi saya mengalami kesulitan , saya ingin membuat bahasanya dengan dialek bahasa indonesia. tts.setLanguage(Locale.US);
    library bahasa indonesianya ada gk ya?? download dmana? mohon pencerahanya mas,.

    ReplyDelete
    Replies
    1. Untuk bahasa indonesia sepertinya belum ada mas, gunain library yang lain

      Delete
  6. gan ane erronya dbag. sini
    - public class MainActivity extends Activity implements TextToSpeech.OnInitListener{
    pesan errornya: The type MainActivity must implement the inherited abstract method TextToSpeech.OnInitListener.onInit(int), disini ane pake MainActivity.java

    - terus dibagian sini juga error: int result=tts.setLanguange(Locale.US);
    pesan errornya: The method setLanguange(Locale) is undefined for the type TextToSpeech

    mohon pencerahannya gan,, ane masih newbie bgt :)

    ReplyDelete
    Replies
    1. Untuk yang pertama kodingannya belum lengkap ente copas agaknya. Jadi ada method yang belum dipake -> public void onInit (){ }

      Kalo diganti selain US bisa nggak?

      Delete
    2. untuk melengkapinya letak -> public void OnInit(){ } dimana gan?

      - itu untuk languangenya apa perlu didownload lagi librarynya ya gan untuk US?
      kalo perlu boleh minta link downloadnya gan?

      Delete
  7. mas priawadi. sy ingin membuat tugas akhir sy tntang TTS ini. sy menggunakn library TTS bawaan dari android it mas. namun, sy ada masalah ttg brapa jumlah kata yg dtampung oleh library TTS trsbut mas. sy ingin memperkuat tugas akhir saya. mohon mas infokan dan sumbernya kpada sy ttng jumlah kata dlam librarynya mas. najibnadha@gmail.com
    mohon maaf dan terimakasih

    ReplyDelete
  8. bahan2 membuat aplikasi ini apa aja gan? mkasih :D

    ReplyDelete
  9. Very nice article :-)

    FREE Create, Upload dan Publish APK ke Google Play Store GRATIS via SantriPlay
    visit: gontorpedia.com/SantriPlay

    ReplyDelete

Copyright © 2015 priawadi.com All Rights Reserved.