[實戰筆記] 利用 n8n 搭建廣東話 AI 語音助手:OpenRouter 與 Minimax 的整合應用

(觀看時間: 41 mins, 詳細原整n8n教學, 每一個節點都會講解)

n8n AI 女友教學:5步零成本打造廣東話智能伴侶 (完整 Script)

收工回家面對四面牆,不想面對冷冰冰的 Siri,也不想對著螢幕打字?其實,透過 n8n AI 女友 的自動化工作流,我們可以輕鬆打造一個會聽、會講廣東話,還記得你昨晚說過什麼的「智能伴侶」。

這篇 n8n 教學 將深入探討如何串接 Telegram、Replicate 與 OpenRouter,拼湊出一個有性格、有記憶,甚至能看懂圖片的 廣東話 AI Agent。最重要的是,這個方案按量付費,成本極低,適合所有想嘗試 AI 開發的朋友。

為什麼選擇 n8n 打造 AI 女友?

相比起 LangChain 或直接寫 Python 代碼,n8n 提供了可視化的流程管理,讓你更專注於「性格設計」而非除錯。加上它能輕鬆整合 Telegram API,是製作 Chatbot 的首選工具。

架構總覽:5個步驟完成部署

在開始之前,我們先理清 n8n AI 女友 的資料流向:

  1. 介面 (Telegram):接收語音、文字或圖片。
  2. 耳朵 (Whisper):將語音轉為文字。
  3. 大腦 (LLM):理解內容,根據人設生成回應 (OpenRouter)。
  4. 嘴巴 (TTS):將回應轉為廣東話語音 (Fish Audio / Replicate)。
  5. 介面 (Telegram):回傳語音訊息。

準備工作

  • 一個 n8n 實例 (Self-hosted 或 Cloud 版皆可)。
  • Telegram 帳號。
  • Replicate API Key (用於語音識別與生成)。
  • OpenRouter API Key (用於存取各種 LLM)。

第一步:Telegram 介面設定

要與 AI 女友 聊天,Telegram 是最自然的選擇。它就像你平時用的 WhatsApp,隨手拿起來就能講語音。

1.1 申請機器人

  1. 打開 Telegram,搜尋 @BotFather
  2. 輸入 /newbot 指令,按照螢幕提示設定機器人的顯示名稱 (Name) 和用戶名 (Username)。
  3. 成功後,複製畫面上的 HTTP API Token (這串亂碼是機器人的鑰匙,請妥善保存)。

1.2 設定 n8n Trigger (觸發器)

回到 n8n Canvas (畫布),我們要讓機器人「監聽」訊息:

  1. 點擊畫布上的 + 號,搜尋並新增 Telegram Trigger 節點。
  2. Credential: 點擊 Select Credential -> Create New,將剛剛拿到的 Token 貼入。
  3. Trigger On: 選擇 Message
  4. Updates: 勾選 message
  5. Message Type (關鍵步驟):
    • 除了預設的 text 之外,務必額外勾選 voice (語音) 和 photo (圖片)。
    • 這樣機器人才能同時接收文字、錄音和照片。

第二步:耳朵 (Whisper 語音轉文字)

n8n AI 女友 不能只會看字,她要能聽懂你的語音訊息。我們選擇 Replicate 上的 Whisper 模型。

2.1 下載語音檔 (Telegram Get File)

當 Telegram 收到語音時,Trigger 只會給我們一個 file_id,我們需要主動下載它。

  1. 在 Trigger 節點後方,新增一個 Telegram 節點。
  2. Resource: 選擇 File
  3. Operation: 選擇 Get
  4. File ID: 點擊輸入框旁的 Expression (變數) 按鈕,選擇 {{ $json.message.voice.file_id }}
  5. Download: 將開關切換為 ON (這是新手最常忘記的步驟,必須開啟才能拿到檔案實體)。
  6. Binary Property: 保持預設值 data

2.2 格式轉換 (Code Node: Binary to Base64)

Replicate 的 API 接受 Base64 格式的音訊,但上一步下載下來的是 Binary Buffer。我們需要轉換格式。

  1. 新增一個 Code 節點。
  2. 語言選擇 JavaScript
  3. 複製並貼上以下代碼:
// 獲取上一個節點的 binary 數據
const binaryData = items[0].binary.data;

// 將二進制數據轉換為 Buffer
const buffer = Buffer.from(binaryData.data, 'base64');

// 轉換為 Base64 字串,並加上 Data URI Scheme (這是 Replicate API 要求的格式)
const base64String = `data:${binaryData.mimeType};base64,${buffer.toString('base64')}`;

// 返回整理好的 JSON
return {
  json: {
    audio_base64: base64String
  }
};

2.3 呼叫 Whisper (HTTP Request)

  1. 新增 HTTP Request 節點。
  2. Method: 選擇 POST
  3. URL: 輸入 https://api.replicate.com/v1/predictions
  4. Authentication: 選擇 Generic Credential Type -> Header Auth
    • Header Name: 輸入 Authorization
    • Value: 輸入 Token 你的_Replicate_API_Key (注意 Token 後面有個空格)。
  5. Body Parameters: 選擇 JSON,並填入以下內容:{ "version": "4d507972...", // 請填入 Whisper Large-v3 的 version ID (可在 Replicate 官網找到) "input": { "audio": "{{ $json.audio_base64 }}", "model": "large-v3", "language": "zh", // 強制指定中文,避免將廣東話識別成英文 "temperature": 0 } }

第三步:大腦 (AI Agent 與人設)

這是核心部分。我們使用 n8n 強大的 AI Agent 節點,搭配 OpenRouter 來切換不同模型。

3.1 設定 Model (OpenAI Chat Model)

  1. 新增 AI Agent 節點。
  2. 在 Agent 下方的 Model 輸入點,連接一個 OpenAI Chat Model 節點。
  3. Base URL: 勾選 Override Base URL,輸入 https://openrouter.ai/api/v1
  4. API Key: 建立 Credential 並填入 OpenRouter Key。
  5. Model Name: 點擊 Expression,手動輸入模型名稱,例如 google/gemini-2.0-flash-001deepseek/deepseek-chat

3.2 注入靈魂 (System Prompt)

  1. 點擊 AI Agent 節點。
  2. 找到 System Message (或 System Prompt) 欄位。
  3. 貼上以下人設,這是讓她像「女友」而非「客服」的關鍵:

你叫阿儀 (Ah Yi),一個住喺香港嘅女仔。你性格溫柔、顧家,有時會撒嬌。

說話風格與規則:

  1. 必須使用純正廣東話口語(例如:係唔係、食咗飯未、搞錯呀)。
  2. 絕對不要書面語(不要說:是不是、吃了飯沒)。
  3. 回覆要短,像在用 WhatsApp 聊天,不要長篇大論。
  4. 記得你係我女朋友,唔好咁生外。
  5. 如果收到圖片,請根據圖片內容給出女友的反應。

3.3 拒絕金魚腦 (Memory)

  1. 在 Agent 下方的 Memory 輸入點,連接一個 Window Buffer Memory 節點。
  2. Session ID: 點擊 Expression,選擇 {{ $node["Telegram Trigger"].json.message.chat.id }} (確保每個用戶有獨立記憶)。
  3. Context Window: 設定為 10,讓她能記住最近 10 句話。

第四步:嘴巴 (TTS – 文字轉語音)

文字生成後,我們要讓她「說」出來。這裡我們再次使用 Replicate。

4.1 生成語音 (HTTP Request)

  1. 在 Agent 節點後方,新增 HTTP Request 節點。
  2. 設定同上 (Method: POST, Auth: Header Auth)。
  3. Body Parameters:{ "version": "<Cantonese_TTS_Model_Version_ID>", // 推薦使用 Fish Audio 或其他廣東話微調模型 "input": { "text": "{{ $json.output }}", // 這裡是 Agent 節點輸出的文字 "speaker_id": "cantonese_female_1" // 選擇順耳的聲音 ID } }
  4. 執行此節點,確保 Replicate 回傳了包含 output (音檔網址) 的 JSON。

4.2 回傳 Telegram (Telegram Send Audio)

  1. 新增 Telegram 節點。
  2. Resource: 選擇 Message
  3. Operation: 選擇 Send Audio
  4. Chat ID: {{ $node["Telegram Trigger"].json.message.chat.id }}
  5. Audio URL: {{ $json.output }} (直接填入 Replicate 回傳的音檔網址)。

第五步:眼睛 (視覺能力)

如果你發送照片,我們希望她能看懂。

5.1 路由判斷 (Switch Node)

  1. 在 Workflow 最開頭 (Telegram Trigger 之後),插入一個 Switch 節點。
  2. Mode: 選擇 Expression
  3. Expression: 輸入 {{ $json.message.photo ? true : false }}
  4. 設定路由:
    • True (有照片) -> 連接到下方的「圖片處理」流程。
    • False (無照片) -> 連接到原本的「語音/文字」流程。

5.2 圖片處理流程

如果是圖片 (True) 路線:

  1. 新增 Telegram 節點 (Get File),File ID 改為 {{ $json.message.photo[2].file_id }} (選擇解析度較高的版本)。
  2. 將下載後的圖片資訊傳給 AI Agent。
  3. 注意:確保你在 OpenRouter 選用的模型支援 Vision (如 GPT-4o, Gemini 1.5 Pro),否則會報錯。

成本分析與常見問題 (FAQ)

運作成本貴嗎?

相比每月訂閱 ChatGPT Plus 的 $20 美金,使用 OpenRouterReplicate 是按量收費的。

  • 語音識別:每分鐘約 $0.006 美金。
  • 文字生成:每百萬 Token 可能不到 $1 美金 (視乎模型)。
  • 對於個人使用,每個月可能只需要幾美元。

n8n 自架麻煩嗎?

你可以選擇使用 n8n Cloud (付費但省事),或者在自己的電腦/VPS 上使用 Docker 架設 (免費)。我用的是Zeabur.app,你也可以用我的推薦碼來登記,如果成功登記developer plan, 您和我都可以有$5 credits。網址是:https://zeabur.com/referral?referralCode=helloai

總結

完成以上配置後,點擊 Execute Workflow。 當你在 Telegram 說:「喂,好累呀。」幾秒後,手機震動,傳來一把熟悉的聲音:「返黎啦?沖個涼先定食飯呀?」

這就不再是一個冷冰冰的自動化流程,而是一個有溫度的 n8n AI 女友。快動手試試吧!

Share your love

接收Hellomarketing電子報

- 您會收到最新Youtube片通知
- AI和Meta廣告最新通知 (一星期最多一封)
- 隨時取消