陳新龍
API是編程中常用的概念,譯為“應(yīng)用程序編程接口”。我們可以把API接口理解為打包的特定服務(wù),API提供者將這些服務(wù)封裝起來提供給他人調(diào)用,使用者不需要了解其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。這樣一來很多功能不需要重新開發(fā),大大節(jié)約了時間和成本。
我們想要知道一周天氣如何,如果自己編程來實(shí)現(xiàn)這個功能就很難,因?yàn)樘鞖鈹?shù)據(jù)只有氣象部門才知道。那該如何獲取天氣信息呢?氣象部門會提供數(shù)據(jù)API給公眾使用,我們只要輸入地區(qū)就會知道該地區(qū)一周的天氣情況。這一過程中我們并不需要了解天氣預(yù)報具體是如何實(shí)現(xiàn)的。另外,不同系統(tǒng)和編程語言之間的數(shù)據(jù)通訊,往往也采用API形式進(jìn)行數(shù)據(jù)交互。
今天結(jié)合掌控板、百度智能云和心知天氣網(wǎng)完成天氣預(yù)報程序。心知天氣是一個免費(fèi)提供基礎(chǔ)天氣數(shù)據(jù)的信息平臺,從這里獲取我們所需的天氣預(yù)報信息和生活指數(shù)。百度智能云中結(jié)合了人工智能、大數(shù)據(jù)、云計算服務(wù)的開發(fā)工具,從中調(diào)取需要的語音技術(shù),實(shí)現(xiàn)語音播報天氣、溫度、感冒指數(shù)(圖1)。

申請心知天氣的API秘鑰,打開心知天氣官網(wǎng),注冊并激活賬號,激活登錄成功后,進(jìn)入控制臺環(huán)境,在左側(cè)欄目中找到產(chǎn)品管理,添加天氣數(shù)據(jù)API產(chǎn)品,免費(fèi)版已經(jīng)足夠我們使用了。記下你個人的API密鑰。
接下來申請語言合成API,注冊登錄百度智能云平臺,點(diǎn)擊左側(cè)導(dǎo)航欄,找到人工智能語音技術(shù),創(chuàng)建應(yīng)用,填寫所需要的信息(應(yīng)用名稱:語音天氣預(yù)報,接口選項(xiàng):默認(rèn)全部),填寫完成后點(diǎn)擊注冊。注冊成功后返回上一級界面,會看到已經(jīng)成功創(chuàng)建應(yīng)用。領(lǐng)取免費(fèi)資源,里面有免費(fèi)的普通話、英語、粵語等。領(lǐng)取成功后便可以調(diào)用屬于你自己的API接口了。
獲取到天氣和語音的API之后便可以開始編寫代碼了。打開mPython軟件點(diǎn)擊左下角擴(kuò)展,加載百度語音模塊和天氣模塊。輸入正確的WiFi賬號和密碼,保證網(wǎng)絡(luò)連通。將天氣API的密鑰復(fù)制到指令中,填寫好所需參數(shù)和變量名。
以獲取未來三天浙江省寧波市的天氣數(shù)據(jù)和6項(xiàng)生活指數(shù)為例。分別創(chuàng)建兩個變量W1和W2用來保存信息。想要調(diào)用保存的信息還需要輸入對應(yīng)的主題,例如顯示今天白天的天氣現(xiàn)象、今天的最高溫度、今天的最低溫度等(圖2)。

利用獲取到的百度語言API,將應(yīng)用的API Key和Secret Key復(fù)制到指令對應(yīng)位置上,將天氣信息轉(zhuǎn)換為語音的文本內(nèi)容,保存到本地的音頻文件,必須為mp3文件,通過音頻播放的模式播放此文件。當(dāng)按下掌控板A鍵時,語音播放,當(dāng)按下掌控板B鍵時,語音停止播放(圖3)。

通過掌控板結(jié)合API接口的調(diào)用我們完成了語音播放天氣預(yù)報的小實(shí)驗(yàn)。后期小陳老師也會給大家?guī)砀嘤腥ず拓S富的實(shí)驗(yàn)內(nèi)容。