Lets see how to implement Text to Speech (tts) in Android Application using TextToSpeech class from package android.speech.tts that was added in API level 21.
Android Text to Speech
We will create an EditText and Button when the button is clicked text entered in the EditText is spoken out. You need to implement TextToSpeech.OnInitListener for the Activity that wants to added TTS, and implement the onInit() abstract method,
File : MainActivity.javapackage com.code2care.tools.texttospeach;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.EditText;
import java.util.Locale;
public class MainActivity extends ActionBarActivity implements TextToSpeech.OnInitListener{
private TextToSpeech engine;
private EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText) findViewById(R.id.text);
engine = new TextToSpeech(this, this);
}
public void speakText(View v) {
String textContents = text.getText().toString();
//speak() would work on if you have set minSDK version 21 or higher
engine.speak(textContents, TextToSpeech.QUEUE_FLUSH, null, null);
}
@Override
public void onInit(int i) {
if (i == TextToSpeech.SUCCESS) {
//Setting speech Language
engine.setLanguage(Locale.CANADA);
engine.setPitch(1);
}
}
}
File : layout.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/text"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="46dp"
android:ems="10"
android:hint="Enter text to be converted to Speech"
android:inputType="textMultiLine" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="speakText"
android:text="Speak"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Note this will only work with Android API versions 21 or higher!
More Posts related to Android,
- Change Android Toast background color
- Maven : java.lang.ClassNotFoundException: Xmx512m
- This class should be public (android.support.v7.internal.widget.ActionBarView.HomeView) Lint Error
- Android Alert Dialog with Checkboxes example
- Android Error Generating Final Archive - Debug Certificate Expired
- How to add Newline to text in Android TextView
- Read Text file from SD Card : Android Programming
- [FIX] AndroidRuntime: FATAL EXCEPTION: main - java.lang.RuntimeException NullPointerException
- ActivityManager Warning: Activity not started, its current task has been brought to the front
- INSTALL_FAILED_INSUFFICIENT_STORAGE Android Error
- Android Developers Bluetooth Tutorial
- java.lang.ClassNotFoundException android.support.v7.widget.Toolbar [Fix]
- Android: Save Data in local Db using Android Room
- Channel 50 SMSes received every few minutes Android Phones
- 21 Useful Android Emulator Short-cut Keyboard Keys
- Changing Android Intent Tittle using java code
- Android : No Launcher activity found! Error
- How to change TextView or EditText Text Color on Focus and on Press
- How to display Toast on Button Click : Android
- Android : Execute some code after back button is pressed
- Stop android adb service from command prompt or terminal
- [Soluiton] You already have the latest version of Android Studio installed
- Create Custom Android AlertDialog
- Android R Cannot Be Resolved To A Variable
- How to make Android EditText not editable
More Posts:
- SharePoint List redirect user after submitting form NewForm.aspx - SharePoint
- Split a String in Java with Examples - Java
- npm WARN saveError ENOENT: no such file or directory, open /mnt/c/package.json - JavaScript
- Android Studio Error: Default Activity not found - Android-Studio
- How to check if a String contains substring or a word using javaScript - JavaScript
- How to know current Ubuntu Linux version via terminal command - Ubuntu
- macOS Big Sur java.lang.UnsatisfiedLinkError CoreFoundation - Android Studio - Android-Studio
- JSP Hello World Program Tutorial with Eclipse and Tomcat Server - Java