Android tutorial - android text to speech - Example - android app development - android studio - android development tutorial




Definition of TextToSpeech:

 texttospeech dialogbox
  • Text-to-speech (TTS) is a type of speech synthesis application that is used to create a spoken sound version of the text in a computer document, such as a help file or a Web page.
  • TTS can enable the reading of computer display information for the visually challenged person, or may simply be used to augment the reading of a text message.
  •  Android text to speech examples
  • Current TTS applications include voice-enabled e-mail and spoken prompts in voice response systems.
  • TTS is often used with voice recognition programs.
  • There are numerous TTS products available, including Read Please 2000, Proverbe Speech Unit, and Next Up Technology's TextAloud.
  • Lucent, Elan, and AT&T each have products called "Text-to-Speech."
  • TextToSpeech class is responsible to convert text into speech.
  • It provides a lot of methods to control the speech such as setSpeedRate(), setPitch() etc.
  • In this example, we are going to see the android texttospeech example with speed and pitch option.
 process of text to speech

activity_main.xml

  • Drag 2 textviews, 1 edittext, 1 spinner and 1 button for the layout. Now the activity_main.xml file will look like this:

File: activity_main.xml

<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity" >  
  
    <EditText  
        android:id="@+id/editText1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignBaseline="@+id/textView1"  
        android:layout_alignBottom="@+id/textView1"  
        android:layout_alignParentRight="true"  
        android:layout_marginRight="58dp"  
        android:ems="10" >  
  
        <requestFocus />  
    </EditText>  
  
    <Button  
        android:id="@+id/button1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_below="@+id/editText1"  
        android:layout_centerHorizontal="true"  
        android:layout_marginTop="28dp"  
        android:text="Speak" />  
  
    <TextView  
        android:id="@+id/textView2"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_below="@+id/button1"  
        android:layout_marginTop="62dp"  
        android:layout_toLeftOf="@+id/editText1"  
        android:text="Speed:" />  
  
    <TextView  
        android:id="@+id/textView1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignLeft="@+id/textView2"  
        android:layout_alignParentTop="true"  
        android:layout_marginTop="42dp"  
        android:text="Text:" />  
  
    <Spinner  
        android:id="@+id/spinner1"  
        android:layout_width="200dp"  
        android:layout_height="wrap_content"  
        android:layout_below="@+id/button1"  
        android:layout_centerHorizontal="true"  
        android:layout_marginTop="43dp" />  
  
</RelativeLayout>  
click below button to copy the code from android tutorial team

Activity class

  • Let's see the code to speak the given text.

File: MainActivity.java

package com.example.texttospeechspeed;  
  
import android.os.Bundle;  
import android.app.Activity;  
import android.view.Menu;  
  
import java.util.ArrayList;  
import java.util.List;  
import java.util.Locale;  
import android.speech.tts.TextToSpeech;  
import android.util.Log;  
import android.view.View;  
import android.widget.AdapterView;  
import android.widget.AdapterView.OnItemSelectedListener;  
import android.widget.ArrayAdapter;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.Spinner;  
import android.widget.Toast;  
public class MainActivity extends Activity implements  
TextToSpeech.OnInitListener,OnItemSelectedListener {  
/** Called when the activity is first created. */  
  
private TextToSpeech tts;  
private Button buttonSpeak;  
private EditText editText;  
private Spinner speedSpinner,pitchSpinner;  
  
private static String speed="Normal";  
@Override  
public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);  
setContentView(R.layout.activity_main);  
  
tts = new TextToSpeech(this, this);  
buttonSpeak = (Button) findViewById(R.id.button1);  
editText = (EditText) findViewById(R.id.editText1);  
speedSpinner = (Spinner) findViewById(R.id.spinner1);  
  
//load data in spinner  
loadSpinnerData();  
speedSpinner.setOnItemSelectedListener(this);  
  
//button click event  
buttonSpeak.setOnClickListener(new View.OnClickListener() {  
    @Override  
    public void onClick(View arg0) {  
        setSpeed();  
        speakOut();  
    }  
  
});  
}  
  
  
@Override  
public void onInit(int status) {  
  
if (status == TextToSpeech.SUCCESS) {  
  
    int result = tts.setLanguage(Locale.US);  
  
    if (result == TextToSpeech.LANG_MISSING_DATA  
            || result == TextToSpeech.LANG_NOT_SUPPORTED) {  
        Log.e("TTS", "This Language is not supported");  
    } else {  
        buttonSpeak.setEnabled(true);  
        speakOut();  
    }  
  
} else { Log.e("TTS", "Initilization Failed!");}  
  
}  
  
@Override  
public void onDestroy() {  
// Don't forget to shutdown tts!  
if (tts != null) {  
    tts.stop();  
    tts.shutdown();  
}  
super.onDestroy();  
}  
  
private void setSpeed(){  
    if(speed.equals("Very Slow")){  
        tts.setSpeechRate(0.1f);  
    }  
    if(speed.equals("Slow")){  
        tts.setSpeechRate(0.5f);  
    }  
    if(speed.equals("Normal")){  
        tts.setSpeechRate(1.0f);//default 1.0  
    }  
    if(speed.equals("Fast")){  
        tts.setSpeechRate(1.5f);  
    }  
    if(speed.equals("Very Fast")){  
        tts.setSpeechRate(2.0f);  
    }  
    //for setting pitch you may call   
    //tts.setPitch(1.0f);//default 1.0  
}  
  
private void speakOut() {  
String text = editText.getText().toString();  
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);  
}  
  
private void loadSpinnerData() {  
    //Data for speed Spinner  
    List<String> lables = new ArrayList<String>();  
    lables.add("Very Slow");  
    lables.add("Slow");  
    lables.add("Normal");  
    lables.add("Fast");  
    lables.add("Very Fast");  
      
    // Creating adapter for spinner  
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, lables);  
  
    // Drop down layout style - list view with radio button  
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
  
    // attaching data adapter to spinner  
    speedSpinner.setAdapter(dataAdapter);  
      
  }  
  
@Override  
public void onItemSelected(AdapterView<?> parent, View view, int position,  
        long id) {  
    // On selecting a spinner item  
    speed = parent.getItemAtPosition(position).toString();  
  
    Toast.makeText(parent.getContext(), "You selected: " + speed,  
            Toast.LENGTH_LONG).show();  
}  
  
@Override  
public void onNothingSelected(AdapterView<?> arg0) {  
     
}  
  
  
@Override  
public boolean onCreateOptionsMenu(Menu menu) {  
        // Inflate the menu; this adds items to the action bar if it is present.  
        getMenuInflater().inflate(R.menu.activity_main, menu);  
        return true;  
}  
  
}  
click below button to copy the code from android tutorial team

Related Searches to android text to speech

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We don't have any banner, Flash, animation, obnoxious sound, or popup ad. We do not implement these annoying types of ads!

We need money to operate the site, and almost all of it comes from our online advertising.

Please add wikitechy.com to your ad blocking whitelist or disable your adblocking software.

×