Android自带类实现语音合成

今天在坑里蹲了半天,然后发现了一个神奇的类

上午老大给了一个任务:App原来是中文版的,里边有语音播报功能,最近在搞英文版,所以需要把这个中文的语音播报搞成英文的,由于老大事比较多,所以这个问题就交给我来解决了。其实场景很简单,就是把播报的内容翻译成英文,然后在需要播放的时候让它播放就行.这里用到技术就是传说中的TTS---Text To Speech了。那为什么说我在坑里蹲了半天呢?

从这里开始,我就要入坑了。

说到语音技术,大部分开发者最先想到的就是科大讯飞,百度语音这些吧,毕竟这几个第三方的语音技术做的非常完善。我也不例外,因为之前有同事用过,而且给我说过讯飞的比较好,所以我直接就去讯飞官网看相关文档了。果不其然,这种简单的文本转语音的技术,讯飞肯定支持了,于是我满心欢喜的照着文档,下载下来sdk,一步一步集成到项目里,最后运行,哇靠,播放成功了!噢耶!老大布置的任务完成了!哈哈哈哈哈哈!!!!!

稍安勿躁,少侠,你已经入坑了.

语音播报这个功能,正常场景中,无论是有网还是无网情况,都能使用,也就是说要求可以离线使用,但是在第三中,讯飞的离线语音合成收费,而且,还不便宜,有兴趣的可以去看下。这里放个基础包的价格,大家感受下:

屏幕快照 2016-12-09 下午10.20.25.png

至于百度语音合成,虽然离线是免费的,但是集成它需要增大apk包的体积不小,而且体验感觉也不是很好。由于条件限制,收费的用不了,免费的集成后apk体积增加太大,也不能用。

开始爬坑

怎么办呢怎么办呢,这个时候,只能说天无绝人之路,让我发现了一个类,而且是android自带的类,它可以很好的支持英文的语音合成,这个类就是TextToSpeech。官方文档是这样描述这个类的:从文本中合成语音,用于立即播放或创建一个声音文件。具体描述传送门: https://developer.android.google.cn/reference/android/speech/tts/TextToSpeech.html 重要的是:这个类在Android 1.6版本中就有了,惭愧的是我今天才知道。具体的用法这里不多做介绍。

简单的封装了一个工具类,传入要播放的字符串可以实现播放了-https://github.com/SolveBugs/Utils

屏幕快照 2016-12-09 下午10.47.22.png

写这篇文章的目的

Android自带的类中,有很多非常有用的类等待我们去发掘,在平常的工作中我们应该多积累,多整理,好多看起来不常见的需求,其实android本身就支持的很好了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

腾讯微信技术总监周颢:一亿用户增长背后的架构秘密

http://www.csdn.net/article/2012-05-15/2805581

1372
来自专栏Android 开发者

[译] 更好的数据,更明智的决策:Google Play Console 和 Firebase 帮你分析你的用户

作者:Tom Grinsted(Google Play Console 的产品经理)和 Tamzin Taylor(Google Play 西欧区应用及游戏部主...

2022
来自专栏程序员互动联盟

微信为啥能同时支持这么多人在线?

微信——腾讯战略级产品,创造移动互联网增速记录,10个月5000万手机用户,433天之内完成用户数从零到一亿的增长过程,千万级用户同时在线,摇一摇每天次数过亿....

4934
来自专栏ytkah

微信阅读数和点赞数怎么算

  微信公众号文章公开了阅读数和点赞数,那它们是怎么算出来的呢?昨天测试了一下用pc端浏览器打开刷新多次,然后再用手机端看数字有没变化,结果貌似不行,看来微信团...

4286
来自专栏Java架构

架构的演进, 阿里资深Java工程师表述架构的腐化之谜

2085
来自专栏叁金大数据

数据库和数据仓库你应该知道的

Hive作为Hadoop生态圈重要的一员已经被我们所熟知,它作为一个基于Hadoop的数据仓库工具,用来做离线的数据分析工作。那么什么是数据仓库,它与我们经常使...

1382
来自专栏极乐技术社区

干货 | 小程序商城开发必读指南!

商城开发指南 ? ? 微信小程序商城模块 | 链接 使用zanui开发小程序微商城(模板组件的开发规范)| 链接 ecshop商城开发:用户信息的获取和缓存...

1.1K5
来自专栏互联网数据官iCDO

Facebook广告的15种优化方法

译者:吕东昊 审校:董梁 本文长度为4359字,预估阅读时间8分钟。 我们今天要向大家介绍的是Facebook广告的15种优化方法 Facebook广告对您来...

6614
来自专栏Golang语言社区

如何让服务器从30台缩减到2台的:从Ruby迁移到Go语言

我们开发第一版的IronWorker已经是3年前的事了,是用Ruby写的,API基于Rails开发。我们没用多久就发展成了相当大的规模,很快我们就触及到了Rub...

39515
来自专栏跨界架构师

[译文]Domain Driven Design Reference(五)—— 为战略设计的上下文映射

  两个组之间的关系是“上游”小组的行为影响“下游”小组的项目成功。但下游的行为并不会显著影响上游项目。(例如,如果两个城市沿着同一条河流,上游城市的污染主要影...

742

扫码关注云+社区

领取腾讯云代金券