摘要:本文基于计算思维的算法与程序设计,结合人工智能的语音合成应用创造,研究计算思维与工程设计思维如何综合生成真实项目学习。结合本栏目上期的文章,经过项目规划与概要设计、数据模型与功能设计,通过语音合成技术实验、GUI界面设计、数据模型与数据整理已形成信息系统项目雏形之后,本文继续以功能实现为主体内容研究项目内容设计,其中包括对数据检索与统计功能算法、多线程朗读原理应用以及项目迭代优化与泛化适应等的研究,探讨项目学习的“算法中心”“技术核心”及“迭代增强”与“泛化增值”,以更完整地探索真实项目中的技术与思维融合于跨学科学习的项目设计方法。
关键词:计算思维;跨学科学习;真实项目;生成研究
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2023)11-0029-04
在项目学习中,最困难的是根据项目内容的“真实性”特征进行项目主题设计。通过“经典名著朗读者”人工智能信息系统的设计,我们已经可以用五个微项目来设计完成数据的获取、数据模型构建以及基础的数据访问与显示。此前,朗读技术已经进行过基础实验,有了基于人工智能的语音合成技术的朗读体验,项目的主题效果可见度得到预判。本文将基于计算思维与工程设计思维继续研究,包括对数据检索、多线程朗读及信息系统功能设计迭代与泛化,即对真实项目生成进行具体的技术实现研究。
信息系统项目以数据处理为“算法中心”
数据检索、查询与统计等数据处理是信息系统项目设计的“算法中心”,能体现出算法针对用户需求、工作效率等功能的实现。例如,数据检索可包括顺序检索(翻页浏览)、按页搜索和关键字检索等功能。
微项目6:数据检索与统计。
(1)分页数据检索与浏览。首先,根据全书文本的数据列表text和每页第一行位置变量textp,用于数据输出模块browser()进行当前页码计算、页码与文本的显示;其次,通过改变textp数值后调用browser()实现前一页、后一页、指向页码的页面文字显示(如下页图1)。在系统设计中,要注意数据的容错判断,如图书数据是否已读取、输入页码是不是数字及是否在正确范围等,在调试中可用try、int等试错判断,渗透功能兼容的信息意识与分解、模式、算法等计算思维要素。
(2)关键字检索与统计。根据关键字进行数据检索是体现数字素养的重要技术之一,它广泛存在于应用软件与程序设计中。在程序设计中,可用“枚举算法”来现实。例如,向前搜索的关键是循环的步长为负值,而向后搜索循环的步长是正值,基于循环程序结构和枚举算法即可形成清晰的数据检索模型。
(3)实践学习。①参考任一页检索统计算法,采用半成品补充前一页、后一页的技术留白,如补充关键技术“textp+(-)20”的翻页检索模型。②参考向后搜索算法,补充向前搜索的关键词统计算法,如“for i in range(textp-1,0,-1)”等内容的枚举范围补充。
(4)项目交流。①数据检索中本页首行数据位置textp与关键字所在位置i的关系模型。②数据检索的容错中的数据边界、输入合法性等,除去try还有哪些方法?
人工智能语音合成项目以多线程控制朗读为“技术核心”
微项目7:朗读多线程任务设计。
在语音合成朗读项目中,笔者先是用单线程设计,但若文章过长则需要等待(不能进行内容查找、翻页等操作)另外,“系统正忙”页面也会影响用户体验,所以,研究多线程是本项目的技术核心,即以更高层次体现信息科技独特的计算思维。
(1)单线程技术实验。朗读少量内容用较简单的单线程即可完成,语音合成核心技術如图2所示。
(2)多线程技术实验。Python中多线程模块功能较多。朗读中采用engine.startLoop()来实现朗读线程的循环功能更容易。
①线程的开启。在GUI界面设计按钮作为线程开启钥匙,去调用pagereadlin()函数驱动朗读功能。事件响应设计代码简述如图3所示。
②线程的创建。
③线程的应用。为循环朗读,全程序只运行一次engine.startLoop(),即可采用一个逻辑开关loop变量控制。在程序初始化时,loop=True即可。朗读分readerpage()、reader()两个函数,这正是线程的工作原理所需,两个函数可以来回自动切换,在延时中信息同步显示。可见,项目生成研究的技术细节较多,并非有理论即可实现理想的功能。
④朗读功能。
(3)实践练习。①算法学习可针对读秒循环的控制、朗读副本的累加等内容。②从逻辑开关理解布尔型数据的特点。
(4)项目交流。①结合操作系统多任务工作原理,观察“进程管理”,探讨多线程对操作系统的意义。②结合全部程序功能来理解线程的意义。借用“唱歌”“跳舞”两个线程的分时运行来观察线程的运行机制。
项目功能优化与适应环境以“迭代增强与泛化增值”为追求
为更完善地升级信息系统,从计算思维的迭代功能、适应泛化出发,可以增加功能、完善细节,提高信息系统的安全性、完备性、体验感以及信息系统的适应性等。在项目生成时,遇到问题、解决的过程能够优化信息系统,更能够体验到计算思维迭代增强功能与泛化让系统增值的深刻意义。
微项目8:迭代优化信息系统的功能。
可增加设计阅读点的记忆,让阅读更舒适;可设计朗读词汇的屏蔽,如对“①”等注解符号屏蔽不朗读,提高体验感;设计标点符号的统计功能让朗读进程标记更准确;可设计像卡拉OK式的字幕跟读增强个性化的特色功能等。
(1)屏蔽朗读词汇,提高体验感(如图4)。
(2)标记阅读朗读位置。“当前页文字显示”是整个项目核心的数据模型,大量的功能由此接口去读取、检索、存储、朗读。所以,标记阅读朗读的位置,就是保存当前页的首行位置。
①读取阅读位置(如图5)。
②保存阅读位置(如图6)。
③调用位置功能函数(如图7)。在def readflie()中打开“图书文件”,即可读取位置。每次因为翻页、查找等使用的browser()显示“当前数据时及时保存该页位置”,即可实现动态保存与读取位置页码。
(3)朗读语音的保存。在朗读名著的重要章节时,可以录音,为学生提供音频学习文件,以此迭代音频保存的功能设计,使学生更好地理解语音合成技术(如图8)。
(4)实践学习。①一般文件操作的算法学习,可以调用屏蔽词汇、阅读位置等进行阅读与补充。②信息系统设计的学习项目,体验对读取、保存数据的关键技术价值意义。
(5)项目交流。学生举例说明信息系统功能迭代对功能增强方面的意义。
另外,利用计算思维的“泛化”进行功能增值,可以结合迭代微项目进行阐述,如打开图书文件用交互设计而非固定的文件名,即泛化应用等。
总之,通过以上微项目研究与学习,可以体验到真实项目生成中问题解决的意义所在,即发现问题、解决问题的过程正是学习生成的过程。越来越完善的项目设计与信息系统功能实现,会让学习进程螺旋上升,也会让跨学科学习促进核心素养向高阶发展。
参考文献:
[1]中华人民共和国教育部.普通高中信息技术课程标准(2017年版2020年修订)[S].北京:人民教育出版社,2020.
[2]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2020.
[3]熊璋,吴建锋.普通高中信息技术课程必修1中的人工智能[J].中国信息技术教育,2020(11):22-24.
[4]王荣良.计算思维教育中的情境创设与模型建立[J].中国信息技术教育,2021(21):39-42+79.
[5]王爱胜.基于计算思维“跨学科学习”真实项目生成研究(上)——以“名著朗读者”系统设计为例[J].中国信息技术教育,2023(09):25-28.