Skip to content

Lanternko/arale-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

arale-bot(仲町アラレ Discord 語音 bot)

大家好!我是仲町アラレ!

在 Discord 被 @ 時,會用角色口吻的日文回覆,並透過 Irodori-TTS + 情緒別 Speaker Inversion 發出語音訊息(OGG)。

私人非商用粉絲專案。角色與 BanG Dream!YUME∞MITA / 夢限大 MewType 相關 IP 歸原權利人所有;本 repo 僅供學習與同好自架。

倉庫:https://github.com/Lanternko/arale-bot
本 repo 只含可自架產線(bot + TTS server + SI embedding)。不含動畫語料、直播 raw、訓練中間檔。


你需要什麼

元件 需求
Discord bot Node.js ≥ 20、自己的 Bot Token、至少一個 LLM API key
TTS NVIDIA GPU(建議 ≥8GB VRAM;bf16 暖載約 5–7GB)、Linux 較省事
磁碟 程式 <1MB;Irodori 權重 + codec 約 2.5GB(HF 自動下載)

沒有 GPU: 仍可只跑文字模式(ARALE_REPLY_MODE=text),或把 TTS_SERVER_URL 指到別人代開的 TTS(自行承擔安全風險)。


目錄

bot/                         # Discord bot(npm start)
server/tts_server_irodori.py # Irodori + SI 推理 API :8055
server/start_tts_irodori.sh  # 啟動腳本
data/tts/irodori_ft/si_*/    # 各情緒 Speaker Inversion(final only)
docs/                        # 交接 / benchmark 筆記

1. 安裝 TTS(GPU 機)

1.1 Irodori-TTS 環境

# 任選路徑;以下以 ~/Irodori-TTS 為例
git clone https://github.com/Aratako/Irodori-TTS.git ~/Irodori-TTS
cd ~/Irodori-TTS
# 依 upstream README 建 venv 並安裝依賴(需 CUDA + torch)
# 完成後應有:~/Irodori-TTS/.venv/bin/python

權重首次請求時會從 Hugging Face 拉:

  • Aratako/Irodori-TTS-500M-v3
  • Aratako/Semantic-DACVAE-Japanese-32dim

1.2 啟動本 repo 的 server

git clone https://github.com/Lanternko/arale-bot.git
cd arale-bot

export TTS_VENV=$HOME/Irodori-TTS/.venv
export TTS_IRODORI_REPO=$HOME/Irodori-TTS   # 若 server 預設路徑對不上再設
export TTS_IRODORI_PRECISION=bf16             # 省 VRAM
export TTS_IDLE_UNLOAD_SECS=600               # 閒置 10 分卸載;常駐改 0

bash server/start_tts_irodori.sh
curl -s http://127.0.0.1:8055/health | python3 -m json.tool | head
# 期望 backend=irodori、mood_embed 有 announce/calm/excited…

停止時只殺明確 PID(避免 pkill -f 誤傷):

ps -eo pid,args | grep tts_server_irodori
kill <pid>

2. 安裝 Discord bot

cd arale-bot/bot
npm install
cp .env.example .env
# 編輯 .env:DISCORD_TOKEN + 至少一個 AI_*_API_KEY
# TTS 若在本機:TTS_SERVER_URL=http://127.0.0.1:8055

npm run test:pure   # 不需 token / GPU
npm start           # node arale.js

Discord 權限與 intent 見 bot/.env.example 註解。


3. Mood → 聲音(摘要)

mood SI embedding 用途
announce si_arale (預設)正面的直播聲線
calm si_calm 敘事,平靜敘述、否定或講解
happy si_arale 小開心
excited / hyper si_excited(直播版本) 真的感興趣的話題
shy si_shy_gold 害羞
nervous si_scared_gold 短緊張;長句易「夾」
scared si_arale 害怕(未通過測試,不使用)
laughy / sad si_laughy / si_slow 笑 / 難過

細節與人耳判決見 docs/HANDOFF_irodori_live_2026-07-09.mddocs/BENCHMARK_irodori_2026-07-09.md


4. 架構

@mention
  → LLM(reply + speech[] 最多 2 段 mood)
  → POST http://TTS/tts  → OGG
  → Discord 語音訊息(Attach Files)
  • 語音文為完整日文口語(約 ≤220 字),不是舊版 72 字精華。
  • 同 mood 長文 CHUNK_MAX_CHARS=200 盡量 one-shot,避免句中切塊音高跳。

5. 常見問題

VRAM 被佔滿?
預設 bf16 + 閒置 10 分卸載。常駐:TTS_IDLE_UNLOAD_SECS=0

聲線不像 / 太夾?
先看 log 的 mood= / embed=。否認 AI 應用 calm,不要整段 nervous

只想文字?
ARALE_REPLY_MODE=text,可不開 TTS。

能不能商用?
不行。粉絲自架、個人娛樂;請遵守 Discord / 各 API / 原作權利。


6. 開發備註

cd bot && npm run test:pure   # 轉譜 / mood / salvage
# test:e2e 需本機 TTS + 可選真 token

上游實驗與語料 pipeline 不在本公開倉庫;需要自行訓練 SI 請另尋 Irodori 文件與自己的授權語料。


License / 免責

  • 程式碼以學習交流為目的提供;無保證、無 SLA
  • 角色形象、名稱、聲線皆屬原權利人;請勿用於商業或誤導為官方 bot。
  • 使用第三方 API / 模型時遵守其服務條款。

有問題請開 GitHub Issue。祝安裝順利——これからよろしくね!

About

大家好!我是仲町アラレ!支援語音模式的 Discord 聊天機器人!Hello, I am Nakamachi Arale, a Discord BOT who support voice mode.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages