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用于将文本转换为声音
示例
1 import java.util.Locale; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.speech.tts.TextToSpeech; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 import android.widget.TextView; 10 import android.widget.Toast; 11 12 /* 13 * TTS示例 14 * TTS技术可以将文本转换成语音 15 * 1,初始化TTS和指定要朗读的文本,主要指定TTS朗读的文本的语言. 16 * 2,使用speak方法指定要朗读的文本。 17 */ 18 public class Main extends Activity implements TextToSpeech.OnInitListener, 19 OnClickListener { 20 // 利用TTS技术将文本转换成语音 第1步,TextToSpeech.OnInitListener接口 21 private TextToSpeech tts;// tts关键类 22 private TextView textView; 23 24 @Override 25 public void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.main); 28 29 // 利用TTS技术将文本转换成语音 第2步,构造TextToSpeech 30 tts = new TextToSpeech(this, this); 31 32 Button button = (Button) findViewById(R.id.button); 33 textView = (TextView) findViewById(R.id.textview); 34 button.setOnClickListener(this); 35 } 36 37 /* 38 * 初始化回调 39 * from TextToSpeech.OnInitListener 40 */ 41 @Override 42 public void onInit(int status) { 43 if (status == TextToSpeech.SUCCESS) { 44 //利用TTS技术将文本转换成语音 第3步,指定TTS朗读的文本的语言 目前2015-09-06还只支持英文朗读 45 // 目前2015-09-06还只支持英文朗读 46 int result = tts.setLanguage(Locale.US); 47 48 //利用TTS技术将文本转换成语音 第4步,若数据不存在或不支持,那么提示. 49 if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { 50 Toast.makeText(this, "Language is not available.",Toast.LENGTH_LONG).show(); 51 } 52 } 53 } 54 55 /* 56 * 开始朗读的button事件 57 */ 58 public void onClick(View view) { 59 //利用TTS技术将文本转换成语音 第5步,开始朗读 60 tts.speak(textView.getText().toString(), TextToSpeech.QUEUE_FLUSH, null); 61 } 62 63 }