Text to Speech Conversion in Android

Procedure

  1. Open Eclipse IDE.
  2. Take a new project.
  3. Make a MainActivity.java file.
  4. Make an activity_main.xml file for layout design.
  5. In xml file, one button & one edit text should be there.
  6. Code is given below:

MainActivity.java

package com.example.texttospeech;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.speech.tts.TextToSpeech;

import android.speech.tts.TextToSpeech.OnInitListener;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends Activity implements OnInitListener {

EditText ee;

Button b1;

TextToSpeech tts;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ee=(EditText)findViewById(R.id.editText1);

b1=(Button)findViewById(R.id.button1);

b1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String str=ee.getText().toString();

tts.speak(str,TextToSpeech.QUEUE_FLUSH,null);

}

});

Intent i =new Intent();

i.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);

startActivityForResult(i, 1);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

super.onActivityResult(requestCode, resultCode, data);

if(requestCode==1)

{

if(resultCode==TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)

{

tts= new TextToSpeech(this,this);

}

else

{

Intent i=new Intent();

i.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);

startActivity(i);

}

}

}

@Override

public void onInit(int status) {

// TODO Auto-generated method stub

if(status==TextToSpeech.SUCCESS)

{

Toast.makeText(getApplicationContext(), "engine installed",1000).show();

}

if(status==TextToSpeech.ERROR)

{

Toast.makeText(getApplicationContext(), "engine not installed", 1000).show();

}

}

}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

<EditText

android:id="@+id/editText1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="70dp"

android:ems="10"

android:inputType="textPersonName" />

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignRight="@+id/editText1"

android:layout_below="@+id/editText1"

android:layout_marginRight="49dp"

android:layout_marginTop="101dp"

android:text="Button" />

</RelativeLayout>

Image-1.jpg

Output

Write the text in edit text. Then click on button.

Image-2.jpg

Image-3.jpg