星期五, 3月 20, 2026

# OpenCode + Discord + 語音設定指南

 # OpenCode + Discord + 語音設定指南


## 目標

把 OpenCode AI 助手接入 Discord,讓你可以在 Discord 頻道裡用自然語言和 AI 對話,並讓 AI 開口說話。


---


## 第一部分:建立 Discord Bot


### 1.1 建立應用程式


1. 前往 [Discord Developer Portal](https://discord.com/developers/applications)

2. 點擊右上角 **New Application**

3. 輸入名稱(例:OpenCode Bot)

4. 點擊 **Create**


### 1.2 取得 Bot Token


1. 左側選單點 **Bot**

2. 點 **Reset Token**

3. **複製並保存 Token**(只會顯示一次!)


### 1.3 開啟權限


在 Bot 頁面往下滾動,找到 **Privileged Gateway Intents**,開啟:

- PRESENCE INTENT

- SERVER MEMBERS INTENT  

- MESSAGE CONTENT INTENT


### 1.4 邀請 Bot 到伺服器


1. 左側選單 **OAuth2 > URL Generator**

2. Scopes 勾選:`bot` 和 `applications.commands`

3. Bot Permissions 勾選:

   - Read Messages

   - Send Messages

   - Manage Channels

   - Read Message History

4. 複製產生的 URL,貼到瀏覽器,選擇伺服器


---


## 第二部分:安裝 Docker


1. 去 [docker.com](https://docker.com) 下載 **Docker Desktop**

2. 安裝後啟動 Docker

3. 等待 Docker 運行(Docker Desktop 圖示變綠色)


---


## 第三部分:設定 OpenCode MCP


### 3.1 開啟 OpenCode 設定檔


**Windows:**

```bash

notepad %AppData%\.config\opencode\opencode.json

```


**macOS / Linux:**

```bash

nano ~/.config/opencode/opencode.json

```


### 3.2 加入 Discord MCP 設定


```json

{

  "mcp": {

    "discord": {

      "command": "docker",

      "args": [

        "run", "--rm", "-i",

        "-e", "DISCORD_TOKEN=你的Bot_Token",

        "-e", "DISCORD_GUILD_ID=你的伺服器ID",

        "saseq/discord-mcp:latest"

      ]

    }

  }

}

```


**替換內容:**

- `你的Bot_Token` → 剛才複製的 Discord Bot Token

- `你的伺服器ID` →  Discord 伺服器 ID(在 Discord 開發者模式開啟後,滑鼠右鍵頻道可取得)


### 3.3 驗證設定


```bash

opencode mcp list

```


應該看到 `discord` 在列表中。


---


## 第四部分:測試


重啟 OpenCode,然後輸入:


```

在 Discord 發送「測試成功」

```


Bot 應該會在你的 Discord 伺服器發送訊息。


---


## 第五部分:設定語音(TTS)


### 5.1 安裝 Edge TTS


```bash

pip install edge-tts

```


### 5.2 建立語音腳本


建立 `speak.py`:


```python

import subprocess

import os


def speak(text, voice="zh-TW-HsiaoYuNeural"):

    output_path = "C:/Users/cowpe/output.mp3"

    cmd = [

        "edge-tts",

        "--voice", voice,

        "--text", text,

        "--write-media", output_path

    ]

    subprocess.run(cmd, capture_output=True)

    os.startfile(output_path)


if __name__ == "__main__":

    import sys

    if len(sys.argv) > 1:

        text = " ".join(sys.argv[1:])

        speak(text)

```


### 5.3 測試語音


```bash

python speak.py 你好,這是語音測試

```


### 5.4 可用中文語音


| 語音 | 說明 |

|------|------|

| zh-TW-HsiaoYuNeural | 台灣女生 |

| zh-TW-YunJheNeural | 台灣男生 |

| zh-CN-XiaoxiaoNeural | 中國女生 |

| zh-CN-YunxiNeural | 中國男生 |


---


## 第六部分:讓 OpenCode 自動朗讀回覆


### 6.1 方法一:命令列直接朗讀


每次想讓 OpenCode 回答並朗讀時,用這個指令:


```bash

python speak.py "$(opencode run '用一句話解釋什麼是區塊鏈')"

```


### 6.2 方法二:在 OpenCode 裡呼叫


在 OpenCode 輸入:


```

執行 python speak.py "測試訊息"

```


### 6.3 方法三:結合 ngrok 讓外面也能用


如果想在外面用手機也能控制家裡的 OpenCode:


1. 安裝 ngrok:

   ```bash

   pip install ngrok

   ```


2. 啟動 OpenCode 服務:

   ```bash

   opencode serve --port 8080

   ```


3. 另一個終端開 ngrok:

   ```bash

   ngrok http 8080

   ```


4. 複製 ngrok 給的 URL,在外面也能用了


---


## 第七部分:常見問題


### Q: Docker 啟動失敗?

確認 Docker Desktop 正在運行,圖示應該是綠色的。


### Q: Bot 沒有回應?

檢查 Bot 是否有足夠權限(Administrator 或明確開啟讀寫訊息權限)。


### Q: Token 無效?

去 Developer Portal 重新 Reset Token,舊的會失效。


### Q: 想換語音?

修改 `speak.py` 中的 `voice` 參數。


### Q: 沒有聲音?

檢查電腦音量是否開啟,以及 output.mp3 檔案是否有正確產生。


---


## 成功後可以做什麼?


- 在 Discord 頻道問 AI 問題

- 讓 AI 回覆自動朗讀

- 定時發送新聞到 Discord

- 結合飛書發送通知


需要幫助就問我!

沒有留言: