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

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

前言

很多时候我们会碰到文字转语音的需求,使用第三方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对象
    @Override
    public 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:不支持
     */
    @Override
    public 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();
            }
        }
    }
    @Override
    public 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 21
            textToSpeech.speak(speechTxt.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
        }
    }
    @Override
    protected void onStop() {
        super.onStop();
        textToSpeech.stop(); // 不管是否正在朗读TTS都被打断
        textToSpeech.shutdown(); // 关闭,释放资源
    }
}

源码&原理

暂略,会用就好!

真想看 ???

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

不会翻墙???

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

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

tts1tts2

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

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

ps

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

TextToSpeech类学习和简单封装 业务涉及到对接TTS相关,所以简单学习下如何使用。我们翻译一下:从文本中合成语音,以便立即播放或创建声音文件。TextToSpeech 实例只能在完成初始化后用于合成文本。实现 TextToSpeech.OnInitListener 以通知初始化完成。当您使用完TextToSpeech实例时,请调用shutdown()方法以释放TextToSpeech引擎使用的本机资源。使用文本到语音的应用程序的目标Android 11应声明TextToSpeech。然后要在清单文件做以下申明。 阅读详情

相关推荐

直面原理:5 张图彻底了解 Android TextToSpeech 机制

关于语音方面的交互,Android SDK 提供了用于语音交互的机制、语音识别的接口、语音播报的 TTS 接口。前者已经介绍过,本次主要聊聊第 3 块即 TTS,后续会分析下第 2 块即 Android 标准的 Recognition 机制。通过机制,任意 App 都可以方便地采用系统内置或第三方提供的 TTS Engine 进行播放铃声提示、语音提示的请求,Engine 可以由系统选择默认的 provider 来执行操作,也可由 App 具体指定偏好的目标 Engine 来完成。

allisonchen的专栏 3426

功能实现——文字语音(TTS)

实现文字语音功能的各种方法

hylan的博客 4650

2018 Android 文字语音(中文) TextToSpeech+科大讯飞语音引擎3.0

最近项目中需要用到文字语音。 本来是想使用朗读女生成的声音文件放到项目资源中进行播放。 但是产品要求改成动态的。于是就用了Google为我们封装好的类TTS,即TextToSpeech:大家可以看下详细文档。 代码其实不多,但是写完之后测试就有问题,没声音,,,,看了之后才知道谷歌这个官方api不支持中文。。很Tmd. 给大家科普下: 文字语音的引擎: com.svox...

人生只是一种体验,不必用来演绎完美。 2万+

API解析】微软文本语音(text-to-speech)官方Demo调用步骤

API解析】微软文本语音(text-to-speech)官方Demo调用步骤,白嫖官方的API

empy的博客 1万+

语音合成TTS(Text-To-Speech,从文本到语音

以上内容,来自饭团“AI产品经理大本营”,点击这里可关注:http://fantuan.guokr.net/groups/219/作者:黄钊,5年AI实战经验(图灵机器人),8年互联网背景(前腾讯QQ产品经理),微信公众号/知乎/在行/饭团ID“hanniman”,持续3年分享人工智能相关原创干货,关注者1.2万+,200页PPT《人工智能产品经理的新起点》被业内广泛好评,下载量1w+。一、核心概念

ZLJ925的博客 2万+

Android文字语音TextToSpeech)内存泄漏的问题

近期在项目中使用文字语音遇到一个小问题。项目中是在service中持有一个 TextToSpeech对象,通过messenger与service通信进行文字语音的操作。但是每次推出应用不久就出出现内存泄漏的问题,如下:Service com.lucis.workout.service.PrivateSoundService has leaked ServiceConnection androi...

zy的博客 4277

使用androidTextToSpeech控件实现文字语音

近期项目中用到语音文字,原本打算使用第三方sdk,后来发现安卓原生就提供了一个类处理这个事务。TextToSpeech无需集成,使用起来也更简单,在这里记录一下 TextToSpeech,这个控件的好处是朗读文字不需要任何的权限,其次不用联网避免了如讯飞的联网登权限(讯飞其实也不错,比较智能,缺点是该控件只能读取简单文字) 使用: 布局: <EditText ...

hanxiongwei的博客 1313

TextToSpeech文字语音文字音频文件并播放

TextToSpeech文字语音文字音频文件并播放 前段时间遇到了语音读网页的需求,特地在网上找了一些资料。学习完毕后跟大家分享一下。这里是我从项目中抽取出来的代码,大家应该也基本能看清楚流程了。上代码 首先是文字语音及文件的工具类 import android.content.Context; import android.speech.tts.TextToSpeech; import ...

zz410674802的博客 2951

Android通过TextToSpeech实现文字语音

3、播放的声音可在手机:设置->语言与输入法->文字语音(TTS)输出 中进行设置,或安装其他平台语音识别模块并在此配置。二、效果:输入‘中文’点击按钮发音。三、Android高版本兼容。

走马川行雪的博客 5773

Android文字语音

虽然视觉上的反馈通常是给用户提供信息最快的方式,但这要求用户把注意力设备上。当用户不能查看设备时,则需要一些其他通信的方法。Android提供了强大的文字语音Text-to-Speech,TTS API。使开发者能够在应用中添加语音通知和其他语音反馈功能,而不要求用户看着屏幕。 下面的代码展示了如何使用TTS API: public class TextToSpeechDemo impl

李元静 1万+

Android TTS文本语音TextToSpeech

Android 提供了(TTS)API,允许开发者将文本换为语音。以下是对 Android TTS 文本语音功能的详细介绍,包括基本用法、配置、事件处理和一些高级功能。

qqsgcyd的博客 3002

Android 系统TTS(文字语音解析

小玩TTS

Mahjong的博客 1838

文字化为语音AndroidTextToSpeech类的简单使用

TTS(从文本到语音(TextToSpeech)) TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。 它是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经网络的设计,把文字智能地化为自然语音流。TTS技术对文本文件进行实时换,换时间之短可以秒计算。在其特有智能语音控制器作用下,文本输出的语音音律流畅,使得听者在听取信息时感觉自然,毫无机器语音输出的冷漠与生涩感。TTS语音合成技术 [1] 即将覆盖国标一、二级汉字,具有英文接口,自

hdhhd的博客 1688

android简单TextToSpeech控件实现语音播报(朗读文字

TextToSpeech实现播报 android有自带语音播报功能,比较简单,这里只做一个朗读文字功能。 JAVA代码如下: 应用前需添加 import android.speech.tts.TextToSpeech; public class MainActivity extends AppCompatActivity { private TextToSpeech tts;//创建语音对象 @Override protected void onCreate(Bundle saved

小黑的博客 4403

Android 应用:使用 TextToSpeech 实现文字语音

在本文中,我们详细介绍了如何在 Android 应用中使用 TextToSpeech,并提供了相应的源代码。以上就是使用 TextToSpeech 实现文字语音Android 应用的详细步骤和源代码。在 Android 应用开发中,TextToSpeech 是一个功能强大的工具,它可以将文字换为语音。本文将介绍如何使用 TextToSpeech 实现文字语音的功能,并提供相应的源代码。下面是一个完整的示例代码,演示如何使用 TextToSpeech 实现文字语音的功能。三、添加权限和依赖项。

PixelDyno的博客 1763

Android实现TTS文字语音功能

这次给大家介绍一个Android自带的功能——TTS文字语音,即将输入的文字以音频的形式朗读或存储成为文件。使用的是Android自带的TextToSpeech类,话不多说,正文开始

qq_40785165的博客 1万+

Android使用TextToSpeech(TTS)实现文字语音合成播放

一、目前安卓平台的文字语音有两种方案 1、百度、讯飞等sdk 优点:声音丰富,不需其他插件 缺点:收费,导入调用麻烦,增加apk体积 2、TextToSpeech 优点:免费,调用方便,几行代码即可,无需导sdk 缺点:声音单一,需要安装引擎...

l_liuhaobaba的博客 4739

Android TTS 英文或中文(要下载中文支持包)语音 使用TextToSpeech

语音朗读,这是一个很好的功能,可以实现一些客户的特殊要求。在Android 实现主要功能只需要几段简单的代码即可完成。 在Android中使用语音朗读功能只需要使用此类 TextToSpeech,其中可以设置使用的语言,此类提供setLanduage(Locale.语言类型) public class MainActivity extends Activity { p

无论何时都不要停止学习,这是改变自己的必要条件 1万+

Android中提供的免费文字语音功能TextToSpeech之快速入门用法Android TTS 语音合成播报)

简要介绍 TextToSpeech简称 TTS,是Android 1.6版本中比较重要的新功能。将所指定的文本成不同语言音频输出。它可以方便的嵌入到游戏或者应用程序中,增强用户体验。 TTS engine依托于当前AndroidPlatform所支持的几种主要的语言:English、French、German、Italian和Spanish五大语言(暂时没有我们伟大的中文,至少Google的科学...

代码讲故事 7388
上一篇: MVPPlugin插件之混淆踩坑记录
下一篇: ButterKnife之@OnTouch——界面交互效果进阶
github_36217929
博客等级 码龄10年 36粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值