沈宏 高晶
摘 要:便携式识字系统是针对学龄前儿童辅助学习而设计的一款识字软件,安装到目标平台ARM系列的Pocket PC上。用户可以按照栏目分类自主选择操作内容,可以观看精彩的动画、优美的图片、有意寓的故事,并且可以在线朗读录音、反复练习。本文阐述了在Windows CE平台上完成这样的便携式识字软件的设计过程。
关键词:便携式识字软件 Windows CE平台 软件设计
中图分类号:G71 文献标识码:A 文章编号:1672-3791(2013)03(a)-0006-01
文字是学龄前儿童主要的学习内容之一,传统的文字学习主要依靠识字卡、书本、黑板等,学习比较枯燥、学习成本比较高。在21世纪,在信息技术、计算机技术、网络技术高速发展的时代,学习方式也发生了很大的变化。本文主要讲述了利用Windows CE平台开发的便携式识字系统,为幼儿的识字学习提供了一套生动的学习软件。
在这套系统中,支持多种规模的音库,满足各类需求;支持合成语音的不同采样率、比特率、格式输出;支持动态音频参数规划;支持流式文本输入;支持进度通知;支持同步回显拼音输出;全新架构,具有高可靠的稳定性。便携式识字系统以独立发布软件的形式,用户可以按照分类目录自主选择学习内容,并通过反复录制/播放用户朗读的语音来完测试。家长也可以把每次的学习结果和体验心得记到记事录中,可以随时查阅记事录,并切换到上一次的学习界面继续学习。
1 Windows CE 嵌入式操作系统
Windows CE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。WinCE.net是微软公司将.net战略推向移动嵌入式领域的重要举措,具有很多优势:可以模块化开发,可以进行个性定制;可以多硬件平台支持和网络、多媒体和多语言支持;有强大的开发工具;稳健的实时性的支持,支持嵌套中断、允许更高优先级的中断首先得到响应,更好的线程响应能力,更多的优先级别,更强的对线程的控制能力。
2 便携式识字系统
2.1 便携式识字系统功能结构图(如图1)
实现语音识别训练功能。用户进入主菜单页面时,选择语音识别界面,进入后按照单元学习生字,并可以跟读,系统录音,回放,并观看语音评分。在此功能中,还可以实现用户的回顾学习记事。家长可以根据幼儿的学习过程进行记录,并可以浏览过去的记事内容,修改日志的评语,删除某一记事记录或者清空所有记录,可以直接跳转到某一记录所指向的学习界面,继续未完成的学习。
2.2 应用系统的开发
2.2.1 系统显示多窗口设计
Pocket PC平台的界面有限,而且窗口没有最小化图标,多视图的转换是一个棘手的问题。
在MFC工程中,程序的入口是CWinAPP的实例,这里取名为CALLE nglishAPP,由它生成框架类实例MainFrame以及文档类实例CALLEng lishDoc。MainFrame下并列三个界面,分别是主界面MainView、回顾记事界面MemoView和帮助引导界面TutorialView。由CALLEnglishAPP来响应用户切换这三个界面的请求,动态地构造界面。
在MainFrame下生成包括主视图在内的4个一级视图。这4个一级视图间通过MainFrame的SwitchView函数控制切换,同时让context参数保留各视图上下文的信息,实现了多视图与单一文档的对应。
一级视图以下,统一使用了弹出式对话框CDialog类来实现复杂的视图调用,对话框中直接实例化数据库引擎,当关闭对话框时要及时释放这些实例对象所占用的内存。
2.2.2 语音识别
使用包的封装来完成语音识别,三个包分别用来访问.dbf数据库文件,访问.dat实验室自定义语音集成文件,以及完成录放音任务。
(1)DBEngine Package
自定义数据库引擎包DBEngine有3個对象类和一个结构体。DBTable用于访问.dbf数据库文件,将文件描述的表格字段信息存放到DBField结构体中,搜索文件获得的记录数内容存入界面类的一个字节块RecordSet中;DBRecord可以对这个字节块进行操作,比如可以从中取出一个记录、或一个记录的某个字段信息等;DBProp是针对这个具体的字段信息的操作,比如可以取出其中的值。
(2)DatFile Package
DatFile包用于访问物理内存上的课件语音材料文件。CDatFile负责读出.dat语音集成文件中指定顺序号的句子语音数据,SampleWaveFile负责访问用户刚刚录制完毕保存的采样语音文件。
(3)WaveThread包封装了两个与波形音频设备有关的用户界面线程类。ThreadPlay专用来播放语音,ThreadRecord专用来录制语音。
2.2.3 动画界面的设计
画法:在制作Flash动画的源文件中获取需要的场景图片,在Windows CE应用程序中对这些图片加以组合和适时播放,达到动画效果。
(1)某一矩形区域只有一个动画动作。这种情况比较简单,只要把图片叠加即可。
(2)某一矩形区域涉及到多个动画动作。如果是在程序中直接绘制的图形,当然可以利用图层及透明位图来实现多个动画动作的叠加;但是现在用的是图片,所以要把所有两个动画动作叠加可能的情况都截一幅图。
在Windows CE平台上实现声音、图片、影片等多媒体文件的播放和显示是一个循序渐进的发展过程,经历了由底层设备接口函数调用到ActiveX控件的短期飞跃。本文简要描绘了一个英语学习软件WinCE3.0版的整体模块封装设计思想,希望在生字学习过程中,这种便携式的小型设备上的自主学习软件能起到大的作用,成为学校教学的有益补充。
参考文献
[1] Windows CE程序员指南[美].1版.微软公司希望图书创作室,1999,9.
[2] 维亚·卡拉姆切蒂.分布式系统中的自动配置和运行自适应[J].方泽昌,译.第九次IEEE高性能分布式计算研讨会,2000,8.
[3] 杰夫·克莱默,杰夫·马吉,莫里斯·斯罗曼,等.在REX中基于对象的分布式程序配置[J].IEEE软件工程期刊,1992,3,7(2):139-149.