Android中如何使用TextToSpeech
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍Android中如何使用TextToSpeech,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!APP初稿如图:实现1.初始化语音。这是一个异步操作。初始化完成后
千家信息网最后更新 2026年11月02日Android中如何使用TextToSpeech
这篇文章主要介绍Android中如何使用TextToSpeech,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
APP初稿如图:
实现
1.初始化语音。这是一个异步操作。初始化完成后调用oninitListener(第二个参数)。
TextToSpeech mTts = new TextToSpeech(this, this);
2.实现TextToSpeech.OnInitListener
注意:语言可能不可用。
// 实现TextToSpeech.OnInitListener. public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { //设置首选语言为中文,注意,语言可能是不可用的,结果将指示此 int result = mTts.setLanguage(Locale.CHINA); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { //语言数据丢失或不支持该语言。 Log.e(TAG, "语言数据丢失或不支持该语言"); } else { //检查文档中其他可能的结果代码。 // 例如,语言可能对区域设置可用,但对指定的国家和变体不可用 // TTS引擎已成功初始化。 // 允许用户按下按钮让应用程序再次发言。 mAgainButton.setEnabled(true); } } else { // 初始化失败 Log.e(TAG, "初始化失败"); } }3.写一个朗读方法,在需要的时候触发(如:点击事件)
TextToSpeech的speak方法有两个重载。
执行朗读的方法
speak(CharSequence text,int queueMode,Bundle params,String utteranceId);
第二个参数queueMode用于指定发音队列模式,两种模式选择。
(1)TextToSpeech.QUEUE_FLUSH:该模式下在有新任务时候会清除当前语音任务,执行新的语音任务
(2)TextToSpeech.QUEUE_ADD:该模式下会把新的语音任务放到语音任务之后,等前面的语音任务执行完了才会执行新的语音任务。
将朗读的的声音记录成音频文件
synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId);
private void sayHello() { String hello ="Hellow"; //TextToSpeech的speak方法有两个重载。 // 执行朗读的方法 //speak(CharSequence text,int queueMode,Bundle params,String utteranceId); // 将朗读的的声音记录成音频文件 //synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId); //第二个参数queueMode用于指定发音队列模式,两种模式选择 //(1)TextToSpeech.QUEUE_FLUSH:该模式下在有新任务时候会清除当前语音任务,执行新的语音任务 //(2)TextToSpeech.QUEUE_ADD:该模式下会把新的语音任务放到语音任务之后, //等前面的语音任务执行完了才会执行新的语音任务 mTts.speak(hello, TextToSpeech.QUEUE_FLUSH, null); }4.记得利用Activity的生命周期中将其关闭
@Override public void onDestroy() { // 生命周期中结束 if (mTts != null) { mTts.stop(); mTts.shutdown(); } super.onDestroy(); }源码
SpeechActivity.java
public class SpeechActivity extends Activity implements TextToSpeech.OnInitListener { private static final String TAG = "SpeechDemo"; private TextToSpeech mTts; private Button mButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.text_to_speech); //初始化语音。这是一个异步操作。初始化完成后调用oninitListener(第二个参数)。 mTts = new TextToSpeech(this, this); mButton = (Button) findViewById(R.id.again_button); //触发 mButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { sayHello(); } }); } @Override public void onDestroy() { // 生命周期中结束 if (mTts != null) { mTts.stop(); mTts.shutdown(); } super.onDestroy(); } // 实现TextToSpeech.OnInitListener. public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { //设置首选语言为中文,注意,语言可能是不可用的,结果将指示此 int result = mTts.setLanguage(Locale.CHINA); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { //语言数据丢失或不支持该语言。 Log.e(TAG, "语言数据丢失或不支持该语言"); } else { //检查文档中其他可能的结果代码。 // 例如,语言可能对区域设置可用,但对指定的国家和变体不可用 // TTS引擎已成功初始化。 // 允许用户按下按钮让应用程序再次发言。 mAgainButton.setEnabled(true); } } else { // 初始化失败 Log.e(TAG, "初始化失败"); } } private void sayHello() { String hello ="计蒙不吃鱼"; //TextToSpeech的speak方法有两个重载。 // 执行朗读的方法 //speak(CharSequence text,int queueMode,Bundle params,String utteranceId); // 将朗读的的声音记录成音频文件 //synthesizeToFile(CharSequence text,Bundle params,File file,String utteranceId); //第二个参数queueMode用于指定发音队列模式,两种模式选择 //(1)TextToSpeech.QUEUE_FLUSH:该模式下在有新任务时候会清除当前语音任务,执行新的语音任务 //(2)TextToSpeech.QUEUE_ADD:该模式下会把新的语音任务放到语音任务之后, //等前面的语音任务执行完了才会执行新的语音任务 mTts.speak(hello, TextToSpeech.QUEUE_FLUSH, null); } }text_to_speech.xml
以上是"Android中如何使用TextToSpeech"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
任务
语音
语言
模式
方法
参数
数据
时候
结果
支持
两个
周期
声音
完了
文件
生命
队列
音频
选择
成功
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州百单互联网科技有限公司
科技互联网产品
科技互联网公司装修
河南真二互联网科技有限公司
互联网科技垄断
艾特科技互联网
有木互联网科技
蓝色互联网科技
上海电发互联网科技有限公司
哈尔滨新华互联网科技学院
互联网科技教育视频
和信科技工业互联网
科技大学互联网
中科明德北京互联网科技
黑科技 体验场景 互联网大会
江苏互联网智能科技软件
半导体行业属于互联网高科技类吗
广西泛欧互联网科技有限公司
互联网科技博主张洲
小牛互联网科技有限公司地址
保险科技 互联网保险
深圳互联网络科技有限公司
丰台科技园 互联网
睿民互联网科技
福建科技产业互联网发展
如何创新互联网科技
特约风豹互联网科技为什么扣费
2021互联网科技公司排名
互联网营销推广黑科技
科技互联网经济论坛