- 浏览: 349710 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (354)
- Flash | as3 (53)
- AIR | Starling (46)
- Android (55)
- Java (10)
- C++ (6)
- PHP (43)
- IOS (9)
- Unity3D (2)
- cocos2d-x (1)
- OpenGL (2)
- WebGL (3)
- Server (4)
- MemCache (13)
- MySql (2)
- NoSql (2)
- PhoneGap (13)
- jQuery | jQuery Mobile (14)
- javaScript | html5 | css3 (14)
- Linux (1)
- Box2D (2)
- SmartFox (1)
- Ruby (0)
- Python (2)
- Golang (11)
- Redis (1)
- 开源项目 (6)
- 游戏策划 (1)
- 云平台 (2)
- 项目管理 (6)
- 听见月光 (32)
最新评论
-
kenkao:
http://www.linuxidc.com/Linux/2 ...
解决idea编译时resources文件夹内容不自动复制到输出路径classes的问题 -
kenkao:
http://blog.csdn.net/yanwushu/a ...
解决idea编译时resources文件夹内容不自动复制到输出路径classes的问题 -
wpy126:
你这种比较根本不公平AppCan 用了多个页面,jqm内容都 ...
AppCan VS PhoneGap - 对比两大移动开发平台 -
kenkao:
zs12593 写道这个,这个
这里只是转载,建议看一下原文, ...
android游戏开发框架libgdx环境搭建 -
zs12593:
这个,这个
android游戏开发框架libgdx环境搭建
http://bbs.apkok.com/thread-1893-1-1.html
一、基础知识
TextToSpeech 简称TTS,称为语音合成,是Android 从1.6版本开始支持的新功能,能将所指定的文本转成不同语言音频输出。
在具体介绍前我们先来看下Adnroid系统带的TTS设置界面,点击Settings->Speech synthesis,如下图所示:
图 1 Android TTS设置界面
当点击“Listen to an example”时,会发出“ This is an example of speech synthesis in English. ”,如果没有安装 TTS Data的话可以点击第二项安装,在 Default settings 可以设置 Speech rate 和 Language ,如下图 2 所示可以知道 TTS 支持的语言。
图2 TTS 语言选择
如果勾选“Always use my settings ”时要注意,设置了这个选项后那么我们就不能在程序中对 speech rate 和 Languages 进行设置了,这里的设置回覆盖我们程序中的设置。
TTS功能需要有TTS Engine的支持,下面我们就来了解下android提供的TTS Engine。
Android使用了叫Pico的支持多种语言的语音合成引擎,Pico在后台负责把分析输入的文本,把分本分成他能识别的各个片段,再把合成的各个语音片段以听起来比较自然的方式连接在一起,这个过程Android系统帮我们做,我们只把他当做一个神奇的过程就可以了。
TTS engine依托于当前 Android Platform 所支持的几种主要的语言: English 、 French 、 German 、 Italian 和 Spanish 五大语言 (暂时也是没有对中文提供支持)。 TTS可以将文本随意的转换成以上任意五种语言的语音输出。与此同时,对于个别的语言版本将取决于不同的时区,例如:对于 English ,在 TTS 中可以分别输出美式和英式两种不同的版本 。
Java文件的编写: 接着定义好下面要用到的几个变量: 虽然安装Android1.6版本及之后的Android机器都默认安装了TTS引擎,但某些设备可能会因为存储容量的限制而缺少安装和语言对应的资源文件,因此在使用TTS前,得先要检查是否安装了TTS语言数据,在onCreate函数中添加以下内容: 这里启动一个新的Intent去检查TTS数据是否已经安装,我们根据其返回的结果进行处理,如下所示: 如果返回CHECK_VOICE_DATA_PASS表示检查成功,可以新建一个 TextToSpeech ,否则就去下载 TTS数据。 在这个回调函数里,我们设置语言,然后就可以进行使用 TTS引擎进行操作了。 最后,在onCreate函数中设置 EditText和Button的使用: 至此,我们的 Demo就完成了,当启动程序后,首先会朗读“ This is an example of speech synthesis in English. ”,然后你在EditText中输入内容,点击Speak按钮就能把内容给朗读出来。 http://blog.csdn.net/ichliebephone/article/details/6373184 一. 基础知识 Android 从1.6 版本开始支持Text To Speech ,使用的是Pico 语音合成引擎,但是只支持 English 、 French 、 German 、 Italian 和 Spanish 五大语言,暂时没有对中文提供支持。因此使用 Android 默认的 TTS Engine 是没法朗读中文的。 不过有开源项目 eyes-free ( http://code.google.com/p/eyes-free/ , Android 上的 TTS 功能应该也是基于这个开源项目提供的)除了提供 Pico 外,还把支持其他更多语言语音合成的另一个 TTS 引擎 eSpeak 也移植到了 Android 平台,其中就支持中文的语音合成。 因此在安装了 eyes-free 提供的 TTS Service Extended 的 apk 后,就可以在程序中使用 eyes-free 提供的 TTS library ,并把 TTS Engine 设置为不是默认的 Pico ,而是 eSpeak ,就可以实现朗读中文了。不过经过测试,实际的效果还是很差的,只能说勉强可以朗读而已。 二. 实例分析 下面我们就通过一个具体的例子来说明朗读中文的实现过程。 希望实现的效果和之前的类似:
图 1 实现效果图 上面一个输入框,点击 “我说” 按钮则朗读上面的文字内容。 首先我们要到 eyes-free 那下载需要的 TTS library 的 jar 包 (http://code.google.com/p/eyes-free/downloads/detail?name=TTS_library_stub_3.0_market.jar&can=2&q=) 。 创建一个 Android 工程,工程名为 NiHaoTTS ,并且把下载的 jar 包放在 assets 文件夹下。右键点击工程,选择 properties , Java Build Path , Libraries , Add JARs, 往工程中添加进 assets 下的 jar 包 , 如下图所示:
图2 添加 TTS library jar 包 其中 main.xml 文件很简单,如下所示:
Java 文件的编写: Java 文件和之前的类似,只是因为使用了 eyes-free 的 TTS API ,而不是 Android 自带的 TTS API ,因此有些许改变。相关的 API 参考: http://eyes-free.googlecode.com/svn/trunk/documentation/tts/com/google/tts/package-summary.html ,其中我们可以看到基本和 Android 的 API ()类似,其中一个明显的区别是创建 TTS 对象这里使用的是 TextToSpeechBeta ,而之前我们使用的是 TextToSpeech 。 Java 完整的代码为:
基本和我们之前学过的类似,其中不同的地方有: ( 1 ) TTS 的初始化回调函数多了一个版本号参数 version, public void onInit( int status, int version) , 如果返回的版本号 version 等于 -1 ,则表明还没有安装 eyes-free 提供的 TTS Service Extended ,提示进行下载和安装。 // 提示安装所需的 TTS 数据 alertInstallEyesFreeTTSData(); 主要就是弹出对话框进行提示,然后链接到 eyes-free 的网站进行下载对应的 apk 。 // 弹出对话框提示安装所需的 TTS 数据 private void alertInstallEyesFreeTTSData() { Builder alertInstall = new AlertDialog.Builder( this ) .setTitle( " 缺少需要的语音包 " ) .setMessage( " 下载安装缺少的语音包 " ) .setPositiveButton( " 确定 " , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub // 下载 eyes-free 的语音数据包 String ttsDataUrl = "http://eyes-free.googlecode.com/files/tts_3.1_market.apk" ; Uri ttsDataUri = Uri.parse (ttsDataUrl); Intent ttsIntent = new Intent(Intent. ACTION_VIEW , ttsDataUri); startActivity(ttsIntent); } }) .setNegativeButton( " 取消 " , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub finish(); } }); alertInstall.create().show(); } 下载完进行安装,然后重新启动程序就可以运行。 ( 2 )如果已经安装了,则可以进设置 TTS 引擎和需要合成的语言。 // 设置 TTS 引擎, com.google.tts 即 eSpeak 支持的语言包含中文,使用 Android 系统默认的 pico 可以设置为 com.svox.pico mTTS .setEngineByPackageNameExtended( "com.google.tts" ); int result = mTTS .setLanguage(Locale. CHINA ); // 设置发音语言 其中如果设置为 com.google.tts 则表示使用 eSpeak 引擎,其包括对中文语音合成的支持。如果设置为 com.svox.pico 则表示使用 Pico 引擎,实际效果就是使用 Android 自带的 Pico 的效果,不过只支持 5 中语言,不支持中文。 除了这两块,其他和我们之前的程序基本一样。 然后就可以运行程序。因为模拟器开始时没有安装需要的 eyes-free 的 TTS Service Extended 的 apk ,因此会弹出提示对话框,点击确定开始下载,下载完进行安装,如下图所示。 图3 安装eyes-free的TTS 安装完会在应用程序中看到对应的图标,并且在 TTS 的设置中也会增加 eSpeak TTS 一项,如下图所示: 图4 安装了eyes-free的TTS 安装完后就可以再次打开 NiHaoTTS 程序,这时会有个选择询问使用哪个 TTS ,选择第二项,然后就可以在输入框中输入中文来朗读了。 图5 选择TTS 不过经过简单测试就知道了,中文朗读的效果基本没法实际使用的。 文章对应的完整代码例子可以在这里下载: http://download.csdn.net/source/3237373 http://download.csdn.net/download/leiwuluan/3894785
二. 实例分析
下面我们先做一个具体的实例来亲自体会一下Android的TTS的效果。
我们做一个简单的输入英文句子然后朗读出来的例子,了解Android的TTS使用方法。
在具体做之前给个AndroidTTS的API的链接,
http://androidappdocs.appspot.com/reference/android/speech/tts/package-summary.html
可以先看下大概了解TTS提供的功能。
图3 Android TTS API
可以看到TTS提供了两个接口和两个类。
我们希望做的效果如下:
图4 实现效果图
上面一个输入框,点击Speak按钮则朗读上面的文字内容。
创建一个Android工程,工程名为AndroidTTSDemoFirst,其中SDK必须选择1.6版本及以上。
其中Main.xml文件很简单,如下所示:
要使用TTS得实现OnInitListener接口
当TTS数据检测成功创建一个TextToSpeech后,就会调用接口OnInitListener中定义的回调函数
创建一个TextToSpeech是需要占用资源的,因此我们要适时的释放这个资源:
文章对应的完整代码例子可以在这里下载:http://download.csdn.net/source/2610740
- NiHaoTTS.zip (260.9 KB)
- 下载次数: 4
发表评论
-
android.os.NetworkOnMainThreadException 异常处理
2015-03-13 16:19 522http://www.cnblogs.com/freexia ... -
Android 访问权限设置
2015-03-13 16:19 442Android开发应用程序时,如果应用程序需要访问网络权限, ... -
Android 获取唯一机器码的代码
2015-03-13 16:18 1179做应用时很多时候都得获取到每个设备的机器码 Secu ... -
获取android手机基本信息
2015-03-13 14:03 661http://zdpeng.iteye.com/blog/1 ... -
java发送http的get、post请求
2015-03-13 13:59 590http://www.cnblogs.com/zhuawa ... -
浅析android应用增量升级
2015-01-06 10:31 623http://blog.csdn.net/hmg25/ ... -
Android App应用包增量升级(one)
2015-01-06 10:29 1064http://kinggoo.com/bsdiffupdat ... -
Android 增量更新实例(Smart App Updates)
2015-01-06 10:28 612http://892848153.iteye.com/blo ... -
常用的android弹出对话框
2014-04-15 09:34 537http://blog.csdn.net/wei_ge163 ... -
Android滑动手势侦测方法介绍
2013-07-06 17:19 794http://developer.51cto.com/art ... -
Android开发工具之DDMS
2013-06-24 13:52 873http://www.cnblogs.com/jerrych ... -
Android 程序自动更新功能模块实现
2013-06-20 11:42 934Android 程序自动更新功能模块实现 在程 ... -
Android之远程图片获取和本地缓存
2013-06-15 07:11 725http://www.cnblogs.com/top5 ... -
Android 利用缓存机制实现文件下载
2013-06-15 07:08 1410http://www.cctime.com/html/20 ... -
Android学习系列--App缓存管理
2013-06-15 06:58 584http://www.cnblogs.com/qianxud ... -
Android中Bitmap缓存池
2013-06-12 22:28 695http://mobile.51cto.com/andr ... -
android之调用webservice实现图片上传
2013-03-24 11:41 1088http://www.cnblogs.com/top5/ar ... -
Android中的Selector的用法
2013-03-21 15:44 639作者原文地址:http://blog.csdn.net/s ... -
Android中的Binder机制
2013-03-20 19:21 791来自:http://www.cnblogs.com/inno ... -
Android中的Handler机制
2013-03-20 19:17 640来自: http://www.cnblogs.com/ke ...
相关推荐
Android TTS(Text-to-Speech)系统是Android操作系统中的一个重要组成部分,它允许应用程序将文本转换为可听见的语音输出,从而实现文字的语音合成。在Android应用开发中,TTS功能广泛应用于各种场景,如阅读电子书...
在Android平台上,Text-to-Speech (TTS) 是一种技术,它允许系统将文本转换为自然语言的语音输出。这个“android TTS语音引擎包”集合了多种知名的TTS引擎,包括度秘3.0、谷歌语音合成、科大讯飞3.0和5.0版本,这些...
Android TTS(Text-to-Speech)是Android操作系统中的一项服务,允许应用程序将文本转换成语音输出,用户无需手动输入即可听取设备读出的文字内容。这个技术对于视力障碍者、学习新语言的人或者在驾驶等不便看屏幕的...
google android tts apk安装后,系统-设置-语言和输入法选择该TTS服务,可实现中文文字转语音
Android TTS(Text-to-Speech)是Android系统提供的一个核心功能,它允许应用程序将文本转换为语音输出。这个功能在很多场景下非常有用,比如帮助视力障碍用户阅读屏幕上的文字,或者在驾驶时提供导航指引。本文将...
android在1.6就支持了tts,但是由于很多手机都选择将这个支持库给阉掉了,导致手机不支持tts,其实只要装一个这个tts库就可以,普通的apk,普通的安装,对,支持tts就是这么简单。
Android TTS(Text-to-Speech)是Android系统中用于将文本转换为...通过学习和理解这些知识点,开发者可以构建自己的Android应用,使应用具备朗读文本的能力,从而提升用户体验,特别是在阅读、教育或无障碍功能方面。
Android TTS实现简单阅读器是开发者利用此技术构建的一个应用示例,旨在帮助用户理解如何在Android应用程序中集成TTS,以便为用户提供读出屏幕上的文字信息的能力。以下将详细介绍Android TTS的工作原理、实现步骤...
某些场景下,部分安卓设备并没有自带安装Google TTS服务,若是从商店下载应用后,需要翻墙下载语言包,为了跨过这个翻墙的闹心事,通过两天的收集,现将已收集到的中文语言包分享给大家,其中也有其他语种的,可自行...
在Android开发中,Text-to-Speech (TTS) 技术是将文本转换为语音输出的重要功能,尤其适用于辅助视力障碍者或者在驾驶等不便查看屏幕的场景。本主题聚焦于如何在Android Studio中实现离线中文语音播放,支持男声和...
android tts 语音包 apk
在Android应用中集成这样的库,开发者可以确保他们的应用在各种设备上都能提供一致的TTS体验,即使用户的设备没有内置支持中文的TTS引擎。 "标签"中的“TTS_library_”暗示了这个jar文件可能是一个完整的TTS库,...
总的来说,Android中文语音TTS技术为开发者提供了强大的工具,使应用程序能够以自然、流畅的方式读出文本,极大地增强了用户体验。结合三星的中文语音引擎,开发者可以创建出高效、人性化的语音阅读应用,尤其适用于...
标题中的“tts.rar_TTS java_android TTS_google GetSampleText_tts android_中”表明这是一个关于Android平台上的文本转语音(Text-to-Speech,简称TTS)技术的压缩包,涉及Java编程语言,可能包含了Google的TTS...
《科大讯飞Android离线TTS技术详解》 在移动设备上,Text-to-Speech(TTS)技术被广泛应用于各种应用场景,如导航、阅读、教育等,它能够将文字信息转化为语音输出,极大地提升了用户体验。科大讯飞作为国内领先的...
通过TTS可实现离线文字转语音,四款语音引擎总有一种适合你的,赶快下载吧!已经在项目中真正也用到了,很好用,毕竟系统TTS不一定支持中文,而这四款均支持中文
在Android平台上,文本转语音(Text-to-Speech, 简称TTS)技术是一种将文字转换成可听见的语音输出的功能。对于粤语发音的TTS系统,它允许开发者为应用程序添加粤语语言的支持,使得用户能够听到用粤语读出的文字...
在实际开发中,为了提高用户体验,可以考虑添加引擎选择功能,并根据用户的选择动态配置TTS引擎。 最后,由于TTS服务需要网络权限,因此在AndroidManifest.xml中添加了`<uses-permission android:name="android....
Android TTS(Text-to-Speech)是Android系统提供的一个服务,允许应用程序将文本转换为语音输出,从而实现让设备“朗读”文本的功能。在Android应用开发中,TTS技术常用于帮助视障用户或者在驾驶、烹饪等不便查看...
在Android平台上,Text-to-Speech(TTS)技术是一种将文本转换为语音输出的功能,它使得应用程序能够“读出”屏幕上的文字,这对于视力障碍的用户或者在不方便阅读时非常有用。本项目“基于Android的TTs”显然是一个...