李偉



《普通高中信息技術課程標準(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文字識別、自動翻譯、語音合成并朗讀的全自動化過程。
人工智能教學涉及人工智能的概念、原理、應用以及對社會的影響等多方面的知識,借助這些開放平臺,學生可以很方便地使用相關接口,開發出能實現人工智能某一領域應用的軟件。教師善加利用,必定能達到良好的教學效果。