基于Android平台英语口语学练测App的设计与实现
曾棉辉 林伟平 谢志文 包汉宗
摘要:文章基于Android平台,设计并开发实现了英语口语学练测App,详细介绍了App的功能设计,实现的关键技术等。App与中学英语教材内容相配套,方便中学生进行英语口语练习。
关键词:Android;App;英语口语;设计与实现
社会发展对人才的综合能力要求越来越高,英语口语能力就是其一,具有较强口语交际能力的人才更受欢迎,因此培养和提高学生英语口语能力是英语教学的重要任务。基于此,探索基于现代信息技术支持的,利用移动互联网应用辅助英语口语学习,是非常有价值的途径。
目前英语学习类App众多,但大多是以单词记忆为主要应用场景,对于通过App练习英语口语的较为少见。本研究突破了英语口语学习的传统方式,将移动应用App与英语口语学习相结合,克服了时间与空间的限制,利用碎片化的时间便可高效地学习。
1.功能设计
根据实际的市场分析,本App的具体用户定为学习英语的中学生,包括高中生和初中生。App提供的学习内容与中学英语课本学习内容相配套。软件的具体设计情况如下o
1.1App功能结构
在广泛调研的基础上,对英语口语学练测ipp的功能进行了设计,包括登录功能、个人中心、学习功能、复习功能、分享社交等模块,具体如图1所示。
1.2登录功能
(1)若用户在本平台注册过账号,可通过手机账号密码进行登录。
(2)第三方登录方式进行登录,本App现仅支持新浪微博及腾讯QQ账号登录。
(3)如果没有注册,用户需要通过手机号及密码进行注册,手机号会通接口数据进行短信验证的方式进行验证,方可通过注册。1.3个人中心
(1)个人信息:登录完成可以查看个人信息。个人信息包含头像、昵称、个人简介、性别及年龄,用户可以在个人信息界面进行头像、昵称、个人简介、性别及年龄的修改。
(2)我的记录。
学习记录:每一次学习的记录都会进行保存,每一条的记录信息会保存:书籍、单元、已学、未学;点击“继续学习”时用户返回到之前学习的位置进行学习。
复习记录:记录信息包含书籍、已学、未学;复习以整本为复习,数据含量大,通过个人记录可有效提高复习效率。
我的成绩:用户可以通过选择自己的学习历史记录,查询相应学习内容的成绩;每一个小模块都会包含优评、中评、差评及未学等成绩的统计,用户可根据选择,返回学习或者重新复习。
1.4学习模块
学习模块分为单词、短语、句子、段落的学习,学习模块可以选择对应书籍及单元进行学习,用户可针对不同情况进行选择性学习,在此期间未进行登录,或者登录session已经失效,需要进行重新登录,才可以进行学习。
1.5复习模块
复习模块是以整本书籍进行复习,同样分为4个小模块:单词、短语句子及段落。用户可以根据自己的学习情况,有选择地进行复习。重复学习,可以使印象更加深刻。
1.6社交分享
用户可以将自己的学习表现,包括成绩、己完成内容等,分享到微信等社交平台。
2.实现
2.1 hpp数据库的实现
根据ipp功能,数据库共设计了10表,分别为:book(书籍表)、unit(单元表)、word(单词表)、phrase(短语表)、sentence(句子表)、paragraph(段落表)、user(用户数据表)、study(学习成绩表)、(复习成绩表)、score review scorestudy record(学习记录表)、review record(复习记录表)。
限于篇幅,本文只列举两个表的具体设计情况。单词表word表的设计如表1所示,用户表user表的设计如表2所示。
2.2语音识别技术的实现
App语音功能的实现基础是讯飞语音SDK,实现语音的录入、上传、云解析以及云返回JSON数据实现A0p的语音功能。App针对两个需求,即听写和评测,对讯飞SDK进行了二次封装,增强项目的解耦性以及可维护性,分别为3类:IFLYAnalytics.java(语音听写类)、IFLYEvaluation.Java(语音评测类)、IFLYEvaluationAndAnalytics.Java(语音及听写功能合并的类);当用户点击“麦克风”按钮时,先初始化IFLYEvaluationAndAnalytics.Java并配置相关参数,调用start()方法,并实现回调监听IFLYEvaluationAndAnalytics。
MyRecognizeListenter(),通过重写public voidonBeginOfSpeech()监听开始语音事件,在此方法中主要判断语音是否正在启动中,如果正在启动,就会调用stop()停止语音,这是考虑到用户第二次点击时,应停止录音;重写publicvoid setTextResult(Strmg strResulll返回评测成绩及听写结果,在此方法中调用handler.handleMessage(msg)将返回结果交由handler处理,由于解析过程是在子线程中进行,在android只有主线程(UI线程)才能修改uI界面,所以子线程与主线程间的通信,采用handler的消息机制处理;重写public void error(SpeechError error)方法,在此方法中将会处理相关的错误信息,比如用户阅读时声音的大小、网络连接异常。
2.3结果判别和标注功能的实现算法
App在实现用户语音识别后,对识别结果以文本形式呈现。通过设计识别文本和标准原始文本进行对比,对不正确的地方标注红色,用于提示用戶哪里出现问题。
系统英语字符串和用户阅读的字符串对象分别为String strSys和String strUser,先通过split(“(?![-\\w])”),将系统英语与用户阅读英语拆分为两个字符串数组,分别为String strArraySys和String strArrayUser;通过循环将数组分别转化List集合,分别为List
2.4 App的实现
英语口语学练测App的实现,通过Android开发工具包ADT和内置的sQLite数据库实现,版本兼容Android2.3及以上版本。具体实现效果如图2—5所示,图2为用户选择学习内容的操作界面,图3为用户进行单词学习训练的效果,图4为用户进行完成一个学习内容后,对学习效果的统计反馈情况,图5为查看用户学习记录的界面。
3.结语
本文设计并实现了基于Android平台的英语口练习工具App。App采用了讯飞语音识别开放技术和mob社会化分享等第三方框架,并针对这些框架进行大量二次开发和代码封装,极大地提升了App用户的体验效果。App所提供的练习内容与人教版教材一致,可以辅助学生实现课上学习、课后复习的高效学习。通过试用和体验,大部分用户认为该App功能设计合理,用户体验较好,能够为学生的英语口语练习提供较好的帮助。