下载Google文字转语音引擎并安装。安装完成后在设置–>辅助功能–>无障碍–>文字转语音输出中将Google 文字转语音引擎设置为默认语音引擎。点击Google语音引擎设置,在引擎设置页面联网安装所需要的语音数据包。
通过网盘分享的文件:Android
链接: https://pan.baidu.com/s/1TGZSB-t4Gk_8SnY76AcWMA?pwd=3hw7 提取码: 3hw7
更新:Android14以上系统不可用
在 Android 应用中实现文字转语音(TTS)功能可以通过系统自带的 TextToSpeech
API 实现。以下是分步实现指南:
1. 添加权限(非必须)
在 AndroidManifest.xml
中添加网络权限(仅在线引擎需要):
xml
复制
<uses-permission android:name="android.permission.INTERNET" />
运行 HTML
2. 初始化 TextToSpeech 引擎
java
复制
public class MainActivity extends AppCompatActivity { private TextToSpeech textToSpeech; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化 TTS 引擎 textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { // 设置语言(示例:中文) int result = textToSpeech.setLanguage(Locale.CHINESE); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { Log.e("TTS", "语言不支持或数据缺失"); } } else { Log.e("TTS", "初始化失败"); } } }); } }
3. 播放文字内容
java
复制
// 点击按钮触发播放 public void speakText(String text) { if (textToSpeech != null) { // 设置语速(1.0 正常,<1.0 慢,>1.0 快) textToSpeech.setSpeechRate(1.0f); // 设置音调(1.0 正常) textToSpeech.setPitch(1.0f); // 播放文本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null, "uniqueUtteranceId"); } else { textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null); } } }
4. 处理播放回调(可选)
java
复制
// 添加播放进度监听 textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() { @Override public void onStart(String utteranceId) { // 开始播放 } @Override public void onDone(String utteranceId) { // 播放完成 } @Override public void onError(String utteranceId) { // 发生错误 } });
5. 释放资源
java
复制
@Override protected void onDestroy() { if (textToSpeech != null) { textToSpeech.stop(); textToSpeech.shutdown(); } super.onDestroy(); }
6. 高级功能(可选)
-
离线语音支持:检查设备是否已下载语音包:
java
复制
Intent installIntent = new Intent(); installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); startActivity(installIntent);
-
切换引擎:允许用户选择不同的 TTS 引擎:
java
复制
Intent intent = new Intent(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(intent, REQUEST_CODE_CHECK_TTS);
-
保存音频文件:
java
复制
HashMap<String, String> params = new HashMap<>(); params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "uniqueId"); textToSpeech.synthesizeToFile(text, params, "output.mp3");
注意事项
-
语言支持检查:在调用
setLanguage()
后检查返回值。 -
异步初始化:确保在
onInit()
回调成功后再使用 TTS。 -
引擎兼容性:不同设备可能使用不同引擎(如 Google TTS、厂商定制引擎)。
通过上述步骤,你可以快速为 Android 应用添加基础的 TTS 功能。根据需求扩展高级特性即可。
重点补充:此方法属于过去式,现在都采用Android+AI TTS模型实现,我在另一篇文章中说明。