1. Android平台下安装tts语音包
安装完成后,用户需要在设备的设置中启用所安装的TTS引擎。步骤如下:
- 打开设备的“设置”应用。
- 找到并选择“语言和输入法”或“语言和输入”选项(具体名称可能因设备不同而有所差异)。
- 选择“文本转语音输出”或类似的选项。
- 选择刚刚安装的TTS引擎作为默认引擎。
2. 代码使用
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Locale;
public class MainActivity extends AppCompatActivity implements OnInitListener {
private TextToSpeech tts;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化TTS引擎
tts = new TextToSpeech(this, this);
}
@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) {
// 语言数据丢失或不支持
// 处理错误情况
} else {
// TTS引擎已准备好
tts.setSpeechRate(1.0f); // 设置语速
// 准备带停顿的文本
String text = "Hello, this is a text to speech test.";
String repeatedTextWithPause = repeatTextWithPause(text, 3, 500); // 500ms的停顿
// 开始播放
speak(repeatedTextWithPause);
}
} else {
// 初始化失败
// 处理错误情况
}
}
private void speak(String text) {
if (tts != null) {
Bundle params = new Bundle();
params.putFloat(TextToSpeech.Engine.KEY_PARAM_VOLUME, 0.8f); // 设置音量
tts.speak(text, TextToSpeech.QUEUE_FLUSH, params, null);
}
}
private String repeatTextWithPause(String text, int times, int pauseDurationMs) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < times; i++) {
stringBuilder.append(text);
if (i < times - 1) {
stringBuilder.append("[p" + pauseDurationMs + "]"); // 插入停顿
}
}
return stringBuilder.toString();
}
@Override
protected void onDestroy() {
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
}