# 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
- 結合飛書發送通知
需要幫助就問我!
沒有留言:
張貼留言