音频(3)Android TTS技术支持朗读英文

时间:2023-03-09 03:01:00
音频(3)Android TTS技术支持朗读英文

Android对TTS技术的支持

  Android 1.6开始支持TTS(Text To Speech)技术,通过该技术可以将文本转换成语音。目前2015-09-06只支持朗读英文.

  TTS技术的核心是android.speech.tts.TextToSpeech类。要想使用TTS技术朗读文本,需要做两个工作:
  1,初始化TTS和指定要朗读的文本,主要指定TTS朗读的文本的语言.
  2,使用speak方法指定要朗读的文本

在Android中使用TTS技术

  TextToSpeech.OnInitListener.onInit用于初始化TTS

  TextToSpeech.speak用于将文本转换为声音

示例

 import java.util.Locale;

 import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast; /*
* TTS示例
* TTS技术可以将文本转换成语音
* 1,初始化TTS和指定要朗读的文本,主要指定TTS朗读的文本的语言.
* 2,使用speak方法指定要朗读的文本。
*/
public class Main extends Activity implements TextToSpeech.OnInitListener,
OnClickListener {
// 利用TTS技术将文本转换成语音 第1步,TextToSpeech.OnInitListener接口
private TextToSpeech tts;// tts关键类
private TextView textView; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); // 利用TTS技术将文本转换成语音 第2步,构造TextToSpeech
tts = new TextToSpeech(this, this); Button button = (Button) findViewById(R.id.button);
textView = (TextView) findViewById(R.id.textview);
button.setOnClickListener(this);
} /*
* 初始化回调
* from TextToSpeech.OnInitListener
*/
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
//利用TTS技术将文本转换成语音 第3步,指定TTS朗读的文本的语言 目前2015-09-06还只支持英文朗读
// 目前2015-09-06还只支持英文朗读
int result = tts.setLanguage(Locale.US); //利用TTS技术将文本转换成语音 第4步,若数据不存在或不支持,那么提示.
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Toast.makeText(this, "Language is not available.",Toast.LENGTH_LONG).show();
}
}
} /*
* 开始朗读的button事件
*/
public void onClick(View view) {
//利用TTS技术将文本转换成语音 第5步,开始朗读
tts.speak(textView.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
} }