1.首先下载google TTS安装包,在你的安卓手机上进行安装。
2.将手机的默认文字播放引擎设置为google TTS。以红米手机为例:设置-更多设置-语言与输入法-文字转语音输出
3.在AndroidManifest.xml中申请权限
XML
<queries>
<intent>
<action android:name="android.intent.action.TTS_SERVICE" />
</intent>
</queries>
(这段代码可放在application标签前面)
4.在代码中播放声音(包括了兼容性验证、音量设定)
java
package com.example.train;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import android.speech.tts.TextToSpeech;
import java.util.Locale;
import android.util.Log;
import android.content.Context;
import android.media.AudioManager;
public class MainActivity extends AppCompatActivity {
android.widget.Button button = null;
private TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.CHINA); // 设置中文
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "中文语言包不可用");
}
else{
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC, (int)(am.getStreamMaxVolume(AudioManager.STREAM_MUSIC) * 0.8), 0);
EditText edit = findViewById(R.id.editTextText);
edit.setText("语音初始化成功");
}
}
}
});
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText edit = findViewById(R.id.editTextText);
//Toast.makeText(MainActivity.this,edit.getText() , Toast.LENGTH_SHORT).show();
tts.setPitch(1.2f);// 音高调节(0.5-2.0,默认1.0)
tts.setSpeechRate(0.9f);// 语速调节(0.5-2.0,默认1.0)
tts.speak(edit.getText(), TextToSpeech.QUEUE_FLUSH, null, null);
}
});
}
}