鄭祥



在日常的校園廣播任務中,學校廣播社的學生們、政教處和團委的老師們需要從教室、行政樓的政教處和團委辦公室出發,穿過整個校園到廣播室里進行煩瑣的設置后才能向全校的師生播送重要的通知。當遇到緊急情況時,他們還要百米沖刺,前往廣播室。
于是,筆者便產生了“智能虛擬語音播報員”的想法——只要在校園內,教師通過手機發送通知消息,廣播室內的主機就會將消息合成為語音通過校園廣播系統播報給全校師生。這個作品的編程重點在于消息的遠程傳輸和接收。
● “虛擬語音播報員”的技術分析
“虛擬語音播報員”作品主要由消息發送端、物聯網平臺和語音播報端三個部分組成。用戶通過“消息發送端”編輯待通知的消息內容,在確認內容無誤后將消息發送至“物聯網平臺”進行存儲和轉發;“語音播報端”的程序則實時接收物聯網平臺上的最新消息,并將文字內容轉換為語音的形式通過校園廣播播報出來。具體流程如圖1所示。
● 物聯網服務器的選擇
物聯網(Internet of Things,簡稱IoT),是指各類事物通過傳感器和控制設備,根據約定的標準或開放協議與互聯網連接,實現數據信息的存儲、傳遞和交互。簡而言之,物聯網可以理解為“物物相連的互聯網”,其目標是讓萬物都能聯網實現溝通對話。本案例的作品中就應用了物聯網平臺的數據信息的存儲和傳遞功能。常見的物聯網平臺有OneNET(中國移動物聯網平臺)、阿里云等,由于本案例中的作品主要應用在校園局域網中,因此采用簡單、易用的SIoT物聯網平臺。
SIoT物聯網平臺的架設:
①下載SIoT物聯網文件,下載網址:https://siot.readthedocs.io/zh_CN/latest/2.setup/01_download.html。
②運行SIoT物聯網服務器:將SIoT物聯網文件復制到校園網內的計算機上進行解壓,并運行文件夾中“SIoT.exe”應用程序,即可完成SIoT物聯網服務的架設,如下頁圖2所示。
③登錄SIoT物聯網平臺:通過服務器的IP地址即可遠程訪問SIoT物聯網平臺,成功登錄SIoT物聯網平臺后可以進行“項目/設備”的查看、創建、刪除等操作,登錄用戶名為siot,密碼為dfrobot,系統界面如下頁圖3所示。
● “消息發送端”的開發
“消息發送端”的開發可以有很多形式,如網頁、PC端應用程序。本案例中選擇了對學校教師來說最為方便的手機App應用程序的形式來實現消息的編輯和發送。手機App應用開發工具很多,筆者選擇了可視化編程且十分容易上手的AppInventor2。
①新建項目:虛擬語音播報員。
②消息發送端界面設計:界面設計中主要采用的組件和界面設計效果,其中“Web客戶端”組件是非可視組件,也是實現消息發送的關鍵組件,如圖4和圖5所示。
③“消息發送端”邏輯設計:在邏輯設計方面,“消息發送端”的核心代碼就是消息的發送。SIoT物聯網平臺提供了WebAPI接口,通過WebAPI接口可以輕松實現消息數據的接收和發送功能,具體代碼如下表所示。
通過“Web客戶端組件”和“WebAPI接口”就能輕松實現消息的發送功能,具體如圖6所示。
● “語音播報端”的開發
“語音播報端”的核心功能是從SIoT物聯網平臺上接收消息數據,并且借助語音合成技術(Text to Speech,TTS),把文本信息轉化成語音信息。考慮到Mind+編程軟件同時具備了MTQQ消息收發模塊和語音合成模塊,筆者選擇了這個簡單的圖形編程工具來編寫這個程序。
MQTT模塊和文字朗讀模塊在“Mind+”編程軟件的“網絡服務”中,點擊加載即可。
1.界面設計
在Mind+中新建一個列表變量,并設置顯示在舞臺中,如下頁圖7所示。
2.“語音播報端”的核心代碼
“語音播報端”涉及的MQTT模塊和文字朗讀模塊,需進行初始化,如下頁圖8、圖9所示。其中“04/001”是MQTT消息的主題名稱,可以自定義,只要這個主題名稱中間有“/”即可。
“語音播報端”的核心代碼消息數據接收和語音合成的程序,如下頁圖10所示。
● 系統應用和測試
“虛擬語音播報員”的消息發送端和語音播報端都開發完成了,只需在校園廣播系統中進行一些簡單的設置,就能實現“虛擬語音播報員”了。
1.安裝“消息發送端”App應用程序
在安卓手機/平板中安裝“消息發送端”的App應用。
2.運行“語音播報端”程序
在一臺計算機中運行“語音播報端”程序,等待語音播報的內容更新。
3.在校園廣播系統中接入“語音播報端”的音頻輸出
將運行“語音播報端”程序的計算機作為音源接入校園廣播系統,具體有兩種方案。
方案1:在校園廣播系統中,通過定時功能設置播報音源為運行了“語音播報端”程序的計算機音頻輸出,如圖11所示。該計算機通過調音臺作為外置音源接入校園廣播系統。
方案2:在校園廣播系統中,找到校園的總音頻功放設備,并將運行“語音合成端”程序的計算機音頻輸出端接入到總音頻功放設備即可。
4.調試運行
在“消息發送端”App中輸入待播放的消息內容,“語音播報端”通過“SIoT物聯網平臺”接收消息內容,并轉換為語音在校園廣播系統中播報出來,運行效果如圖12、圖13所示。
經過測試,“虛擬語音播報員”從消息發出到語音播報的實現,有1秒鐘左右的延遲,這取決于校園內網絡的拓撲結構,但這完全不影響校園通知的播送效果。
● 拓展
“虛擬語音播報員”主要運用了物聯網技術和語音合成技術,但經過拓展和修改也完全可以應用在其他的物聯網項目之中,如在消息的接收端進行開源硬件的拓展,也完全能夠輕松實現“智慧農場”“智能家居”等遠程控制的項目。
這個案例還可以選擇其他的技術來實現。例如,“消息發送端”可以用“MQTTOOL”之類的任何一款MQTT客戶端工具,也可以用網頁,甚至可以用Word、PowerPoint之類的軟件。“語音播放端”可以用Python,在一個小巧的迷你電腦上就能運行。這個案例的最大價值在于,學生能夠用技術去解決一些真實的問題,開發各種個性化的應用,讓智慧校園變得名副其實。