开放平台在人工智能教学中的应用研究
李伟
《普通高中信息技术课程标准(2017年版)》(以下简称《新课标》)除了设置选择性必修模块5“人工智能”外,在必修模块1中也专门引入了人工智能模块的学习,因此,在中小学开展人工智能教育成了信息技术学科需要着重研究的内容之一。本文探究了如何以百度人工智能开放平台为载体,开展人工智能教学,从而让学生在学习人工智能原理后能够实现人工智能的应用。
● 人工智能开放平台的优势
开放平台是指提供开放应用程序编程接口(API)或函数(function)的平台,用户在程序设计过程中,使用开放平台提供的应用程序编程接口或函数就可以增加该平台提供的软件功能或使用该平台提供的资源,从而提高程序设计的效率,减少数据获取、运算的开销。在教学上,应用开放平台具有多方面的优势:①开放平台有较多的选择性。②开放平台能提供较多的人工智能应用。③开放平台支持大多数的编程语言。④开放平台使用方便,入门快。
● 开放平台实现OCR文字识别应用教学
OCR概念于1929年由德國科学家Tausheck最先提出,最早对印刷体汉字识别进行研究的是IBM公司的Casey和Nagy。目前OCR技术已被广泛应用于生产生活中,是大家比较熟悉的人工智能应用之一。百度人工智能开放平台就包含了OCR文字识别的开放功能,并且其通用文字识别的调用是完全免费的,比较适合教学使用。下面介绍如何利用百度人工智能开放平台,使用Python语言实现通用文字识别。
1.创建人工智能应用实践教学环境
教学环境包括硬件环境与软件环境。从人工智能应用项目的教学需求来看,其对于硬件环境的要求并不高,可以采用学校已有的计算机专用教室。软件环境的创建,则需要安装Python编程环境,推荐使用Python3.+版本,笔者使用Python3.5、3.6、3.7等版本均能成功实施。
除了编程语言的创建以外,还需要安装基于Python语言的OCR开发包“OCR Python SDK”,安装Python SDK的方式很简单:在客户端,执行pip install baidu-aip即可。要查看安装是否成功,可以在Python环境下,输入import aip,如果系统没反应,就说明模块安装导入成功,可以正常使用。
另外,软硬件环境搭建完毕,在进行教学前,还需要申请创建一个百度开发者账号,用于调用百度AI提供的服务。有了百度开发者账号后,就可以在百度开发者A服务控制台中创建一个新应用,获得的三个ID“AppID”“API Key”“SECRET_KEY”是系统用于标识用户,用于为访问做签名验证,将在程序编写时使用。
以上所做的创建工作,是针对具体计算机进行的,特定的计算机只需要做一次,便可以设计制作多个人工智能应用项目。
2.基于Python语言实现文字识别应用
教学环境的创建完成以后,便可进行具体的文字识别应用项目设计制作。编程环境选用Python。创建一个Python文件,可以命名为:myocr.py。
①新建“AipOcr”。“AipOcr”是OCR的Python SDK客户端,使用“AipOcr”可以开发一系列的文字识别交互方法。Python代码如图1所示。在图1的代码中,变量“APP_ID”“API_KEY”“SECRET_KEY”可以在AI服务控制台中的应用列表中查看。
②读取图片。图像数据采用base64编码,存储大小要求base64编码后不超过4M,用于被识别的图像支持jpg/png/bmp格式。Python代码如图2所示。其中,“example.jpg”即为待识别的图像文件,可以根据实际情况提供。如果采用上述方式的代码,则图像文件存储于Python文件同一个目录下。
③调用通用文字识别模块,并返回识别结果。代码如图3所示。
保存Python文件,并将用于测试的图像文件命名为“example.jpg”,保存于同一个目录之下。至此,用于文字识别的程序基本编写完毕。本例采用的图像文件如图4所示。
④调试修改。程序编写完毕,必须调试,以发现程序代码中的错误,或者找出其中不符合用户需求的情况,并加以修改。运行“myocr.py”程序,程序返回数据如下页图5所示。
由图5的返回数据可知,文字的识别率几乎达到了100%,但其中夹杂了其他字符,显然不完全符合要求。通过分析可知,程序返回的是Python字典类型的数据。因此,还需进一步修改程序代码,对返回值做有用信息的提取工作,可编写如下页图6所示的代码,替换原程序中的“print(result)”语句。
保存Python文件并运行后,即可返回如图7所示的结果。显然,本程序已经基本符合要求了。
● 多样化人工智能融合应用,提升学生实践与创新能力
除了OCR文字识别外,百度人工智能开放平台还提供了众多的人工智能项目,如机器学习、智能语音技术、人脸识别技术、人体分析技术、图像识别技术、自然语言处理技术等。在人工智能教学中,可以充分利用这些资源,进行创新项目的教学设计,以促进学生的实践能力与创新能力的提升。例如,在教学中,可以利用文字识别技术、自然语言处理技术、语音合成技术,设计制作一个全自动翻译项目,实现OCR文字识别、识别以后翻译成所需目标语言(如英文翻译成中文)、将翻译以后的文本合成为语音、将合成以后的语音进行播放的功能。教学过程,可以做如下的设计。
1.文字识别的实现
OCR文字识别的实现,可以采用上述的代码。不再赘述。
2.机器翻译的实现
百度人工智能开放平台所提供的“通用翻译API”,其标准版免费使用,不限使用字符量。创建一个Python文件,可以命名为:“mytrans.py”。Python代码设计如图8所示。
3.语音合成的实现
①新建AipSpeech。AipSpeech是语音合成的Python SDK客户端,可以为语音合成提供一系列的交互方法。创建一个Python文件,可以命名为:“myspeech.py”。代码如下页图9所示。
在图9的代码中,变量“APP_ID”“API_KEY”“SECRET_KEY”可以在AI服务控制台中创建并查看。
②调用语音合成模塊,并返回合成结果。待合成的本文长度必须小于1024字节,如果本文长度较长,可以采用多次请求的方式。要把一段文字合成为语音文件,需要编写如图10所示的代码。保存Python文件并执行以后,系统会产生一个“myauido.mp3”的音频文件。试着播放一下,会发现其语音即为“待合成语音的文本”。
4.实现语音文件的自动播放
在Python语言中,能实现语音文件播放的方法有很多,这里选择其中最简洁的方法,打开“myspeech.py”,在合适的位置添加如图11所示的代码。在该代码中,利用了os.system(file)函数调用系统应用来播放音频文件。
5.文件集成,实现全自动化的应用
上述所编写的“myocr.py”“mytrans.py”“myspeech.py”程序虽然可以分别实现OCR文字识别、文本翻译、语音合成与播放的功能,但如果要实现这几个功能的联合应用、自动执行,还必须做相应的设计与完善。
①设计思路。利用Python的模块化编程思想,将“myocr.py”“mytrans.py”“myspeech.py”分别设计成可复用的模块,然后再设计一个主程序分别加以调用。
②OCR文字识别模块的设计。编辑“myocr.py”文件,将其中的核心代码作出修改(如图12)
③文本翻译模块的设计。编辑“mytrans.py”文件,将其中的核心代码作出修改(如下页图13)。
④语音合成模块的设计。编辑“myspeech.py”文件,将其中的核心代码作出修改(如图14)。
⑤主程序的设计。新建一个Python文件“main.py”文件,编写如图15所示的代码。
以上代码编写完毕以后,执行“main.py”,便实现了OCR文字识别、自动翻译、语音合成并朗读的全自动化过程。
人工智能教学涉及人工智能的概念、原理、应用以及对社会的影响等多方面的知识,借助这些开放平台,学生可以很方便地使用相关接口,开发出能实现人工智能某一领域应用的软件。教师善加利用,必定能达到良好的教学效果。