本文由 WxBit 站長原創(chuàng),轉(zhuǎn)載請注明出處。內(nèi)容僅適用于 App Inventor 2 WxBit?漢化版
WxBit?漢化版在周末悄悄發(fā)布一個里程碑更新,增加了“人工智能”分類,其中的百度語音識別、合成與喚醒,給 App Inventor?應(yīng)用增加了嘴巴和耳朵。有別于“多媒體”分類中的語音合成與識別組件,百度語音交互組件不要求手機安裝第三方語音識別應(yīng)用與合成引擎,通用性更好。本站獨有的語音交互組件,讓我們輕松實現(xiàn)屬于自己的語音助理。

在開始介紹語音交互組件前,先要介紹自定義“應(yīng)用包名(Package Name)”,在應(yīng)用首屏(Screen1)的設(shè)計視圖屬性中設(shè)置。這個功能雖然已經(jīng)上線有一段時間,但是應(yīng)該很多同學(xué)沒有注意,也沒有用過。應(yīng)用包名,在 App Inventor 中等同于應(yīng)用ID,是應(yīng)用的唯一標(biāo)識,類似人的身份證號碼。包名中只能包含數(shù)字、字母、點和下劃線,點為分隔符,將包名分割為多個部分,每部分必須以字母開頭。例如:com.wxbit.appinventor.aicompanion3,這是?ai伴侶的包名。_com.abc、com.123、.com.abc,這些都是錯誤格式的包名。

如果不設(shè)置包名,系統(tǒng)生成APK的包名一般是這樣:wxbit.ai_Q(32位唯一標(biāo)識).項目名稱,例如:wxbit.ai_QCCC18AB0D04C3B7CFD21E1D67A60AF0F.test。如果設(shè)置應(yīng)用包名,系統(tǒng)默認(rèn)會在前面加上“wxbit.”前綴。比如填寫appinventor,則最后生成APK的包名就是:wxbit.appinventor。
如果需要使用離線合成和語音喚醒,正確設(shè)置應(yīng)用包名是必須的步驟。
下面分別介紹百度語音交互3大組件:
一、百度語音識別
使用流式協(xié)議,能夠聽用戶說,即時處理獲得結(jié)果。不需要像Rest API,上傳整個錄音文件才獲得結(jié)果。即時響應(yīng),能夠給用戶更好的使用體驗。

識別模式提供了多種配置,適用于不同的場景。

詳細說明請參考文檔:http://ai.baidu.com/docs#/ASR-Android-SDK/3557153c
二、百度語音合成
不同于Rest API下載完整個音頻文件再播放,在線模式能夠一邊下載一邊播放。百度語音合成不支持“純離線”模式,首先都會嘗試聯(lián)網(wǎng),如果選擇的不是“純在線模式”,聯(lián)網(wǎng)超時后會使用內(nèi)置的離線引擎合成語音。需要注意的是,第一次使用離線語音合成,一定需要聯(lián)網(wǎng)下載授權(quán)文件。授權(quán)文件與 AppId、AppKey、SecretKey?和應(yīng)用包名相關(guān),詳細配置本文最后再說明。

語音合成功能概要
純在線模式:也就是不使用離線引擎,生成的APK文件較小,推薦使用。
WiFi在線,6秒超時:連接 WiFi?時使用在線合成,如果 6 秒還未連接成功和連接的不是 WiFi?網(wǎng)絡(luò),則使用離線合成。
WiFi與4G在線,6秒超時:連接 WiFi?和 4G?網(wǎng)絡(luò)時使用在線合成,如果 6 秒還未連接成功或使用的是其他網(wǎng)絡(luò),則使用離線合成。
WiFi與4G在線,1.2秒超時:同上,連接超時時間為1.2秒。
WiFi在線,1.2秒超時:同“WiFi在線,6秒超時”,連接超時時間為1.2秒。
詳細說明請參考文檔:http://ai.baidu.com/docs#/TTS-Android-SDK/47c81acf
三、百度語音喚醒
此喚醒,并非點亮手機屏幕這個“喚醒”。而是應(yīng)用聽到用戶說的特定關(guān)鍵詞,會觸發(fā)事件代碼塊。啟用后臺喚醒后,即使手機是鎖屏狀態(tài),也一樣可以觸發(fā)事件代碼塊。后臺喚醒功能,會加速電量消耗,請謹(jǐn)慎使用。

系統(tǒng)內(nèi)置支持10個關(guān)鍵詞,分別是:小寶同學(xué)、拍照、播放、暫停、上一首、下一首、增大音量、減小音量、打開電燈、關(guān)閉電燈。如果需要自定義喚醒詞,請到這里導(dǎo)出:http://ai.baidu.com/tech/speech/wake?。導(dǎo)出的喚醒詞為WakeUp.bin,上傳這個文件到項目的素材中即可。
在設(shè)計視圖或邏輯視圖中啟用語音喚醒功能,當(dāng)用戶說到喚醒詞,“被語音喚醒”事件會被觸發(fā),在這個代碼塊中完成對用戶的回應(yīng)。
因為語音喚醒,是離線識別,必須正確配置?AppId、AppKey、SecretKey?和應(yīng)用包名。如果只是為了測試,可以留空以上三個參數(shù),應(yīng)用包名設(shè)置為:baidu。生成APK的應(yīng)用包名實際是 wxbit.baidu,使用了本文作者配置的百度語音應(yīng)用。
本文由 WxBit 站長原創(chuàng),轉(zhuǎn)載請注明出處。內(nèi)容僅適用于 App Inventor 2 WxBit?漢化版
下文介紹百度語音應(yīng)用的創(chuàng)建,如果你已經(jīng)有百度云服務(wù)帳號,直接進入控制臺創(chuàng)建應(yīng)用。
1、注冊百度云帳號
打開https://cloud.baidu.com,點擊“管理控制臺”,進入登錄界面。如果沒有百度帳號,請先注冊一個,具體步驟這里不做贅述。注冊完百度帳號,回到這里注冊百度云帳號。

第一次登錄百度云需要補充些信息,然后進入控制臺。

2、創(chuàng)建語音交互應(yīng)用
從控制臺進入“語音識別”創(chuàng)建應(yīng)用,并選擇“Android”,然后填寫ai項目首屏設(shè)置的包名,加上“wxbit.”前綴。比如ai項目應(yīng)用包名設(shè)置的是?com.appinventor.project,在這里應(yīng)該填寫:wxbit.com.appinventor.project 。

3、獲取?AppId、AppKey、SecretKey

填寫好應(yīng)用包名與百度語音應(yīng)用的參數(shù),就可以使用百度語音組件啦。

這里有個使用百度語音組件實現(xiàn)的演示應(yīng)用,供大家測試:語音交互功能演示.apk
