練習 - 設定意圖和自然語言理解
在本課程模組中,您將探索 Azure 語音服務的意圖辨識。 意圖辨識可讓您將應用程式與 AI 支援的語音命令裝備在一起,讓使用者可以說出非特定語音命令,而且仍然讓系統瞭解其意圖。
準備場景
在 [階層] 視窗中,選取 Lunarcom 物件,然後在 [偵測器] 視窗中,使用 [新增元件] 按鈕將 Lunarcom 意圖辨識器 (腳本) 元件新增至 Lunarcom 物件。
在 [專案] 視窗中,流覽至 [資產>MRTK]。Tutorials.GettingStarted Prefabs>RocketLauncher 資料夾、將RocketLauncher_Complete預製專案拖曳到階層視窗中,並將它放在相機前的適當位置。> 例如:
- 轉換位置 X = 0, Y = 1, Z = 1.5
- 轉換旋轉 X = 0,Y = 90,Z = 0
在 [階層] 視窗中,再次選取 Lunarcom 對象,然後展開 [RocketLauncher_Complete>Buttons 物件],並將每個 Buttons 物件的子物件指派給對應的 [農曆啟動器按鈕] 字段。
建立 Azure 語言服務資源
在本節中,您將針對您將在下一節中建立的交談語言理解 (CLU) 應用程式建立 Azure 語言服務資源。
登入 Azure 入口網站,然後選取 [建立資源],然後搜尋並選取 [語言服務]:
選取 [建立] 按鈕,以建立此服務的執行個體:
在 [建立語言] 頁面上,輸入下列值:
- 針對 [訂用帳戶],選取 [免費試用] (如果您具有試用的訂用帳戶)。 如果您沒有試用的訂用帳戶,請選取您的其他訂用帳戶之一。
- 針對 [ 資源群組],選取 [ 建立新 連結],然後輸入適當的名稱;例如 MRTK-Tutorials。 選取 [確定]。
提示
如果您的 Azure 帳戶中已經有另一個適當的資源群組,您可以使用此資源群組,而不是建立新的資源群組。
仍在 [建立] 頁面上輸入下列值:
- 針對 [ 名稱],輸入適合服務的名稱;例如 MRTK-Tutorials-AzureSpeechServices
- 針對 [區域],選擇靠近您應用程式用戶實體位置的位置;例如, 美國東部
- 針對 [定價層],在本教學課程中,選取 [F0 (每 30 天 5k 交易)]
接下來,選取 [ 檢閱 + 建立],檢閱詳細數據,然後選取 頁面底部的 [建立 ] 按鈕以建立資源(如果您已設定要建立的資源群組]:
一旦完成資源建立流程,您就會看到訊息「您的部署已完成」:
建立交談語言理解應用程式 (CLU)
在本節中,您將建立 CLU 應用程式、設定和定型其預測模型,並將其連線到您在上一個步驟中建立的 Azure 語言資源。
具體而言,您建立了一個意圖,如果使用者說出應該採取的動作,則應用程式將會根據使用者所參考的按鈕,從場景中的三個藍色按鈕之一觸發 PressableButton.OnClicked()
事件。
例如,如果使用者說 [go ahead and launch the rocket],應用程式會預測 [go ahead] 代表應採取一些動作,以及目標事件PressableButton.OnClicked()
位於 [啟動] 按鈕上。
您將採取來達成此目的的主要步驟為:
- 建立 CLU 應用程式
- 建議意圖
- 新增範例語句
- 建立實體
- 將實體指派至範例語句
- 定型、測試和發佈應用程式
1. 建立 CLU 應用程式
使用您在上一節中建立 Azure 資源使用的相同使用者帳戶、登入 Language Studio。
登入之後,系統會提示您選取 Azure 資源。 選取您在建立 Azure 語言服務資源時所使用的值,然後選取 [ 完成]。
連線 Azure 資源之後,請選擇 [建立新的 > 對話語言理解 ],然後在 [ 建立專案 ] 彈出視窗中輸入下列值:
- 針對 [名稱],請輸入適當的名稱,例如:MRTK-Tutorials-AzureSpeechServices。 記下所選取的名稱,以在稍後的教學課程中使用。
- 針對 [語句主要語言],選取語言。
- 針對 [描述],選擇性地輸入適當的描述。
選取 [下一步] 以檢閱專案設定。 選取 [建立] 以建立專案。
建立新的應用程式時,系統會帶您前往該應用程式的 [架構定義 ] 頁面。
2. 建立意圖
從 [架構定義] 頁面中,選取 [新增],然後在 [新增意圖] 快顯視窗中輸入下列值:
- 針對 [意圖名稱] 輸入 PressButton
選取 [新增意圖] 以建立新的意圖:
警告
基於本教學課程的目的,您的 Unity 專案會依據名稱來參考此意圖 (
PressButton
)。 請務必將意圖命名為完全相同。建立新的意圖之後,您會回到 [架構定義] 頁面。 PressButton 意圖會顯示在意圖清單中。
3. 建立範例語句
在左側邊欄上,選取 [資料標記] 按鈕。 在 [數據卷標] 畫面上,從 [選取意圖] 下拉式清單中選取 [PressButton]。
在 PressButton 意圖的 [表達] 清單中,新增以下範例表達:
- 啟動啟動序列
- 向我顯示放置提示
- 起始啟動序列
- 按下放置提示按鈕
- 向我提供提示
- 推動啟動按鈕
- 我需要提示
- 按下重設按鈕
- 重設體驗的時間
- 繼續並啟動火箭
當您新增所有範例語句時,您的數據標籤面看起來應該像這樣:
警告
針對本教學課程的目的,您的 Unity 專案會參考 「hint」、“hints”、“reset” 和 “launch” 這兩個字。請務必在所有實例中以完全相同的方式拼字。
4. 建立實體
在 [資料標記] 頁面上,選取右側 [活動] 窗格中的 [新增實體],然後在 [新增實體] 快顯視窗中輸入下列值:
- 在 [實體名稱] 中,輸入動作
選取 [新增實體 ] 以建立新的實體。
重複上一個步驟以建立另一個名為 Target 的實體,因此您有兩個名為 Action 和 Target 的實體。
警告
基於本教學課程的目的,您的 Unity 專案會依據名稱 (
Action
和Target
) 來參考這些實體。 請務必將實體命名為完全相同。
5. 將實體指派至範例語句
選取 [移至] 一字,然後在前一個字上選取 [動作],然後從內容快捷功能表選取 [動作],以將 [動作] 標示為 [動作] 實體值。
go ahead 片語現在定義為動作實體值。 現在,「繼續」一詞下有動作實體值。
注意
您在影像中卷標底下看到的紅線表示實體值尚未預測;當您在下一節中定型模型時,將會解決此問題。
接下來,選取 [啟動] 字組,然後從內容快捷功能表選取 [目標],將啟動標示為 [目標] 實體值。
啟動字詞現在定義為 [目標] 實體值。 現在在 「launch」 一詞下有目標實體值。
PressButton 意圖範例語句
go ahead and launch the rocket
現在已設定為進行預測,如下所示:- 意圖:PressButton
- 動作實體:go ahead
- 目標實體:啟動
重複前一個流程,將動作和目標實體標籤指派給每一個範例語句,請記住,下列字組應該標示為 [目標] 實體:
- 提示 (將 Unity 專案中的 HintsButton 視為目標)
- 提示 (將 Unity 專案中的 HintsButton 視為目標)
- 重設 (將 Unity 專案中的 ResetButton 視為目標)
- 啟動 (將 Unity 專案中的 LaunchButton 視為目標)
選取儲存變更。 當您標記所有範例語句時,您的 PressButton 意圖頁面看起來應該像這樣:
6. 定型、測試和發佈應用程式
若要定型應用程式,請從左側邊欄中選取 [定型] 按鈕。 您應該會看到 [訓練作業] 頁面。
選取 [開始定型作業],然後選取下列值:
- 選取 [定型新模型 ] 並輸入適當的名稱;例如 MRTK-Tutorials-AzureSpeechServices。
- 選取 [ 標準訓練]。
- 選取 [ 自動從定型數據分割測試集]。
選取 [定型] 以開始定型程序。 當定型完成處理時,您會看到 已完成的訓練 通知。
若要檢閱定型的結果,請在 [定型作業] 畫面上選取您的 [輸出模型 ],然後選取 [ 模型效能] 索引標籤。
若要部署應用程式,請選取左側邊欄中的 [部署模型] 按鈕。 您應該會看到 [部署模型] 頁面。
選取 [新增部署],然後在 [新增部署] 快顯視窗中輸入下列值:
- 選取 [建立新的部署名稱],然後輸入適當的名稱。 記下您選取的名稱,稍後在本教學課程中將會用到它。
- 從 [選取定型的模型] 下拉式清單中選取您先前建立的模型 。
選取 [部署 ] 並等候發佈程式完成。
選取新的部署,然後選取 [ 取得預測 URL ] 按鈕。
將 Unity 專案連線至 CLU 應用程式
在 [ 取得預測 URL ] 彈出視窗上,選取 [複製 ] 圖示以複製 預測 URL。
回到 Unity 專案中的 [階層] 視窗中,選取 [農曆通] 對象,然後在 [偵測器] 視窗中找出 Lunarcom 意圖辨識器 (腳本) 元件,並將其設定如下。
- 在 [CLU 端點] 欄位中,貼上您在上一個步驟中複製的 [預測 URL]。
- 在 [CLU 專案名稱] 欄位中,貼上您在建立 CLU 應用程式時記下的 [專案名稱]。
- 在 [CLU 部署] 欄位中,貼上您在建立新部署時記下的 [部署名稱]。
- 在 [ 語言服務 API 金鑰 ] 字段中,傳遞語言 服務的 API 金鑰 (Key1 或 Key2)。 您可以選取語言服務,然後在左側功能表中選取 [金鑰] 和 [端點],以在 Azure 入口網站 中找到此專案。
測試意圖辨識
若要直接在 Unity 編輯器中使用意圖辨識,您必須允許開發電腦使用聽寫。 若要確認此設定,請開啟 Windows 設定,然後選擇 [隱私權>語音],並確定 [在線語音辨識] 已開啟。
如果進入遊戲模式,您可以先按下火箭按鈕來測試意圖辨識。 然後,當您說出第一個範例語句時, 請繼續發射火箭,您會看到 LunarModule 發射到太空。
請嘗試所有範例語句,然後嘗試範例語句的一些變化,然後嘗試一些隨機語句。