李偉
《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》(以下簡(jiǎn)稱《新課標(biāo)》)除了設(shè)置選擇性必修模塊5“人工智能”外,在必修模塊1中也專門引入了人工智能模塊的學(xué)習(xí),因此,在中小學(xué)開(kāi)展人工智能教育成了信息技術(shù)學(xué)科需要著重研究的內(nèi)容之一。本文探究了如何以百度人工智能開(kāi)放平臺(tái)為載體,開(kāi)展人工智能教學(xué),從而讓學(xué)生在學(xué)習(xí)人工智能原理后能夠?qū)崿F(xiàn)人工智能的應(yīng)用。
● 人工智能開(kāi)放平臺(tái)的優(yōu)勢(shì)
開(kāi)放平臺(tái)是指提供開(kāi)放應(yīng)用程序編程接口(API)或函數(shù)(function)的平臺(tái),用戶在程序設(shè)計(jì)過(guò)程中,使用開(kāi)放平臺(tái)提供的應(yīng)用程序編程接口或函數(shù)就可以增加該平臺(tái)提供的軟件功能或使用該平臺(tái)提供的資源,從而提高程序設(shè)計(jì)的效率,減少數(shù)據(jù)獲取、運(yùn)算的開(kāi)銷。在教學(xué)上,應(yīng)用開(kāi)放平臺(tái)具有多方面的優(yōu)勢(shì):①開(kāi)放平臺(tái)有較多的選擇性。②開(kāi)放平臺(tái)能提供較多的人工智能應(yīng)用。③開(kāi)放平臺(tái)支持大多數(shù)的編程語(yǔ)言。④開(kāi)放平臺(tái)使用方便,入門快。
● 開(kāi)放平臺(tái)實(shí)現(xiàn)OCR文字識(shí)別應(yīng)用教學(xué)
OCR概念于1929年由德國(guó)科學(xué)家Tausheck最先提出,最早對(duì)印刷體漢字識(shí)別進(jìn)行研究的是IBM公司的Casey和Nagy。目前OCR技術(shù)已被廣泛應(yīng)用于生產(chǎn)生活中,是大家比較熟悉的人工智能應(yīng)用之一。百度人工智能開(kāi)放平臺(tái)就包含了OCR文字識(shí)別的開(kāi)放功能,并且其通用文字識(shí)別的調(diào)用是完全免費(fèi)的,比較適合教學(xué)使用。下面介紹如何利用百度人工智能開(kāi)放平臺(tái),使用Python語(yǔ)言實(shí)現(xiàn)通用文字識(shí)別。
1.創(chuàng)建人工智能應(yīng)用實(shí)踐教學(xué)環(huán)境
教學(xué)環(huán)境包括硬件環(huán)境與軟件環(huán)境。從人工智能應(yīng)用項(xiàng)目的教學(xué)需求來(lái)看,其對(duì)于硬件環(huán)境的要求并不高,可以采用學(xué)校已有的計(jì)算機(jī)專用教室。軟件環(huán)境的創(chuàng)建,則需要安裝Python編程環(huán)境,推薦使用Python3.+版本,筆者使用Python3.5、3.6、3.7等版本均能成功實(shí)施。
除了編程語(yǔ)言的創(chuàng)建以外,還需要安裝基于Python語(yǔ)言的OCR開(kāi)發(fā)包“OCR Python SDK”,安裝Python SDK的方式很簡(jiǎn)單:在客戶端,執(zhí)行pip install baidu-aip即可。要查看安裝是否成功,可以在Python環(huán)境下,輸入import aip,如果系統(tǒng)沒(méi)反應(yīng),就說(shuō)明模塊安裝導(dǎo)入成功,可以正常使用。
另外,軟硬件環(huán)境搭建完畢,在進(jìn)行教學(xué)前,還需要申請(qǐng)創(chuàng)建一個(gè)百度開(kāi)發(fā)者賬號(hào),用于調(diào)用百度AI提供的服務(wù)。有了百度開(kāi)發(fā)者賬號(hào)后,就可以在百度開(kāi)發(fā)者A服務(wù)控制臺(tái)中創(chuàng)建一個(gè)新應(yīng)用,獲得的三個(gè)ID“AppID”“API Key”“SECRET_KEY”是系統(tǒng)用于標(biāo)識(shí)用戶,用于為訪問(wèn)做簽名驗(yàn)證,將在程序編寫(xiě)時(shí)使用。
以上所做的創(chuàng)建工作,是針對(duì)具體計(jì)算機(jī)進(jìn)行的,特定的計(jì)算機(jī)只需要做一次,便可以設(shè)計(jì)制作多個(gè)人工智能應(yīng)用項(xiàng)目。
2.基于Python語(yǔ)言實(shí)現(xiàn)文字識(shí)別應(yīng)用
教學(xué)環(huán)境的創(chuàng)建完成以后,便可進(jìn)行具體的文字識(shí)別應(yīng)用項(xiàng)目設(shè)計(jì)制作。編程環(huán)境選用Python。創(chuàng)建一個(gè)Python文件,可以命名為:myocr.py。
①新建“AipOcr”。“AipOcr”是OCR的Python SDK客戶端,使用“AipOcr”可以開(kāi)發(fā)一系列的文字識(shí)別交互方法。Python代碼如圖1所示。在圖1的代碼中,變量“APP_ID”“API_KEY”“SECRET_KEY”可以在AI服務(wù)控制臺(tái)中的應(yīng)用列表中查看。
②讀取圖片。圖像數(shù)據(jù)采用base64編碼,存儲(chǔ)大小要求base64編碼后不超過(guò)4M,用于被識(shí)別的圖像支持jpg/png/bmp格式。Python代碼如圖2所示。其中,“example.jpg”即為待識(shí)別的圖像文件,可以根據(jù)實(shí)際情況提供。如果采用上述方式的代碼,則圖像文件存儲(chǔ)于Python文件同一個(gè)目錄下。
③調(diào)用通用文字識(shí)別模塊,并返回識(shí)別結(jié)果。代碼如圖3所示。
保存Python文件,并將用于測(cè)試的圖像文件命名為“example.jpg”,保存于同一個(gè)目錄之下。至此,用于文字識(shí)別的程序基本編寫(xiě)完畢。本例采用的圖像文件如圖4所示。
④調(diào)試修改。程序編寫(xiě)完畢,必須調(diào)試,以發(fā)現(xiàn)程序代碼中的錯(cuò)誤,或者找出其中不符合用戶需求的情況,并加以修改。運(yùn)行“myocr.py”程序,程序返回?cái)?shù)據(jù)如下頁(yè)圖5所示。
由圖5的返回?cái)?shù)據(jù)可知,文字的識(shí)別率幾乎達(dá)到了100%,但其中夾雜了其他字符,顯然不完全符合要求。通過(guò)分析可知,程序返回的是Python字典類型的數(shù)據(jù)。因此,還需進(jìn)一步修改程序代碼,對(duì)返回值做有用信息的提取工作,可編寫(xiě)如下頁(yè)圖6所示的代碼,替換原程序中的“print(result)”語(yǔ)句。
保存Python文件并運(yùn)行后,即可返回如圖7所示的結(jié)果。顯然,本程序已經(jīng)基本符合要求了。
● 多樣化人工智能融合應(yīng)用,提升學(xué)生實(shí)踐與創(chuàng)新能力
除了OCR文字識(shí)別外,百度人工智能開(kāi)放平臺(tái)還提供了眾多的人工智能項(xiàng)目,如機(jī)器學(xué)習(xí)、智能語(yǔ)音技術(shù)、人臉識(shí)別技術(shù)、人體分析技術(shù)、圖像識(shí)別技術(shù)、自然語(yǔ)言處理技術(shù)等。在人工智能教學(xué)中,可以充分利用這些資源,進(jìn)行創(chuàng)新項(xiàng)目的教學(xué)設(shè)計(jì),以促進(jìn)學(xué)生的實(shí)踐能力與創(chuàng)新能力的提升。例如,在教學(xué)中,可以利用文字識(shí)別技術(shù)、自然語(yǔ)言處理技術(shù)、語(yǔ)音合成技術(shù),設(shè)計(jì)制作一個(gè)全自動(dòng)翻譯項(xiàng)目,實(shí)現(xiàn)OCR文字識(shí)別、識(shí)別以后翻譯成所需目標(biāo)語(yǔ)言(如英文翻譯成中文)、將翻譯以后的文本合成為語(yǔ)音、將合成以后的語(yǔ)音進(jìn)行播放的功能。教學(xué)過(guò)程,可以做如下的設(shè)計(jì)。
1.文字識(shí)別的實(shí)現(xiàn)
OCR文字識(shí)別的實(shí)現(xiàn),可以采用上述的代碼。不再贅述。
2.機(jī)器翻譯的實(shí)現(xiàn)
百度人工智能開(kāi)放平臺(tái)所提供的“通用翻譯API”,其標(biāo)準(zhǔn)版免費(fèi)使用,不限使用字符量。創(chuàng)建一個(gè)Python文件,可以命名為:“mytrans.py”。Python代碼設(shè)計(jì)如圖8所示。
3.語(yǔ)音合成的實(shí)現(xiàn)
①新建AipSpeech。AipSpeech是語(yǔ)音合成的Python SDK客戶端,可以為語(yǔ)音合成提供一系列的交互方法。創(chuàng)建一個(gè)Python文件,可以命名為:“myspeech.py”。代碼如下頁(yè)圖9所示。
在圖9的代碼中,變量“APP_ID”“API_KEY”“SECRET_KEY”可以在AI服務(wù)控制臺(tái)中創(chuàng)建并查看。
②調(diào)用語(yǔ)音合成模塊,并返回合成結(jié)果。待合成的本文長(zhǎng)度必須小于1024字節(jié),如果本文長(zhǎng)度較長(zhǎng),可以采用多次請(qǐng)求的方式。要把一段文字合成為語(yǔ)音文件,需要編寫(xiě)如圖10所示的代碼。保存Python文件并執(zhí)行以后,系統(tǒng)會(huì)產(chǎn)生一個(gè)“myauido.mp3”的音頻文件。試著播放一下,會(huì)發(fā)現(xiàn)其語(yǔ)音即為“待合成語(yǔ)音的文本”。
4.實(shí)現(xiàn)語(yǔ)音文件的自動(dòng)播放
在Python語(yǔ)言中,能實(shí)現(xiàn)語(yǔ)音文件播放的方法有很多,這里選擇其中最簡(jiǎn)潔的方法,打開(kāi)“myspeech.py”,在合適的位置添加如圖11所示的代碼。在該代碼中,利用了os.system(file)函數(shù)調(diào)用系統(tǒng)應(yīng)用來(lái)播放音頻文件。
5.文件集成,實(shí)現(xiàn)全自動(dòng)化的應(yīng)用
上述所編寫(xiě)的“myocr.py”“mytrans.py”“myspeech.py”程序雖然可以分別實(shí)現(xiàn)OCR文字識(shí)別、文本翻譯、語(yǔ)音合成與播放的功能,但如果要實(shí)現(xiàn)這幾個(gè)功能的聯(lián)合應(yīng)用、自動(dòng)執(zhí)行,還必須做相應(yīng)的設(shè)計(jì)與完善。
①設(shè)計(jì)思路。利用Python的模塊化編程思想,將“myocr.py”“mytrans.py”“myspeech.py”分別設(shè)計(jì)成可復(fù)用的模塊,然后再設(shè)計(jì)一個(gè)主程序分別加以調(diào)用。
②OCR文字識(shí)別模塊的設(shè)計(jì)。編輯“myocr.py”文件,將其中的核心代碼作出修改(如圖12)
③文本翻譯模塊的設(shè)計(jì)。編輯“mytrans.py”文件,將其中的核心代碼作出修改(如下頁(yè)圖13)。
④語(yǔ)音合成模塊的設(shè)計(jì)。編輯“myspeech.py”文件,將其中的核心代碼作出修改(如圖14)。
⑤主程序的設(shè)計(jì)。新建一個(gè)Python文件“main.py”文件,編寫(xiě)如圖15所示的代碼。
以上代碼編寫(xiě)完畢以后,執(zhí)行“main.py”,便實(shí)現(xiàn)了OCR文字識(shí)別、自動(dòng)翻譯、語(yǔ)音合成并朗讀的全自動(dòng)化過(guò)程。
人工智能教學(xué)涉及人工智能的概念、原理、應(yīng)用以及對(duì)社會(huì)的影響等多方面的知識(shí),借助這些開(kāi)放平臺(tái),學(xué)生可以很方便地使用相關(guān)接口,開(kāi)發(fā)出能實(shí)現(xiàn)人工智能某一領(lǐng)域應(yīng)用的軟件。教師善加利用,必定能達(dá)到良好的教學(xué)效果。