Skip to content

Repository files navigation

Zephyrus

Zephyrus — 私人 AI 电台

AI 自动选歌、生成播报词、TTS 语音合成,根据你的音乐口味和作息播放。

Vibe coding 产物 · 灵感来源 Claudio FM(by mmguo),改编自 shan7777/aimusic

Android PWA

快速开始

1. 安装

# 依赖:Node.js ≥22、Python ≥3.10
pip install edge-tts
corepack enable          # 启用 pnpm(Node.js 自带)
pnpm install

# cloudflared(手机 PWA 安装需要 HTTPS 隧道)
# Linux:
mkdir -p ~/.local/bin && curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o ~/.local/bin/cloudflared && chmod +x ~/.local/bin/cloudflared
# macOS:
brew install cloudflared

2. 配置

在项目根目录创建 .env,填入 DeepSeek API Key:

# ---- 必填 ----
LLM_BASE_URL=https://api.deepseek.com
LLM_API_KEY=your-api-key
LLM_MODEL=deepseek-v4-flash
LLM_JSON_MODE=true
WEATHER_LOCATION=39.9042,116.4074    # 天气坐标,默认北京

# ---- 网易云(脚本自动填入)----
NCM_BASE=http://localhost:3000
NCM_COOKIE=

# ---- 可选 ----
FISH_API_KEY=          # Fish Audio TTS
FISH_VOICE_ID=
PROXY_URL=             # 代理
GOOGLE_CREDENTIALS_PATH=  # Google Calendar
PUBLIC_URL=            # 自定义域名
CLOUDFLARE_TUNNEL_TOKEN=  # Cloudflare 隧道令牌
LARK_WEBHOOK=          # 飞书早报
PORT=8080

切换 LLM:

提供商 LLM_BASE_URL LLM_MODEL
DeepSeek https://api.deepseek.com deepseek-v4-flash
OpenAI https://api.openai.com gpt-4o
通义千问 https://dashscope.aliyuncs.com/compatible-mode qwen-plus
ollama http://localhost:11434 llama3(需 LLM_JSON_MODE=false

3. 启动

# 首次需要登录网易云(扫码或手动输入 Cookie)
node scripts/ncm-login.js

# 一键启动:网易云 API + Zephyrus + HTTPS 隧道
pnpm start:all

启动后访问:

  • 本机http://localhost:8080/pwa/
  • 手机:终端会显示 https://xxx.trycloudflare.com 隧道地址,打开即可安装 PWA

固定域名:Cloudflare Zero Trust → Tunnels → 创建隧道 → Token 填入 .envCLOUDFLARE_TUNNEL_TOKEN

4. 开机自启(Linux)

sudo bash scripts/install-service.sh

安装后可随时手动管理:

sudo systemctl start zephyrus-ai-dj     # 启动
sudo systemctl stop zephyrus-ai-dj      # 停止
sudo systemctl restart zephyrus-ai-dj   # 重启
sudo systemctl status zephyrus-ai-dj    # 状态
journalctl -u zephyrus-ai-dj -f         # 日志

取消开机自启:sudo systemctl disable zephyrus-ai-dj


功能

你说 Zephyrus 做什么
「来首轻松的歌」 搜索播放,DJ 生成介绍词
「适合下午工作的背景音乐」 AI 选曲 + 播报 + TTS
「今天天气怎么样」 返回天气信息
「停止播放,放一首周杰伦的歌」 组合指令
「音量调高」 语音控制音量

自动调度user/routines.md 驱动,覆盖全天 24 小时,每个时段自动推送音乐 + TTS。打开页面时主动打招呼。

定制 — 编辑 user/ 目录:taste.md(口味)、playlists.json(歌单)、mood-rules.md(情绪规则)。

可选功能 — Google Calendar 早报、飞书推送、Naim 音箱 UPnP、Fish Audio TTS。


常见问题

问题 解决
better-sqlite3 编译失败 Windows 安装 Visual Studio Build Tools
LLM 调用失败 检查 LLM_API_KEYLLM_BASE_URL
歌曲链接 403 Cookie 过期,重新 node scripts/ncm-login.js
cloudflared: command not found 确认 ~/.local/bin 在 PATH 中
端口占用 修改 .envPORT 或添加 NCM_PORT

技术栈

Node.js · Express · WebSocket · SQLite · Edge TTS · Cloudflare Tunnel

License

MIT

About

私人 AI 电台 — 自动选歌、TTS 播报、24h 日程调度 | Personal AI Radio — auto DJ, TTS broadcasting, 24h scheduling

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages