text to speech
Android文字到语音教程
Android提供了一个很酷的功能(来自Android 1.6),称为文本到语音(TTS),它以不同的语言提供文本。本教程解释了如何使用android文字到语音或Android语音合成。在本教程中,我还介绍了更改语言类型,音高级别和速度级别。
下面我提供了输出的视频。
我开发了一个简单的界面,一个输入字段和一个按钮来触发一个事件,它将从输入字段中取出文本并说出来。

1。通过转到文件⇒新的Android项目创建一个新的项目。并填写所需的详细信息。
2。从TextToSpeech.OnInitListener实现主要的Activity类
public class AndroidTextToSpeechActivity extends Activity implements TextToSpeech.OnInitListener { |
3。现在添加以下代码你的类。
package com.androidhive.texttospeech; import java.util.Locale; import android.app.Activity; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; public class AndroidTextToSpeechActivity extends Activity implements TextToSpeech.OnInitListener { /** Called when the activity is first created. */ private TextToSpeech tts; private Button btnSpeak; private EditText txtText; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); tts = new TextToSpeech( this , this ); btnSpeak = (Button) findViewById(R.id.btnSpeak); txtText = (EditText) findViewById(R.id.txtText); // button on click event btnSpeak.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View arg0) { speakOut(); } }); } @Override public void onDestroy() { // Don't forget to shutdown tts! if (tts != null ) { tts.stop(); tts.shutdown(); } super .onDestroy(); } @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 { btnSpeak.setEnabled( true ); speakOut(); } } else { Log.e( "TTS" , "Initilization Failed!" ); } } private void speakOut() { String text = txtText.getText().toString(); tts.speak(text, TextToSpeech.QUEUE_FLUSH, null ); } } |
4。现在运行您的项目并通过在输入文件中输入一些文本来测试您的应用程序。
改变语言
您可以使用setLanguage()函数来更改语言。支持多种语言,如加拿大,法国,中国,德国等,
tts.setLanguage(Locale.CHINESE); // Chinese language |
改变音高率
您可以使用setPitch()功能设置速度级别。默认情况下,该值为1.0您可以设置低于1.0的值以降低音高级别或增加音高级别的较大值。
tts.setPitch( 0.6 ); |
改变速度
速度可以使用setSpeechRate()设置。这也将默认为1.0值。通过设置2.0可以将速度提高一倍,或通过设置0.5来使速度等于一半
tts.setSpeechRate( 2 ); |