TTS 语音播报:
代码摘要:
private TextToSpeech mTts;
private EditText et_setPitch;
private EditText et_setSpeechRate;
//实现 TTS 监听
et_setPitch = findViewById(R.id.et_setPitch); //音调
et_setSpeechRate = findViewById(R.id.et_setSpeechRate); //语速
mTts = new TextToSpeech(TtsVoice.this, this); // TTs
Button bt_speek = findViewById(R.id.bt_speek); //播报 button
bt_speek.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String inputText = et_input.getText().toString().trim(); //输入框
String Pitchtext = et_setPitch.getText().toString().trim();
String SpeechRate = et_setSpeechRate.getText().toString().trim();
if (!TextUtils.isEmpty(Pitchtext)){
//设置音调,值越大越尖锐
float pitch = Float.valueOf(Pitchtext);
mTts.setPitch(pitch);
}else {
//设置音调,值越大声音越细
mTts.setPitch(2.0f);
}
if (!TextUtils.isEmpty(SpeechRate)){
float rate = Float.valueOf(SpeechRate);
//设置语速
mTts.setSpeechRate(rate);
}else {
//设置语速
mTts.setSpeechRate(0.5f);
}
if (!TextUtils.isEmpty(inputText)) {
mTts.speak(inputText, TextToSpeech.QUEUE_FLUSH, null);
} else {
mTts.speak("Please enter what you want to say", TextToSpeech.QUEUE_FLUSH, null);
}
}
});
实现方法:
/**
* @param status 初始化TTS 语音
*/
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int mUs = mTts.setLanguage(Locale.US);
int mChainese = mTts.setLanguage(Locale.CHINESE);
if (mUs == TextToSpeech.LANG_MISSING_DATA
|| mUs == TextToSpeech.LANG_NOT_SUPPORTED
|| mChainese == TextToSpeech.LANG_MISSING_DATA
|| mChainese == TextToSpeech.LANG_NOT_SUPPORTED) {
}
}
}
@Override
protected void onDestroy() {
if (mTts !=null){
mTts.stop();
mTts.shutdown();
}
super.onDestroy();
}
结束;