安卓文字转语音——其实可以很简单——TextToSpeech用法解析

article/2025/10/4 9:57:53

前言

很多时候我们会碰到文字转语音的需求,使用第三方sdk是个不错的选择,其实也可以更简单,安卓原生就提供了一个类处理这个事务。TextToSpeech无需集成,直接使用

局限

支持22种语言,不过中文支持并不很好,,emmmmmmm

系统要求为API 4 以上(android 1.6)不过现在应该不算问题了。

使用

直接转载了一个最简单的用法介绍原文

public class MainActivity extends AppCompatActivity  implements View.OnClickListener, TextToSpeech.OnInitListener {private Button speechBtn; // 按钮控制开始朗读private EditText speechTxt; // 需要朗读的内容private TextToSpeech textToSpeech; // TTS对象@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);speechBtn = (Button) findViewById(R.id.btn_read);speechBtn.setOnClickListener(this);speechTxt = (EditText) findViewById(R.id.editText);textToSpeech = new TextToSpeech(this, this); // 参数Context,TextToSpeech.OnInitListener}/*** 用来初始化TextToSpeech引擎* status:SUCCESS或ERROR这2个值* setLanguage设置语言,帮助文档里面写了有22种* TextToSpeech.LANG_MISSING_DATA:表示语言的数据丢失。* TextToSpeech.LANG_NOT_SUPPORTED:不支持*/@Overridepublic void onInit(int status) {if (status == TextToSpeech.SUCCESS) {int result = textToSpeech.setLanguage(Locale.CHINA);if (result == TextToSpeech.LANG_MISSING_DATA|| result == TextToSpeech.LANG_NOT_SUPPORTED) {Toast.makeText(this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();}}}@Overridepublic void onClick(View v) {if (textToSpeech != null && !textToSpeech.isSpeaking()) {// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规textToSpeech.setPitch(0.5f);//设定语速 ,默认1.0正常语速textToSpeech.setSpeechRate(1.5f);//朗读,注意这里三个参数的added in API level 4   四个参数的added in API level 21textToSpeech.speak(speechTxt.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);}}@Overrideprotected void onStop() {super.onStop();textToSpeech.stop(); // 不管是否正在朗读TTS都被打断textToSpeech.shutdown(); // 关闭,释放资源}
}

源码&原理

暂略,会用就好!

真想看 ???

官方TextToSpeech介绍,点击查看(需要翻墙!!!)

不会翻墙???

谷歌中国 点击进入,不过api搜索功能经常失效 axb

,不过顺便提一句,翻墙都不会,你真的该补补课了!

tts1tts2

一个TextToSpeech实例只能用于合成文本一旦完成初始化。实施texttospeech.oninitlistener被通知的初始化完成。当你使用完TextToSpeech实例,调用shutdown()方法释放的TextToSpeech发动机用本土资源。

更多介绍自己看API吧,就不獒述了!

ps

如果我的帖子对你有帮助,请不要吝啬点个赞哦!


http://chatgpt.dhexx.cn/article/Oncfkpaj.shtml

相关文章

Android TTS(TextToSpeech)实践

一、介绍 TextToSpeech:将文本合成语音,立即播放或创建声音文件。 最简单的流程如下: 1.创建TextToSpeech后,它会找到一个适合的Engine进行连接,然后回调onInit,如果status不为0,则没有找到引…

Android TextToSpeech实现文字转语音,进行播报

1. 下载讯飞语音引擎 2.初始化 TextToSpeech。 使用下面的构造函数进行初始化 TextToSpeech(android.content.Context context, android.speech.tts.TextToSpeech.OnInitListener listener, java.lang.String engine) 其中语音引擎的名称填写:com.iflytek.speec…

Android TextToSpeech简单使用

Android TextToSpeech简单使用 文章目录 Android TextToSpeech简单使用前言一、TTS是什么?二、使用步骤1.赋予相关权限2.初始化TTS3.使用 总结 前言 最近项目需要文字朗读内容,看了官方文档,简单记录一下 一、TTS是什么? TTS是T…

Android 离线文字转语音功能-TTS(Text To Speech)

前言 在 Android 中,TTS全称叫做 Text to Speech,从字面就能理解它解决的问题是什么,把文本转为语音服务,意思就是你输入一段文本信息,然后Android 系统可以把这段文字播报出来。这种应用场景目前比较多是在各种语音助…

使用TextToSpeech朗读文字

1.使用TextToSpeech将一段文字转换为语音 android也可以实现把输入的文字朗读出来,使用到的是TextToSpeech,将一段文字转换为成语音,可根据需要合成出不同音色、语速和语调的声音,让机器像人一样开口说话。 不过目前只支持5种语言…

Android通过TextToSpeech实现文字转语音

一、直接上代码: import android.app.Activity; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widge…

Android中TextToSpeech的使用

系列文章目录 Android中TextToSpeech的使用 文章目录 系列文章目录前言实现1.初始化语音。这是一个异步操作。初始化完成后调用oninitListener(第二个参数)。2.实现TextToSpeech.OnInitListener3.写一个朗读方法,在需要的时候触发(如:点击事…

微软文本转语音小工具(Text to speech)

软件下载地址失效了,推荐使用网页版。 网站地址:Text To Speech - 在线文本转语音 话说一直在用最新的基于Chromium的微软Edge浏览器,绝对是我认为的最好的替代谷歌浏览器的软件了,拓展商店、账号书签插件同步、各种人性化功能应有…

TextToSpeech文本转语音

目录 一、TextToSpeech类中的常用方法 二、使用例子 MainActivity: activity_main: 效果图: 一、TextToSpeech类中的常用方法 TextToSpeech是一个Android平台提供的文本转语音功能,可以将文字快速地转换为语音播放。 方法名称功能setLanguage(Loc…

wereew

rtyhtyhj u y uikuiok,

werwerttwt

8987878898998 fgdfgd dfgdfgd dfgddg 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编…

wewqe

前言 又是一年一度的“剁手节”,在女生购物车里装满了化妆品、包包、衣服、鞋子等等东西时,有类人的购物车里的东西画风十分清奇,不落俗套。 这类人穿着统一、爱好相似、有明显的群体特征,这就是程序员们。 通常双十一&#xff0c…

Weave

weave网络通信模型 weave通过在docker集群的每个主机上启动虚拟的路由器,将主机作为路由器,形成互联互通的网络拓扑,在此基础上,实现容器的跨主机通信。其主机网络拓扑参见下图:如上图所示,在每一个部署Do…

Web Worker

Web Worker Web Worker?Web Worker 基本使用主线程Worker线程 Web Worker的优势在哪? Web Worker? 我们都知道JavaScript是单线程的,至于为什么是单线程的,以下内容来源阮一峰前辈的文章 作为浏览器脚本语言,JavaScript的主要用途是与用户…

werw er

TOCerwr wer wer wer 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能…

whisper

Robust Speech Recognition via Large-Scale Weak Supervision 介绍 大规模弱监督的训练。先前的方法都是通过大量的无监督学习训练(无监督的数据容易收集,所以通过大量无监督的学习可以训练出一个质量较好的encoder)。但是用的时候还需要找…

2015WPE封包刷Q币图文教程

首先进入魔域小组官网 www.myxzg.pw 然后观看免费的视频教程 土豆网观看地址:http://www.tudou.com/listplay/2tXberN2LlM/-6FhCm1CMv0.html

WPE详细教程一

这里讲的WPEPRO的使用方法 一、打开WPE,选择进程client.exe,切换到游戏打一段话(如9个1),然后切出去按开始截取,切换到游戏反复粘贴刚才那复制好的9个1。 然后切出游戏按停止,就会出来一堆数字.其中找S包最简单的方法就是找位数相…

WPE详细教程

这里讲的WPEPRO的使用方法 一、打开WPE,选择进程client.exe,切换到游戏打一段话(如9个1),然后切出去按开始截取,切换到游戏反复粘贴刚才那复制好的9个1。 然后切出游戏按停止,就会出来一堆数字.其中找S包最简单的方法就是找位数相…