Android 文字转语音,语音消息播放之TextToSpeech
Posted XRFirst
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 文字转语音,语音消息播放之TextToSpeech相关的知识,希望对你有一定的参考价值。
public class MainActivity extends AppCompatActivity implements View.OnClickListener, TextToSpeech.OnInitListener
private Button speechBtn; // 按钮控制开始朗读
private EditText speechTxt; // 需要朗读的内容
private TextToSpeech textToSpeech; // TTS对象
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
speechBtn = (Button) findViewById(R.id.btn_read);
speechBtn.setOnClickListener(this);
speechTxt = (EditText) findViewById(R.id.editText);
textToSpeech = new TextToSpeech(this, this); // 参数Context,TextToSpeech.OnInitListener
/**
* 用来初始化TextToSpeech引擎
* status:SUCCESS或ERROR这2个值
* setLanguage设置语言,帮助文档里面写了有22种
* TextToSpeech.LANG_MISSING_DATA:表示语言的数据丢失。
* TextToSpeech.LANG_NOT_SUPPORTED:不支持
*/
@Override
public void onInit(int status)
if (status == TextToSpeech.SUCCESS)
int result = textToSpeech.setLanguage(Locale.CHINA);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED)
Toast.makeText(this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();
@Override
public void onClick(View v)
if (textToSpeech != null && !textToSpeech.isSpeaking())
// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规
textToSpeech.setPitch(0.5f);
//设定语速 ,默认1.0正常语速
textToSpeech.setSpeechRate(1.5f);
//朗读,注意这里三个参数的added in API level 4 四个参数的added in API level 21
textToSpeech.speak(speechTxt.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
@Override
protected void onStop()
super.onStop();
textToSpeech.stop(); // 不管是否正在朗读TTS都被打断
textToSpeech.shutdown(); // 关闭,释放资源
以上是关于Android 文字转语音,语音消息播放之TextToSpeech的主要内容,如果未能解决你的问题,请参考以下文章