计算机软件工程专业毕业论文

时间:2024.4.20

编号:

本科毕业设计(论文)

基于Android平台的语音朗读器

Speech Reader based Android platform

下属学院 科技学院 专 业 软件工程 班 级 07软件工程 学 号 074173205 姓 名 XXX 指导教师 XXX 职称 讲师

完成日期 201 1 年 5 月 10 日

诚 信 承 诺

我谨在此承诺:本人所写的毕业论文《基于Android平台的语音朗读器》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。

承诺人(签名):

年 月 日

I

摘 要

【摘要】本系统以移动手机语音应用的高速发展为背景提出,采用Android平台架构完成。本文对语音朗读器中所涉及相关技术进行了介绍,并在此基础上提出了语音朗读器中相应的解决策略。同时通过对语音朗读器的需求分析,对系统各个功能模块进行了设计,并实现了相关技术和算法在系统中的应用。由于条件的限制,本文主要阐述了系统的语音朗读、语音短信、语音识别的功能。最后,本文指出了该系统已改进的一些问题与解决方法及步骤,以及已发现但未解决的问题及描述。系统采用Android平台开发技术,采用Eclipse作为系统开发工具。

【关键词】Android; Eclipse;语音朗读。

- II -

Abstract

【ABSTRACT】The voice application system to the rapid development of mobile phones made for the background, complete with Android platform architecture. This article introduces the technologies which are referred to the voice application, and bring forward corresponding measures in the voice application system. Through the requirement analysis of the programming forum system, it designs each functional modules of the system and achieves the technology and algorithms of the system. As the limitations, this article described the speech、message SMS、Speech Recognition. Finally, the article points out some problems which has been resolved and the Solutions and steps of these problems, and some other problems which has not been resolved. System uses the Android platform technology, and using Eclipse as the development tool.

【KEYWORDS】Android ; Eclipse;Speech.

III

目 录

1绪论............................................................................................................................................... 1

1.1引言 .................................................................................................................................... 1

1.1.1嵌入式系统特点 .................................................................................................... 1

1.1.2手机应用软件特点 ................................................................................................ 1

1.2课题意义 ............................................................................................................................ 1

1.3开发背景 ............................................................................................................................ 2

1.4研究方向和实现 ................................................................................................................ 2

2系统开发相关技术 ....................................................................................................................... 4

2.1 Android平台架构 .............................................................................................................. 4

2.2 Eclipse及ADT介绍 ......................................................................................................... 6

2.3第三方语音库TTS选择 ................................................................................................... 6

2.4 STT语音识别的引擎选择 ................................................................................................ 7

2.5 Android 样式主题 ............................................................................................................. 7

3系统需求分析 ............................................................................................................................... 8

3.1需求分析解决的主要问题 ................................................................................................ 8

3.2系统功能需求 .................................................................................................................... 8

3.2.1语音朗读 .................................................................................................................. 8

3.2.2语音短信 .................................................................................................................. 8

3.2.3语音识别 .................................................................................................................. 8

3.3用户界面需求 .................................................................................................................... 9

3.4系统运行环境 .................................................................................................................... 9

4系统的设计和实现 ..................................................................................................................... 10

4.1基本简介 .......................................................................................................................... 10

4.2系统结构图 ...................................................................................................................... 10

4.3概要设计 .......................................................................................................................... 10

4.3.1各功能模块设计 .................................................................................................... 10

4.4系统具体实现 ................................................................................................................... 11

4.5碰到的难点 ...................................................................................................................... 15

5系统测试 ..................................................................................................................................... 16

5.1系统错误 .......................................................................................................................... 16

5.1.1加载布局XML无效 ............................................................................................. 16

5.1.2短信截断无效 ........................................................................................................ 16

5.1.3语音识别中文无效 ................................................................................................ 16

5.1.4系统资源找不到 .................................................................................................... 17

5.1.5短信服务截取消息传送问题 ................................................................................ 17

5.2系统优化 .......................................................................................................................... 17

5.2.1 XML布局优化 ...................................................................................................... 17

5.2.2代码提示String修改优化 .................................................................................... 18

6总结与展望 ................................................................................................................................. 19

6.1论文总结 .......................................................................................................................... 19

6.2研究展望 .......................................................................................................................... 19

- IV -

参考文献 ........................................................................................................................................ 21

致谢................................................................................................................................................ 22

附录................................................................................................................................................ 23

V

1绪论

1.1引言

1.1.1嵌入式系统特点

嵌入式系统是计算机的一种应用形式,通常指埋藏在宿主设备中的微处理机系统。嵌入式最大的优点就是简洁,程序不会太过臃肿,开发较快,功能强大又互不相同,都具有实时性强、结构紧凑、可靠性高和面向对象等共同特点。

嵌入式系统通常由硬件和软件两部分组成。嵌入系统与通用计算机系统相比有五个明显的特征专用性、可封装性、外来性、实时性、可靠性。

1.1.2手机应用软件特点

针对手机应用的开发者来说,开发一个手机应用与开发桌面计算机应用在语法上没有太大的差别,它们具有相同的表达式、运算符、操作符和相同程序流程控制方法。只是手机的应用程序开发平台针对手机的特性定义了一系列的应用开发框架以适应对应的硬件开发平台,而由于硬件性能环境的关系,这些框架大多都是桌面应用开发框架的一个子集。

作为手持设备的一种,手机之所以能够时时刻刻伴随着人们的生活,其最重要的特征就是便携性。也正是因为手机体积小,重量轻,还支持网络应用,能方便人们不受地域和空间的限制进行沟通交流,所以它拥有大量的客户群体,手机应用的潜在用户群体比桌面平台更为巨大。

1.2课题意义

近年来,我国嵌入式系统市场快速增长。到目前为止,嵌入式产品主要分布在消费类电子、通信、医疗、安全等行业。其中在消费类电子领域占最大的市场份额。移动多媒体、数字娱乐、手机终端、汽车电子成为嵌入式系统应用市场的发展重点,尤其针对手机、便携式多媒体设备、家庭娱乐应用的音视频产品和解决方案增长潜力最大。目前应用在手机上的操作系统主要有PalmOS、Symbian、Windows Mobile、Android、iPhoneOS、黑莓七种。而对于本课题而言解决了一部分用户在现实存在的语音朗读需求。

嵌入式产品的应用无处不在,语音技术的加入让嵌入式产品能“听”会“说”,变得更

- 1 -

基于Android平台的语音朗读器

加智能和方便。特别是嵌入式产品体积受限,“看”屏幕信息不方便,利用语音技术“听”信息和语音命令操作机器,将嵌入式产品的便携性和实用性完美的结合起来。典型的应用环境包括以手机为代表的移动通信环境、以GPS导航为代表的汽车环境和以MP3/MP4、学习机为代表的随身电子数码娱乐环境。而随着中国手机、汽车和数码电子等市场的快速发展,嵌入式语音产品市场必将在最近几年呈现出爆发式增长。

1.3开发背景

计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。Android 进一步推进了"随时随地为每个人提供信息"这一企业目标的实现。Open Handset Alliance 汇集了多家业界巨头。运营商如:China Mobile、NTT DoCoMo、Vodafone、T-Mobile等;设备制造商如ASUS、HTC、Huawei、LG、Motorola、Samsung、Sony Ericsson、Toshiba 等;芯片厂商如ARM、Broadcom、Intel、Marvell、NVIDIA、Qualcomm 等。软件厂商如Ascender、eBay、Esmertec、LivingImage等。Android 更像一款桌面环境为Java 的Linux 操作系统。有助于Google 实现其"随时随地为每个人提供信息"的企业战略。

随着移动嵌入式的飞速发展,智能手机的更新换代,Android以其特有的技术优势,占据了在智能手机操作系统的一定市场份额,并且逐渐被人们所认识和接受。但熟悉

Android应用程序的软件开发者为数不多,因此Android应用程序的开发拥有广阔的前景。基于Android系统的语言朗读设计与实现,能够帮助我们理解Android应用程序的开发过程。包括Android系统架构、开发环境搭建、JNI编程、熟悉SDK文档以及开源语音库的了解。

1.4研究方向和实现

本课题基于Android平台开发出一个手机语音朗读软件,能够流利的朗读英文,服务于手机语音电子书市场。或许很用户在车载的时候也能使用语音的短信和语音电话之类的服务。

本次设计的系统是针对个人毕业设计课程,其系统设计参考当前主流的Android的软件开发流程。系统界面设计使用XML页面布局工具,以Style样式文件加图片动画配合,

- 2 -

界面开发及程序编写在Eclipse集成开发平台结合使用集成组件ADT完成,整个系统分为3个大功能:

语音朗读:

(1)用户可以输入文字,通过系统进行朗读;

(2)还可以读取系统存取的TXT文本,进行朗读;

语音短信:

(1)

(2) 用户打开语音短信开关,接受到短信就会自动读取出来; 对朗读的短信可以进行回复;

语音识别:

(1)

(2)

(3) 可以语音打开指定的APP应用软件; 可以语音打开指定的网页服务; 可以语音呼出电话;

基于上述背景,在接下来的章节将对语音朗读器发所涉及的相关技术进行分析。

- 3 -

基于Android平台的语音朗读器

2系统开发相关技术

本章将主要介绍了本次设计系统的相关技术,包括系统采用的结构、编程工具以及相关技术。

2.1 Android平台架构

Android平台整体自底向上由以下四个层次组成:Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层。如图2.1所示

1)Linux内核层:Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。

2)Android运行时库:Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式

计算机软件工程专业毕业论文

计算机软件工程专业毕业论文

- 4 -

是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。

3)其他库层:Android包含一个C/C++库的集合,供Android系统的各个组件使用。例如,标准C库,基于PacketVideo的OpenCORE媒体库,基于OpenGL的3D库,关系数据库SQLite。

4)应用框架层:开发者可以完全使用核心应用程序所使用的框架API。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。包括View、Content Provide、Notification Manager、Resource Manager、Activity Manager。

5)应用程序层:Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发。

3.Android应用程序解析

1)Active:活动是最基本的Android 应用程序组件,应用程序中,一个活动通常 就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多个屏幕显示组成。例如:一个文本信息的应用也许有一个显示发送消息的联系人列表屏幕,第二个屏幕用来写文本消息和选择收件人,再来一个屏幕查看消息历史或者消息设置操作等。这里每一个这样的屏幕就是一个活动,很容易实现从一个屏幕到一个新的屏幕并且完成新的活动。

2)Intent:调用Android 专有类Intent 进行架构屏幕之间的切换。Intent 是描述应用想要做什么。Intent 数据结构两个最重要的部分是动作和动作对应的数据。典型的动作类型有:MAIN(活动的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI 的形式进行表示。例如:要查看某个人的联系方式,你需要创建一个动作类型为VIEW 的Intent,以及一个表示这个人的URI。

3)IntentReceiver:IntentReceiver在感兴趣的事件发生时,会使用

NotificationManagemer通知用户,但它并不能生成一个UI。IntentReceiver 在

AndroidManifest.xml 中注册,但也可以在代码中使用Context.registerReceiver()进行注册。当一个intentreceiver 被触发时,你的应用不必对请求调用intentreceiver,系统会在需要的时候启动你的应用。

4)Service:一个Service 是一段长生命周期的,没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,

- 5 -

基于Android平台的语音朗读器

应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。

5)Content Provider:Android 应用程序能够将它们的数据保存到文件、SQLite 数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其它的应用共享时,内容提供器就可以发挥作用了。因为内容提供器类实现了一组标准的方法,从而能够让其它的应用保存或读取此内容提供器处理的各种数据类型。

2.2 Eclipse及ADT介绍

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE)。既然是标准插件集,那就表示默认就按装了JDT和PDE,也就可以进行Java开发和Eclipse插件开发。

尽管 Eclipse 是使用Java 语言开发的,但它的用途并不限于 Java 语言,Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

Eclipse除了开发Java程序,在安装必要的插件后可以做为其他开发工具,如按装了C++插件后就可以开发C++应用程序。

ADT是Eclipse的插件,是针对Android系统开发的插件,在开发过程当中需要做一些配置,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。

Eclipse 是一个IDE(Integrated Developing Environment),而这个IDE是允许安装第三方开发的插件来使自身的功能得到扩展和增强的,而MyEclipse就是其中的一种有名的插件集之一,MyEclipse将开发者常用到的一些有用的插件都集合起来。

2.3第三方语音库TTS选择

智能语音技术是机器与人进行交流互动的技术,分为语音合成技术和语音识别技术,前者可用于人机交互的输出,使设备可以将文本信息转化成语音信息,后者主要用于人机交互的输入,使设备能够接收人发出的语音信息并加以识别。实现两种技术的结合,即可实现“语音-文本”、“文本-语音”的转换,实现人机接口的语音交互。有关智能语音技术,国外MicroSoft公司早在90年代就开始了研究,且推出了语音技术Speech SDK系统产品;

- 6 -

IBM公司在19xx年就推出了ViaVoice语音识别系统,用于PC、手提设备、汽车系统和自动客户服务系统。

在Android系统可以使用的语音库大致有3种,默认系统自带的是Pico TTS、Svox、Eye三种首先系统自带的不支持系统朗读中文,所以这个给系统的开发带来不便,Eye和Svox都是支持中文的,Eye开源但是朗读的效果不是很好,对于有些断句和声调的处理比较弱,所以最终选择相对稳定的Svox作为本人的Text To Speech的识别引擎。

2.4 STT语音识别的引擎选择

在开源领域有几款的语音识别的引擎在英文领域识别的效果都是非常好的,例如

Linux开源语音识别引擎simon、nuance之类,在英文识别中的效率是较好,国内讯飞自己研究的引擎也是不错的,但是大部分的识别引擎都对中文的识别存在问题,讯飞的是不开放的,所以课题本身就选择了google自带的识别引擎,对于中文的支持效果可以,唯一的缺点就是要联网,自学习的过程是在服务端完成,对网络有一定的要求。

2.5 Android 样式主题

Android 的样式主题和CSS是极为相似的。都是用于为界面元素定义显示风格,它是一个包含一个或者多个 view 控件属性的集合。样式定义了HTML元素怎样去显示,一般存储在样式表中。利用外部样式表可以提高工作效率,而外部样式表存储在Style文件中。Style用以作为网页的排版与风格设计,在所谓的新式系统布局里 ,Style不容置疑是相当重要的一环。Style是以既有的基础,用以弥补现有Android设计软件界面时的语法中的不足,也让软件开发更加灵活

- 7 -

基于Android平台的语音朗读器

3系统需求分析

要做一个符合用户需求的软件,对用户进行需求分析必不可少。需求分析需要弄清楚用户最终需要解决哪些问题,开发出的系统要为用户提供什么样的功能,什么样的操作界面和运行环境。

3.1需求分析解决的主要问题

在传统的手机应用软件中,对于语音朗读的处理都是相对比较薄弱,在Android平台上的有声朗读的软件也是寥寥无几。解决的主要问题是本课题要完成哪些现实有效的功能。

要实现一个软件,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能。下面就对本课题的设计进行需求分析。

3.2系统功能需求

功能大致分为3个大功能分别是:语音的朗读、语音短信、语音识别。

3.2.1语音朗读

(1)提供用户输入的区域,是的用户能输入文字;

(2)提供ReadFile功能,能读取系统内部开放权限的的TXT的文本内容;

(3)提供对用户输入的文字,或者是系统读出的TXT的文本进行朗读;

3.2.2语音短信

(1)提供给用户开启和关闭语音短信的按钮开关;

(2)提供给短信发来后自动的朗读短信的内容;

(3)提供给发来的短信即时回复的功能;

3.2.3语音识别

(1)提供用户输入的接口,用户可以输入语音;

(2)提供给语音合成返回的处理功能;

(3)可以打开app、浏览器、以后语音电话的功能;

- 8 -

3.3用户界面需求

1.要求有简洁大方的界面风格,清晰淡然;

2.界面友好,有适当的操作提示信息;

3.用户体验好,用户用起来顺手;

3.4系统运行环境

为了保证系统运行的效率和可靠性,,客户端的要求不是很高。此应用程序可运行于Android系统的手机平台2.2平台以上。

- 9 -

基于Android平台的语音朗读器

4系统的设计和实现

弄清楚需求后,就要对软件进行概要设计和详细设计了。由于本设计不复杂,就不对这两个设计分别述说了。设计中要确定程序的结构、流程、各个模块内具体实现什么功能和模块间的关系。

4.1基本简介

该系统主要为用户提供语音的朗读和识别的支持,所以大致的逻辑结构是比较简单。在3大模块的设计下细化每个小模块的实现。

4.2系统结构图

图4.1 系统结构图

4.3概要设计

这一部分叙述程序各个功能模块的主要设计和页面设计。

4.3.1各功能模块设计

软件首页:首页是用户首先观察一个软件的最主要的接口,应该美观大方,并且能清楚明白地链接到相应功能模块。因此,首页的排版简单明了,主体能显示具体详细的功能模块分类,这个样给用户的体验会提升。

计算机软件工程专业毕业论文

- 10 -

语音朗读:

用户输入文本框:提供用户输入朗读的内容,点击文本框,会自动弹出系统设定好的虚拟键盘,给用户的输入方便。

读取系统文件按钮:提供用户读取系统的文本内容,遍历读取系统的文件夹名称,然后进行读取相关权限的文件TXT,然后输出到TXT里面,这样才能给后续的朗读带来可续性。

语音朗读按钮:提供用户朗读识别用户输入和系统文件读出的TXT文本;

后退按钮:在用户操作过本功能后一定要给用户一个返回的余地,所以要设计一个返回的按钮,这样用户,能返回主界面,然后做些其他的功能选择。

语音短信:

语音短信朗读开关:要给用户选择的权利,然后用户可以选择语音朗读短信,当然在用户不需要的时候可以选择关闭。

接受短信的号码和接受到短信的内容:这些都需要要写个后台的服务,在系统的自带在哪里运行,对于触发了我们设置好的短信的权限的关键字,然后才会拦截短信的内容,然后进行转换输出到界面上。

回复短信功能:在语音朗读了短信内容之后,用户可以直接回复短信,不用在切换界面去回复,给用户带来方便。

语音识别:

首先确定用户常见的应用,作为语音识别的接口,例如用户喜欢听歌,直接呼出“音乐”就打开了相应的音乐软件,然后就可以享受美妙的音乐。这个主要是识别的接口第一要确保数据于互联网的联通,第二服务端处理完的数据然后进行整理反馈到业务处理的类,然后进行打开相应的应用。

4.4系统具体实现

本系统基于Android平台,使用Java语言编写。本系统利用XML页面布局工具,Eclipse集成开发平台,遵循Android架构完成整个系统的开发。同时用Style样式文件控制页面格式。

注:篇幅限制,以及部分功能类似,以下列举主要功能,图片为局部核心部分。本章代码为最终版本。

软件首页如图4.2所示。

- 11 -

基于Android平台的语音朗读器

计算机软件工程专业毕业论文

图4.2 软件首页

软件首页的界面的布局是:

计算机软件工程专业毕业论文

Android平台提供了大量的UI的构建,可以将这些小的视觉块搭建在一起,呈现给用户复杂且有用的界面,然后我们在布局当中会遇到一些问题,和难点在布局首页的时候,Android的布局有3种方式,布局就像容器,里面可以装下很多控件。布局里面还可以套用其他的布局。这样就可以实现界面的多样化以及设计的灵活性。本人基本选定是是线性布局和相对布局来控制软件。

RelativeLayout就是以相对的方式定位布局,允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定)。因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。如果使用XML 来指定这个layout,在你定义它之前,被关联的元素必须定义。相对布局的属性比较多,但用起来比较灵活。

- 12 -

语音朗读界面如图4.3所示。

计算机软件工程专业毕业论文

图4.3 语音朗读界面

语音朗读核心原理:

在Android 中使用语音朗读功能 只需要使用此类 TextToSpeech ,该类实现了很多关于语音的功能,使用该类必须为其设置语言,支持语言列表位于java.util类里的Local 类,具体如下:

- 13 -

基于Android平台的语音朗读器

计算机软件工程专业毕业论文

图4.4朗读核心类

ReadFile的核心原理:

提速文件读写其原理就是读的时候,先把文件的一些数据读到缓冲中。这样的好处是如果读的内容已经在缓冲中,就读缓冲的数据。如果没有,就让缓冲先从文件读取数据,然后再从缓冲读数据。写操作同理.这样的好处是减少对文件的操作次数,从而达到提高性能的目的。

语音短信如图4.5所示。

- 14 -

计算机软件工程专业毕业论文

图4.5语音短信界面

语音短信监听核心原理:

Android中可以通过设置写一个继承自BroadcastReceiver的Receiver来重写,接收到短信之后的逻辑处理短信的内容然后做文字拆分,发送给相应的结构体,供语音朗读使用。

语音识别启动核心原理:

Android中主要通过RecognizerIntent来实现语音识别,它主要包括一些常量来表示语音的模式等,这里我们只需要通过Intent来传递一个动作以及一些属性,然后通startActivityForResult来开始语音识别。

4.5碰到的难点

由于刚开始是初步接触Android开发,对相关平台不是很熟悉,所以在一开始就慢慢买书和观看相应的视频教程进行学习。进行Demo实例的研究和开发。后来在经过网上的查阅和API函数的帮助才开始有点上手。在开发过程中,联系人查询和布局的开发是比较繁琐的一个功能。虽然本人思路清晰,但是对于控件的不熟悉使这个功能在实现时困难重重。经过分析,这个主要是由于时间和经验不足,对库函数不熟悉造成的。对于这种模式的开发缺乏认识,当学习写了一段时间的时候,还是很容易上手了,写起来就很快了。

- 15 -

基于Android平台的语音朗读器

5系统测试

5.1系统错误

对于一个程序,开发虽然重要,但是测试对于一个软件来说也是非常重要的。作为基础的模块,测试更是异常重要。只有通过测试,才能知道自己的不足,才可以知道系统的漏洞,才能知道程序的漏洞。

此程序由本人一人设计与开发,在测试时会按照自己设计路线来进行测试,因此难免会有部分没有察觉的问题。以下列出了几个编码过程中已解决的错误,原因以及解决办法。

5.1.1加载布局XML无效

问题描述:在后台代码中加载活动的布局,此时会出现FC现象

原因:因为Android的每个Activity都是要加载XML文件的,但是XML不可调式,很难发现这么隐藏的错误。

解决方法:尽量在写XML文件的时候,注意必要属性的写法,例如:

android:layout_width="fill_parent"

android:layout_height="78.0dip"

这两条属性在写的时候要注意下,一般都是要写的,定义高度和宽度,不写也察觉不出来,但是就会出错,还有就是布局的逻辑结构要合理。这个是解决大部分XML错误。

5.1.2短信截断无效

问题描述:逻辑代码都没有问题,测试发送了短信就是截取不到短信的内容。

原因:是没有在AndroidManifest.xml没有注册代码

解决方法: 在XML文件中加上这个权限的申明

<uses-permission Android:name="Android.permission.RECEIVE_SMS"/>

很多的Android的Acvitity的活动都是需要申明权限的,例如电话,发送短信这些都是需要的。

5.1.3语音识别中文无效

问题描述:语音识别出来的中文汉字是无效的,对于后续的应用开发就不能打开指定的Acvitity了。

- 16 -

原因:在Android系统中的文字编码有存在问题做下转码就好了。

解决方法:转码函数

public String change(String str){

String tempStr=null; try { tempStr = new String (str.getBytes(),"gb2312"); } catch (Exception e) { e.printStackTrace(); } return tempStr; }

5.1.4系统资源找不到

问题描述:在写代码的时候想要调用系统的配置好的string活着是资源文件的时候,现实系统错误,资源包引入不进来.

原因:这个可能是ADT的一个BUG,要写完代码最好反复编译过,或者是clean一下,这个系统会默认的重新寻找一遍资源文件。

解决方法:Eclipse->Project->clean,或者直接Build项目,就能解决这个问题。

5.1.5短信服务截取消息传送问题

问题描述:短信服务的数据截取到后,内容取到,但是没有传送过来。

原因:在Android的传递数据的过程当中对他的Acvitity的本质没有了解清楚

解决方法:i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);在代码重要加入这句话,给Acvitity开一个新的栈区

5.2系统优化

5.2.1 XML布局优化

问题描述:软件的前期界面的布局存在问题,排版非常不好看,存在加载效率问题 原因:采用线性布局的布局,在后期的调整是非常麻烦,所以选定了RelativityLayout布局的方式

解决方法:在布局的时候都是用相对布局的方式进行, 图片和Style都是写在相关的

- 17 -

基于Android平台的语音朗读器

配置XML里面,这样方便修改!

举例代码:见附件

5.2.2代码提示String修改优化

问题描述:当代码写死的一个Sring代码,想去修改的时候,找到这个代码很麻烦,对于今后的维护造成一定的困扰。

原因:因为代码写死在冗长的逻辑代码中,给后续的维护造成困难。

解决方法:配置成XML文件,然后在定义的XML文件中加载相应的string的字符串,这个也是Android开发的一个非常好的有点,这个对全球化的软件是非常重要的。

- 18 -

6总结与展望

随着移动互联网的快速发展和手机上网用户的快速增长,高端智能手机也逐渐受人们青睐,未来的手机应用会出现越来越多的“说”的手机应用,本课题只是做的初步的探索。

6.1论文总结

设计和开发一个最基本的基于Android的软件并且是关于语音方向的,这个在现代的无线领域的发展是非常快速的。通过这次毕业设计,本人从中学到了许多新的知识,而且通过这次毕业设计,培养了本人综合多门学科中的知识、迅速规划并开发出目标系统的能力,同时让本人的编程能力也有了很大的提高。另外也有许多心得体会,所谓系统开发如人生百味,酸甜苦辣皆有之。

回顾设计开发过程,总结起来就是软件的开发是相当辛苦的,但成功以后的喜悦也是非常美妙的,而且本人发现,其中投入的心血越多,成功以后你所获得的快乐与充实感也更多更强。

6.2研究展望

对消费者而言,增加了高档智能手机选择面,不一定要从iphone和symbian中选择。在Android设计初期考虑了与现有业务的融合,例如google地图及其衍生应用、Gmail、GTalk等都是以手机使用为向导,为消费者生活带来了极大的方便。GPS卫星导航功能,手机照相,MP3,蓝牙等均被列为Android所提供支持的基本选项。

对手机制造商而言,Android是款开源的移动计算机软件平台,组建了google主导的拥有众多产业界巨头的产业联盟,有利于高效开发、降低成本。由于是开源产品,对非主导厂商而言,可以避开与主导厂商在核心技术上面的差距,开发出更具竞争力和差异化的产品。

语音朗读器核心语音合成技术在未来可以实现来电播报、短信播报、电子书朗读以及语音提醒、语音报时等功能,通过语音识别实现语音拨号、语音检索、语音命令操作手机等功能,朗读效果清晰、自然,语音识别效率高、反应快、实用性强。这些才是未来社会的发展核心。

- 19 -

基于Android平台的语音朗读器

随着移动互联网的快速发展和手机上网用户的快速增长,高端智能手机也逐渐受人们青睐。而高端手机市场的竞争除了品牌效应和售后服务外,更重要的是操作系统的性能和稳定性。Android操作系统以其特有的开源优势和系统架构为广大消费者、供应商、运营商、手机开发者带来了极大的方便。

随着科技的快速发展和3G时代的到来,智能化、人性化已成为了手机发展的主要方向。“能听会说”功能为手机行业带来了革命性变化,彻底改变了人与手机之间的交互方式,使人与手机之间的“沟通”变得更加自然与顺畅。

- 20 -

参考文献

[1]盖索林,Google Android 开发入门指南(第2版)[M],人民邮电出版社,2010 :22~35.

[2] 余志龙等著.Google Android SDK开发案例大全[M].人民邮电出版社,2009 :65~34.

[3] 姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008,(11) :76~115.

[4] 陈璟,陈平华,李文亮.Android内核分析[J].现代计算机,2009,(11):112~115.

[5] 公磊,周聪.基于Android 的移动终端应用程序开发与研究[J].计算机与现代化,2008,(8):86~89.

[6] 吴亚峰,索依娜.Android核心技术与实例详解[M].电子工业出社,2010:112~115.

[7] 杨丰盛.Android应用开发揭秘[M].机械工业出版社,2010:87~115.

[8] 田俊静,张波,黄湘情.Android基础教程(第三版)[M].人民邮电出版社,2010:244~255.

[9] 韩超,梁泉.Android系统原理及开发要点详解[M].电子工业出版社,2010:222~243.

[10] 张仕成.基于Google Android平台的应用程序开发与研究[J].电脑知识与技术,2009 :152~175.

[11] 吴军,周转运.嵌入式系统应用基础与开发案例[M].人民邮电出版社,2007:112~115.

[12] 田森,李大和.用Android开发手机应用[J].程序员,2008,(1):25~27.

[13] Tor-Morten Gr?nli,Jarle Hansen,Gheorghita Ghinea,Android vs Windows Mobile vs Java ME[J],2010 ACM,1-8

[14] Bruce Eckel, thinking in java 3rd edit[M], Prentice Hall PTR, 2002:155~176.

- 21 -

基于Android平台的语音朗读器

致谢

经历几个月的学习和研究,终于初步完成了Android平台语音系统的编写工作,对帮助过本人的老师、同学表示由衷的感谢。

首先,要感谢导师XXX老师,在整个毕业设计的过程中,给予本人悉心的指导,帮助本人完成毕业设计。胡老师一丝不苟的工作精神、严谨的治学态度以及耐心的辅导都给人留下了深刻的印象。在此,衷心感谢胡老师几个月来的教导和关怀。

其次,要感谢本人的班主任高巍老师,他对每一位学生的关心都显得那么平凡,也感谢他指导本人对人对事的方法。

再次,要感谢在毕业设计过程中给予帮助的同学,他们的鼓励与帮助,让本人能够坚持不懈地努力。

最后,向评审本论文及参加论文答辩的各位老师表示衷心的感谢和诚挚的敬意。

- 22 -

附录

//页面布局优化举例

<?xml version="1.0" encoding="UTF-8"?>

<LinearLayout Android:orientation="vertical" Android:id="@+id/Run"

Android:paddingTop="5.0dip" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:background="@drawable/background_generic"

xmlns:Android="http://schemas.Android.com/apk/res/Android"> <RelativeLayout Android:id="@+id/read"

Android:paddingLeft="5.0dip" Android:paddingRight="5.0dip" Android:layout_width="fill_parent" Android:layout_height="78.0dip" Android:clickable="true" Android:focusable="true" style="@style/Card.Full"> <TextView Android:id="@+id/FreeTitle" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="@string/read_text_title" style="@style/RunTitle"/> <TextView Android:text="语音朗读,我是小助手" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_below="@+id/FreeTitle" Android:layout_alignLeft="@+id/FreeTitle" style="@style/RunSubtitle" />

- 23 -

基于Android平台的语音朗读器

<ImageView style="@style/ArrowNext" /> </RelativeLayout> <RelativeLayout Android:id="@+id/message" Android:paddingLeft="5.0dip" Android:paddingRight="5.0dip" Android:layout_width="fill_parent" Android:layout_height="78.0dip" Android:clickable="true" Android:focusable="true" style="@style/Card.Full"> <TextView Android:id="@+id/FreeTitle2" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="@string/message_text_title" style="@style/RunTitle"/> <TextView Android:text="语音朗读,我是小助手" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_below="@+id/FreeTitle2" Android:layout_alignLeft="@+id/FreeTitle2" style="@style/RunSubtitle" /> <ImageView style="@style/ArrowNext" /> </RelativeLayout> <RelativeLayout Android:id="@+id/car" Android:paddingLeft="5.0dip" Android:paddingRight="5.0dip" Android:layout_width="fill_parent" Android:layout_height="78.0dip" Android:clickable="true" Android:focusable="true" style="@style/Card.Full">

- 24 -

<TextView Android:id="@+id/FreeTitle3" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="语音识别" style="@style/RunTitle"/> <TextView Android:text="语音朗读,我是小助手" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_below="@+id/FreeTitle3" Android:layout_alignLeft="@+id/FreeTitle3" style="@style/RunSubtitle" /> <ImageView style="@style/ArrowNext" /> </RelativeLayout>

<RelativeLayout Android:id="@+id/Info"

Android:layout_width="fill_parent" Android:layout_height="wrap_content">

<TextView Android:textColor="@color/blue_pressed_white"

Android:gravity="center" Android:id="@+id/InfoAbout" Android:padding="20.0dip" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="About" Android:drawableLeft="@drawable/button_extra_about_big" Android:drawablePadding="5.0dip" Android:layout_alignParentLeft="true" />

<TextView Android:textColor="@color/blue_pressed_white"

Android:gravity="center" Android:id="@+id/InfoSettings" Android:padding="20.0dip" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="Settings"

- 25 -

基于Android平台的语音朗读器

Android:drawableRight="@drawable/button_extra_settings_big" Android:drawablePadding="5.0dip" Android:layout_alignParentRight="true" /> </RelativeLayout>

</LinearLayout>

- 26 -

更多相关推荐:
软件工程毕业设计开题报告范文

淮海工学院毕业设计开题报告学生姓名朱兵学号011122152专业计算机应用与维护设计题目基于WEB的销售管理系统ASP开发指导教师樊宁20xx年4月16日1开题报告填写要求1开题报告作为毕业设计论文答辩委员会对...

20xx届软件工程硕士论文模板

论文中文题目宋体三号字Title论文英文题目Arial三号字以下均为宋体四号字作者姓名专业名称指导教师教授学位类别软件工程硕士答辩日期20xx年月日未经本论文作者的书面授权依法收存和保管本论文书面版本电子版本的...

论文范文(计算机软件工程)

设计论文中文题目英文题目ThestudentmanagementsystemdesignandImplementation别年级专业姓名学号指导教师职称信息管理系201X级XXXXXXXXX教授副教授讲师助教闽...

软件工程硕士论文撰写指南

软件工程方向硕士论文撰写指南年复一年指导硕士研究生撰写论文特将软件工程方向的专业硕士即工程硕士以及学术硕士即工学硕士的论文工作要点总结如下注本文的第四第五部分同样适用于工学硕士论文V1020xx0909V202...

《软件工程》第一次实验报告

通达学院实验报告20xx20xx学年第1学期课程名称软件工程实验名称实验1软件需求规格说明书的设计和撰写实验时间指导单位指导教师20xx年11月16物联网学院赵莎莎学生姓名学院系汤勇班级学号13002918日物...

ISO软件工程模板(1)可行性研究报告

ISO软件工程模板1可行性研究报告1引言11编写目的编写本可行性研究报告的目的指出预期的读者12背景a所建议开发的软件系统的名称b本项目的任务提出者开发者用户及实现该软件的计算站或计算机网络c该软件系统同其他系...

软件工程文档模板--十、项目开发总结报告

十、项目开发总结报告1.引言...........................................................................................…

软件工程规划书范文

大学四年规划书每个人都应该设计属于自己的人生因为青春所以激情想创造一片属于自己的天地并且乐不知倦的追求因为青春所以梦想带着父母的期望也带着自己对未来的理想大学是人生的要害时期大学的第一步的确应该迈的坚实准确我给...

软件工程论文以及演讲

手机刷机软件与ROM的盈利模式分析阿里巴巴入股新浪微博的动机及影响分析国内B2C和C2C电子商务企业盈利模式对比分析电商自建物流与物流企业涉足电商的分析比特币Bitcoin的发展及其对传统货币的影响微软与谷歌盈...

软件工程论文

人月神话读后感许琪峰1050320xx086计本六班其实我刚知道人月神话这本书的时候压根就不会将它与软件工程联系在一起但是这名字起得很有意思估计很多人会因为这个名字不自觉的想去看看这本书到底写的是什么初次看这本...

软件工程论文

软件危机的表现产生原因以及可能的解决方案计科4班常亦炫20xx40910401一软件危机概括落后的软件生产方式无法满足迅速增长的计算机软件需求从而导致软件开发与维护过程中出现一系列严重问题的现象二软件危机的表现...

软件工程论文

20xx12052350软件工程论文软件管理风险与利益共存的双刃剑什么将影响我们的未来生活什么将决定我们国家的未来竞争力毫无疑问答案之一就是信息技术当今信息技术正推动社会日新月异地发展并且已经影响到我们的生活方...

软件工程论文(21篇)