Unity OpenAI 教學Author: Kelvin Huang製作遊戲需要整合 Unity OpenAI API 增加人工智慧功能嗎?本教學將使用以下的資源 人物模型 Unity-Chan! Model [ AssetStore ] 對嘴動畫 SALSA LipSync Suite [ AssetStore ] 下載 Unity-Chan! 模型 + SALSA LipSync Suite 資源並匯入專案。 依照 com.rest.elevenlabs 的文件,將 Elevenlabs 的套件匯入到專案。 Name = OpenUPM URL = https://package.openupm.com Scope(s) = com.rest.elevenlabs com.utilities 開啟 Package Manager 選擇 My Registries 安裝 ElevenLabs 資源包,相關的套件將一併安裝。 使用 Unity UI 建立場景 / 在場景上加入需要對嘴的 3D 模型 將 unitychan 物件上的 Idle Changer 與 Face Update 腳本停用或刪除 人物的 Animator 可以放入自已的動畫控制器,可以在 Mixamo 或資源商店中下載 ( Unity-Chan 的待機動畫不適用 ) 將 UI 與人物放置在場景
接著製作與 Open AI 串連的功能。 3. 設定 Open AI API / 進入 Open AI 開發平台 https://platform.openai.com/docs/overview 登入帳號後,到 Dashboard 頁面,此時沒有任何 API Key ,點擊右上角的 Create new secret key 來創建一個密鑰。 例如創建一個 Example 的密鑰 ( 使用預設權限即可 ) ,按下 Create secret key 取得密鑰, 請務必立刻複製這個密鑰並且儲存,這個視窗如果關閉,將無法再取得同一組密鑰
建立 OpenAIChat 腳本,程式碼截圖 [ OpenAIChat ] 此時若出現錯誤,請檢查剛才的 ElevenLabs 是否正確安裝。
將場景上的 InputField , Text , Button 物件放入到指定欄位。
這個腳本主要是將問題轉換成Json格式,並傳遞給 Open AI API 以下範例為使用 gpt-3-turbo 模型, 由 system 角色來設定 AI 的回答風格,user 角色詢問 AI 助手問題 最大回應字數為1000,限定字數的好處是提高 AI 回應速度、提高對話精簡 所以我們在 Unity 傳遞訊息時,需要先將對話轉換成 Json 格式,並且收到的 Json 格式再轉換我們的格式。 目前可先測試 Unity 與 Open AI 連線是否沒問題。 若出現 HTTP1.1/401 Unauthorized 錯誤,請檢查 API Keys 如果測試後沒問題,就可以進行下個部份了
製作 TTS 文字轉語音功能本專案將使用 ElevenLabs ( https://elevenlabs.io/ ) 平台提供的文字轉語音服務。 選擇免費試用後輸入名稱與生日 以及你要將 ElevenLabs 用在哪些地方 ( 根據情況填選即可,不影響後續操作 ) 完成後,選擇左下角的個人訊息
選擇 API Keys 按鈕 / 初次使用 API Keys 頁面會沒有任何金鑰,按下 Create API Key 建立一個 輸入專案名稱,按下 Create 按鈕。 系統將提供 API 金鑰,按下 Copy to Clipboard 儲存到剪貼簿,視窗關閉後無法再取得同一組金鑰
之後可以在左邊按下 Voices 按鈕,進入聲音頁面,免費帳號可以新增三個額外的聲音,可以試聽聲音後按下 + add 按鈕,將指定聲音加入到自己的帳號,而免費帳號每個月可以轉換 10000 個文字
設定完成後,回到 Unity 編輯器 建立 ElevenLabsTTS.cs 腳本,開啟下列的文件後,將內容複製到 ElevenLabsTTS.cs 腳本中 ElevenLabsTTS.cs 為與 Elevenlabs 連線的腳本,AudioController.cs 為播放聲音的腳本 ( 包含背景音樂與人聲 ) 需要依照上面步驟,匯入 ElevenLabs 套件才可以使用
此檔案將會自動移動到 Resources 資料夾。 選擇新增的設置擋,貼上 API 金鑰
選擇 AudioController 物件,將剛剛建立的 AudioSource 物件拖曳放入到 AudioController.cs 的欄位中 建立 ElevenLabsTTS 空物件,將 ElevenLabsTTS.cs 拖曳放入到此物件中 將剛剛建立的設置檔案放置在 Configuration 欄位 將剛剛建立的 Audio Controller 物件拖曳放入到 Audio Controller 欄位中 此腳本提供試聽語音的功能,在 Inspector 中按下按鈕後可以播放或停止試聽語音
在 ElevenLabsTTS.cs 腳本中,需要執行 TextToSpeech (string ) 來將文字轉換成聲音,腳本內容可以參考範例文件 播放試聽功能需使用 OnPreviewButtonClicked() 方法,要從 Voice.PreviewUrl 抓取試聽語音網址,並使用 UnityWebRequest 取得聲音資訊並播放 開啟 OpenAIChat 腳本,之前因為還未建立 ElevenLabsTTS.cs 腳本,先將這部分註解,但是現在已經可以使用 TTS 功能 找到 public ElevenLabsTTS tts 相關部分,將註解刪除 測試遊戲,確認是否正確生成語音。
加入語音辨識功能A. 使用 Google Cloud 服務 - Speech Recognition using Google Cloud Pro [ AssetStore ] B. 離線語音辨識服務 - Undertone - Offline Whisper AI Voice Recognition [ AssetStore ] 語音辨識功能,使用Speech Recognition using Google Cloud [VR\AR\Mobile\Desktop] Pro 套件 若需要離線運作可使用 Undertone - Offline Whisper AI Voice Recognition 套件,但需要將已訓練的檔案下載到本地使用,專案與執行檔會很大,舊版的手機執行後可能會閃退。
此範例使用 Speech Recognition using Google Cloud 套件,將會使用 Google Cloud 服務 https://console.cloud.google.com/welcome 如果沒使用過,目前應該是沒有專案的,按下選擇專案按鈕
接著進入 Speech-to-Text API 的頁面 https://console.cloud.google.com/apis/library/speech.googleapis.com 點擊啟用 如果之前沒有綁定信用卡,這次會需要你啟用計費功能 如果沒特別啟用計費,將不會從信用卡中扣取費用 確認身分,綁定信用卡 綁定完成後,將會看到 API 已啟用的訊息 到憑證頁面後,按下建立憑證 選擇 API 金鑰 建立完成後,會顯示新的 API 金鑰
GoogleSpeechRecognition 腳本主要提供錄製、停止錄製、錄製成功、錄製失敗、辨識成功與辨識失敗的事件,當有連接到麥克風時,將會以電腦的默認麥克風來錄音 確認能不能辨識成功 這是有進行網路搜尋的結果 在目前的專案中,啟用 Custom Search API 點擊搜尋引擎的名稱,會進入總覽頁面,有一個搜尋引擎ID的欄位,這是等等會使用到的 我們先撰寫範例腳本,先不與虛擬AI專案合在一起使用 SearchResultItem 預置物件的設置如下,使用一個 Panel 下增加兩個 Text 物件 按下 Play 後測試,在 Panel 會生成剛剛製作的預置物件,顯示 Google 的搜尋結果標題與摘要
在 GoogleSearchManager.cs 腳本中,有 SearchResult 類別來接收搜尋到的訊息,包含標題 title、網址 link與摘要 snippet (不是全部內容) 這個步驟會使用到解析網頁內容的工具 HtmlAgilityPack ,我們抓取網頁內容時可能也會抓到網頁程式碼,使用 HtmlAgilityPack 工具,就可以將網頁程式碼清除 安裝完成後,就可以使用 HtmlAgilityPack 工具了 這是更新後的 OpenAIChat.cs 腳本,直接取代 OpenAIChat.cs 的所有內容 建立可以填寫提示詞的 UI 介面,範例如下圖 執行後的成果如下 在場景上建立空物件 GoogleSearchManager 後,將 GoogleSearchManager.cs 拖曳放入到空物件中
將剛剛建立的 UI 物件,放置到 OpenAIChat 腳中的適當欄位 因為 UI 設置比較麻煩,這裡稍微補充一下 Content Size Fitter 的 Vertical Fit 更改為 Preferred Size
如果增加 Text 文字的行數,會發現 Panel 面板會隨著文字行數變多而變高 如果希望 Panel 長高方向是從下到上,可以更改 Panel 的 Rect Transform 中 Pivot 欄位,此處更改為 ( 0.5 , 0 ),並將 Pos Y 更改為 0 因為 Panel 中心位置改變 ( 改成物件最下方 ),所以會從下面往上方變高,看起來就像聊天訊息一樣 UI 與腳本設置好之後,可以按下 Play 測試 AI 是否可以正常回答訊息 勾選全網搜尋後,會搜尋到較新的資料 GoogleSearchManager 腳本中會看到搜尋紀錄 ( 標題、網址與摘要 ) 接著可以測試 F1 設置面板,將一般提示詞更改為 使用英文回答問題 AI 的回答語言會變成英文,代表 AI 可以依照我們的需求來做出回應
將 AudioSource_Voice 拖曳放入到 AudioSource 欄位中 按下 New Viseme 按鈕,增加嘴部動畫
在 Blender Shapes 中,已經知道他有分出A I U E O 嘴型了,直接使用這些參數即可 9. 匯入 VRM 檔案 匯入 UniVRM 資源包 預置物件上的元件很多,不過先不用進行編輯 設置 SALSA 元件上的 References 項目 可以直接使用 A I U E O 的參數來製作嘴部表情 按下 Play 測試,測試聲音出來後,人物的嘴巴有沒有跟著動作
OpenAI-20250321.docx / Share ( inc Scripts )
AI 助理開發專案企劃AI 助理開發專案 - 預計結合 Unity 的跨平台遊戲開發能力與 OpenAI 的自然語言理解,打造適用於長照館的智慧助理。以下是針對開發中的 AI 助理軟體的說明,包含架構設計、功能模組與應用方式:
一、技術架構建議1. Unity + OpenAI 整合框架 使用 Unity 串接 OpenAI API(可使用 GPT-4 Turbo 語言模型)。 將語音輸入傳送給 Open AI API,接收回應後顯示於畫面上,與使用者以自然方式對話。 2. 語音支援 系統整合 Google Cloud Speech Recognition 或 Offline Whisper AI Voice Recognition 語音辨識,接受使用者的語音輸入,並搭配 Elevenlabs 的語音套件讓 AI 助理開口說話,
二、AI 模型與問答策略1. 使用 OpenAI GPT 搭配 RAG 檢索機制,為不同場景建置「知識庫」或「問與答範圍」。 可使用嵌入搜尋 + 本地向量庫的架構篩選答案。 2. 範圍限制策略 透過預設的「長照中心」的場景、「長照人員」的角色設定,定義 AI 助理的提示與指令,提升系統回覆訊息的正確性。
三、UI / UX 設計AI 助理系統將以 3D 角色立繪呈現,增加親和力,使用大字體設計、語音輸入按鈕、簡單人性化的選單。 每次回應後提供簡易選項(回首頁、再次詢問、操作方式說明等)。
四、擴充與本地資料訓練本地資料可使用 Word, PDF, JSON 等文件檔案訓練與微調模型。無需將全部資料送出雲端,建置局部知識庫 + GPT 模型結合(使用 LLM 微調或 Whisper + RAG 模式)。
五、跨平台支援本專案以 Unity 發佈 Windows 軟體,主要為大型直立觸控螢幕設計,適用於長照館的展示。未來更可擴展開發 Android / iOS 行動裝置應用程式。
AI 伺服器選購參考硬體建議項目參考來源 Business Next 數位時代 ( https://www.bnext.com.tw/article/79346/computex-aipc-2024-asus-acer-msi-gigabyte ) Intel 於 2023 年底發表三大定義: - 需搭載 NPU、CPU、GPU - 支援微軟 Copilot 功能 - 鍵盤直接配置 Copilot 鍵 Microsoft 於 2025 年將 AI PC 定義拉高,Copilot+定義為: - 至少需 16GB 記憶體、256GB 儲存容量 - NPU 算力要求 40TOPS 以上,可存取先進 AI 模型 - 具備全天電池續航
針對 AI 助理系統的使用情境,運作穩定性,建議選擇支援 AI 技術的品牌桌機或 NUC 迷你電腦,但不建議採用筆記型電腦。以下幾款可參考:
華碩 ASUS NUC 14 PRO AI U5(RNUC14LNKU5073N9)(L10) 參考售價 $33,900 圖形處理單元:內建 Intel Arc GPU 提供高達 67 TOPS 運算效能 增強 AI 功能:提供高達 48 NPU TOPS 運算效能 參考網頁 https://24h.pchome.com.tw/prod/DSAUEW-A900IIGX9
微星 MSI Infinite S3系列- i5處理器/16G記憶體/1TB SSD/RTX5060顯卡/Win11家用版 參考售價 $34,900 處理器:Intel Core i5-12400F 記憶體:16GB DDR5 5600MHz 顯示晶片:GeForce RTX 5060 VENTUS 2X OC 8G ( 支援 CUDA 可執型 LLM 大語言模型 ) 固態硬碟:1TB M.2 PCIe 參考網頁 https://24h.pchome.com.tw/prod/DSAA6I-A900ITXS4
AI 助理主機選購參考說明:AI 助理主機選擇內建觸控螢幕的 AIO 電腦一體機,此設備為商務展示用電腦,需搭配 AI 伺服器與網路連線使用。
1、Nugens 43吋 AIO 觸控電腦一體機 (Intel Celeron J6412/8G/128GB SSD/Windows 11 Pro 專業版) 參考售價 $33,800 支援10點觸控,含無線鍵盤組 商用顯示面板搭配內建喇叭,滿足各種需求 參考網頁 https://24h.pchome.com.tw/prod/DSAA8S-A900ICZLJ
2、Nugens 43吋 AIO 觸控電腦一體機-旋轉支架款 (Intel Celeron J6412/8G/128GB SSD/Windows 11 Pro 專業版) 參考售價 $33,800 支援20點觸控,含無線鍵盤組 商用顯示面板搭配內建喇叭,搭配4輪旋轉支架,滿足各種需求 參考網頁 https://24h.pchome.com.tw/prod/DSAA8S-A900INW1P
Copyright © 2025 CG Digital Corp. All rights reserved.
|