Android is providing
a cool feature (from Android 1.6) called Text to Speech (TTS) which speaks the
text in different languages. This tutorial explains how to work with android
text to speech or android speech synthesis. In this tutorial i also explained changing
the language type, pitch level and speed level.
activity_main.xml
---------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main"
tools:context=".MainActivity"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:hint="enter mame"
android:layout_marginTop="5dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Speak"
android:id="@+id/button"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" />
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main"
tools:context=".MainActivity"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:hint="enter mame"
android:layout_marginTop="5dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Speak"
android:id="@+id/button"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" />
</LinearLayout>
MainActivity.Java
-----------------------------
package
com.android.anil.texttospeech;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button speakbtn;
EditText name;
TextToSpeech textToSpeech;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
textToSpeech=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
Toast.makeText(MainActivity.this, "Text to Speech engine is intialized", Toast.LENGTH_SHORT).show();
}
});
speakbtn=(Button)findViewById(R.id.button);
name=(EditText)findViewById(R.id.editText);
speakbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s1=name.getText().toString();
textToSpeech.speak(s1,RESULT_OK,null);
}
});
}
}
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button speakbtn;
EditText name;
TextToSpeech textToSpeech;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
textToSpeech=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
Toast.makeText(MainActivity.this, "Text to Speech engine is intialized", Toast.LENGTH_SHORT).show();
}
});
speakbtn=(Button)findViewById(R.id.button);
name=(EditText)findViewById(R.id.editText);
speakbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s1=name.getText().toString();
textToSpeech.speak(s1,RESULT_OK,null);
}
});
}
}
Output is:
---------------------------