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,
- Check Internet Connection WIFI 4G is active on Android Programmatically
- Android Emulator cannot be opened because the developer cannot be verified. [M1 Mac]
- How to Change Android Toast Position?
- Fail to connect to camera service Android java RuntimeException
- How to create Custom RatingBar Android Programming Tutorial
- Fixing Android unknown error 961 while downloading app
- Android AlertDialog with Yes No and Cancel Button
- Share or Send SMS via Android Intent
- The Android Virtual Device myEmulator is currently running an emulator and cannot be deleted.
- Pass data between two Android Activities and access it using Intent
- SQLite with Android Easy to Understand Tutorial that covers Select, Insert, Update and Delete
- [FIX] AndroidRuntime: FATAL EXCEPTION: main - java.lang.RuntimeException NullPointerException
- Android EditText Cursor Colour appears to be white
- Android Development - How to switch between two Activities
- Android xml error Attribute is missing the Android namespace prefix [Solution]
- Android : Remove ListView Separator/divider programmatically or using xml property
- Android is starting optimizing... app 1 of 1
- java.lang.NoClassDefFoundError android.support.v4.content.LocalBroadcastManager
- AlertDialog with single button example : Android
- Android : Exception raised during rendering: action_bar API 22
- Maven : java.lang.ClassNotFoundException: Xmx512m
- Android Lint app_name is not translated in af (Afrikaans) am (Amharic) ar (Arabic) bg (Bulgarian)
- Center align text in TextView Android Programming
- How to Download and Install Android adb Tool on Linux, Mac or Windows
- Multiline EditText in Android Example
More Posts:
- Error: Failed to validate the signature of the actionable message card - Power Automate Flow - PowerAutomate
- Spring Boot: JDBCTemplate BatchUpdate Update Query Example - Java
- How to Preview HTML, CSS, JavaScript in Notepad++ - NotepadPlusPlus
- Is Facebook is down? Is it just for me? - Facebook
- Adding Jackson dependency to Java Gradle Project - Gradle
- Set Falling Show on Website for Christmas using Pure CSS Code - CSS
- How to create a Array (not using list) in Python - Python
- Fix: Jupyter Notebook says Not Trusted - Python