🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

R1 音箱控制台 yangyedan/r1-webui

DeepSeek Harness
yangyedan18 天前有提交已提供中文文档扫描:无法判定

自建后端接管斐讯 R1,网页管理语音、音乐与电台

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yangyedan/r1-webui
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/11/03·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 18 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/11/3) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/5(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

斐讯 R1 智能音箱 Web 控制台 & 自建 AI 后端 · 绕过作者硬编码、完全自托管 · Phicomm R1 self-hosted AI backend + web console

README

由 DeepSeek 最新模型翻译生成
r1-webui — 斐讯 R1 智能音箱 Web 控制台 & 自建 AI 后端 把「斐讯 R1 智能音箱」变成完全由自己掌控的 AI 音箱:语音对话、天气、本地音乐、有声书、广播电台,全部在你自己的服务器/NAS 上运行,不依赖任何第三方中转服务。附带一个功能完整的 Web 控制台。 零第三方依赖,只用 Python 标准库;一条命令启动。 控制台截图 它解决什么问题 网上流行的 R1 改造方案(如 r1-py + 改造版 APK)有一个隐藏问题: 作者托管的前端会把「AI 后端地址」硬编码成他自己的服务器,你在网页上怎么改,AI 请求最终还是走他的中转。 本项目做三件事: 1. 自建 AI 后端 —— 复刻云知声 NLU 协议,把大模型、天气、媒体能力全部跑在你自己机器上 2. 绕过作者的网页配置 —— 直接用设备本地的 WebSocket 协议改配置(r1_ctl.py) 3. Web 控制台 —— 状态、播放控制、曲库/故事/广播、天气、AI 配置,一个页面全包 功能 语音(对音箱说) | 说法 | 行为 | | 小讯小讯,讲个笑话 | AI 对话 | | 小讯小讯,今天天气怎么样 | 天气(默认地点可配置,支持周边城市别名) | | 小讯小讯,播放周杰伦的歌 | 播放本地曲库(自动组 100 首队列连续播放) |
展开完整文档(README 剩余 1 节)
r1-webui — 斐讯 R1 智能音箱 Web 控制台 & 自建 AI 后端

把「斐讯 R1 智能音箱」变成完全由自己掌控的 AI 音箱:语音对话、天气、本地音乐、有声书、广播电台,全部在你自己的服务器/NAS 上运行,不依赖任何第三方中转服务。附带一个功能完整的 Web 控制台。

零第三方依赖,只用 Python 标准库;一条命令启动。

控制台截图

它解决什么问题

网上流行的 R1 改造方案(如 r1-py + 改造版 APK)有一个隐藏问题:

作者托管的前端会把「AI 后端地址」硬编码成他自己的服务器,你在网页上怎么改,AI 请求最终还是走他的中转。

本项目做三件事:

1. 自建 AI 后端 —— 复刻云知声 NLU 协议,把大模型、天气、媒体能力全部跑在你自己机器上
2. 绕过作者的网页配置 —— 直接用设备本地的 WebSocket 协议改配置(r1_ctl.py)
3. Web 控制台 —— 状态、播放控制、曲库/故事/广播、天气、AI 配置,一个页面全包

功能

语音(对音箱说)

| 说法 | 行为 |
| 小讯小讯,讲个笑话 | AI 对话 |
| 小讯小讯,今天天气怎么样 | 天气(默认地点可配置,支持周边城市别名) |
| 小讯小讯,播放周杰伦的歌 | 播放本地曲库(自动组 100 首队列连续播放) |
| 小讯小讯,播放亚洲经典台 | 播放广播电台(支持模糊匹配) |

Web 控制台

- 控制台 — 实时状态、播放/暂停/上下曲、音量、进度、最近播放
- 音乐库 — 全部音乐(分页/搜索)、★ 喜欢、播放历史
- 故事 — 有声书/故事长音频(2 小时+ 无限制),DLNA 点播
- 广播 — 电台列表、一键播放、自行添加/删除电台
- AI 配置 — 改后端地址、模型、Key、系统提示词(作者网页做不到的事)
- 设置 — 天气地点(城市/经纬度)、内置音乐源、故事源

播放通道

- 语音点歌 → 设备内置播放器(走 AI 返回的 SETTING_EXEC 播放列表)
- 网页点播 → DLNA 投放(AVTransport,支持直播流、长音频、任意进度拖动)

架构

┌──────────────────────────┐
语音 ──ASR──► │ 斐讯 R1 (Android 5.1) │ │ 改造版 APK + DLNA 渲染器 │ └───────┬──────────▲───────┘ POST /r1/ai/chat/…│ │ HTTP GET /media/...(流式/Range) ▼ │ ┌──────────────────┴───────┐ │ 本项目(你的 NAS/服务器) │ │ ┌────────────────────┐ │ │ │ 云知声 NLU 信封适配 │ │ │ ├────────────────────┤ │ │ │ 工具: 聊天/天气/ │ │ │ │ 音乐/广播 │ │ │ ├────────────────────┤ │ │ │ 曲库索引 + 媒体流 │ │ │ ├────────────────────┤ │ │ │ Web UI + REST API │ │ │ └────────────────────┘ │ └──────────┬───────────────┘ │ OpenAI 兼容协议 ▼ 大模型(DeepSeek / Qwen / 本地 vLLM …)

快速开始

0. 前置条件

- 一台常开的机器:NAS(飞牛/群晖等)、软路由、树莓派、VPS 都行
- Python 3.10+(Debian 12 / 飞牛 fnOS 自带 3.11)
- 一个大模型 API Key(任何 OpenAI 兼容服务)
- 斐讯 R1,固件 3448,已安装改造版 APK(见 §3)

1. 部署后端

下载/克隆后进入目录
cd r1-webui

配置
cp config.example.json config.json
vi config.json # 至少填 llm.api_key,以及 media.public_base

启动
python3 server.py

看到这样的输出就成功了:

R1 自建 AI 后端已启动监听 : http://0.0.0.0:8866 AI 接口 : http://<本机IP>:8866/r1/ai/chat/completions 曲库目录 : /path/to/music

自检:

curl http://127.0.0.1:8866/health
{"ok": true, ...}

2. 装成开机自启服务(Linux)

sudo cp deploy/r1-webui.service /etc/systemd/system/
sudo vi /etc/systemd/system/r1-webui.service # 改 User / WorkingDirectory
sudo systemctl daemon-reload
sudo systemctl enable --now r1-webui
sudo systemctl status r1-webui

3. R1 音箱端

1. 确认固件是 3448:adb shell getprop ro.build.version.incremental 应输出 3448
2. 安装改造版 APK(作者公开的 r1-dummy 仓库里有 adb.exe、apps/、一键安装.bat)—— 本仓库不包含 APK,请自行获取并确认来源可信
3. 装完后浏览器打开 http://<音箱IP>:18888,会 301 跳转到作者的网页控制台—— 不要用那个网页存 AI 配置(会把后端地址写死回作者的服务器)
4. 用本项目的 r1_ctl.py 把后端地址指向你自己的机器:

python3 r1_ctl.py --ip <音箱IP>:18888 set-backend http://<你的服务器IP>:8866
python3 r1_ctl.py --ip <音箱IP>:18888 query # 确认配置

4. 打开 Web 控制台

http://<你的服务器IP>:8866/?ip=<音箱IP>:18888

| 页面 | 地址 |
| 控制台 | /?ip=<音箱IP>:18888 |
| 音乐库 | /lib?ip=… |
| 故事 | /story?ip=… |
| 广播 | /radio?ip=… |
| AI 配置 | /ai?ip=… |
| 设置 | /cfg?ip=… |

然后对音箱说:小讯小讯,讲个笑话。

配置说明

{
"listen": { "host": "0.0.0.0", "port": 8866 },

"llm": {
"base_url": "https://api.deepseek.com/v1", // 任何 OpenAI 兼容接口 "api_key": "sk-...", "model": "deepseek-chat", // 需要支持 function calling "temperature": 0.0 },

"system_prompt": "你叫小讯,是这台斐讯 R1 智能音箱的助手……",

"media": {
"root": "/path/to/music", // 主目录(URL 不带前缀)
"roots": [ // 可选:多目录
{ "key": "", "path": "/path/to/music" },
{ "key": "story", "path": "/path/to/music/audiobooks" },
{ "key": "lx", "path": "/path/to/other" }
],
"public_base": "http://192.168.1.10:8866", // 音箱能访问到的本机地址!
"max_results": 100, // 播放队列长度 "rescan_seconds": 60 // 新增文件的索引延迟 },

"weather": {
"default_location": "北京", "lat": 39.9042, "lon": 116.4074, // 建议直接填坐标(县级地名常查不到) "timezone": "Asia/Shanghai",
"aliases": { "北京": [39.9042, 116.4074, "北京"] }
},

"radio": {
"stations": [
{ "name": "中国之声", "url": "http://example.com/live/1/64k.mp3" } ] },

"devices": [
{ "name": "书桌", "ip": "192.168.1.50" } ] }

关键点:media.public_base 必须是音箱能访问到的地址(局域网 IP),不能用 127.0.0.1。

支持的文件格式

mp3 flac m4a aac wav ogg opus wma

- 子目录会递归扫描
- 以 . 或 ._ 开头的文件会被跳过(macOS 元数据垃圾)
- 新增文件最多 rescan_seconds 秒后自动出现,无需重启

命令行工具 r1_ctl.py

python3 r1_ctl.py --ip <ip>:18888 status # 设备状态
python3 r1_ctl.py --ip <ip>:18888 query # 读 AI 配置
python3 r1_ctl.py --ip <ip>:18888 set-backend URL # 改 AI 后端地址
python3 r1_ctl.py --ip <ip>:18888 rollback # 回退到作者默认后端
python3 r1_ctl.py --ip <ip>:18888 music # 读音乐源配置
python3 r1_ctl.py --ip <ip>:18888 music-provider wy
python3 r1_ctl.py --ip <ip>:18888 raw '{"action":"ai","data":{"type":"query"}}'

设备协议

这个项目的核心价值之一,是把 R1 改造版 APK 的协议完整摸清了,包括几个会导致「没反应」的坑(比如 SETTING_EXEC 缺 audioUrl 会触发设备端 NullPointerException)。

详见 docs/PROTOCOL.md。

常见问题

见 docs/TROUBLESHOOTING.md,包括:

- 说完话没反应
- 只能放一首就停、还提示装「酷我」
- 网页点播没声音
- 天气查不到、城市答错
- 长音频播放中断

致谢

这个项目站在不少人肩膀上:

- ring1012/r1-py — 「用小讯玩转 AI」项目的 AI 边缘服务(MIT)。
本项目最初的协议认知来自它的实现,包括云知声信封的字段结构和 x-r1-ai 头的用法。
- ring1012/r1-dummy — 公开提供的 adb.exe 与改造版 APK 分发包。
没有它就没有「不拆机」这条路。
- 恩山无线论坛 / R1 玩家社区 — 硬件资料、3448 固件、DLNA 行为、各种踩坑记录。
- Open-Meteo — 免费免 Key 的天气与地理编码 API。
- awesome-dsh-plugin — DSH 插件生态目录。
- 以及所有把斐讯 R1 从「智障音箱」救回来的人。

本项目与上述项目无隶属关系,也不包含它们的闭源代码/二进制。协议结论均为独立复现与真机验证。

免责声明

- 本项目不包含任何闭源 APK、固件或第三方媒体服务,只提供协议实现与自建后端。
- 音箱端的改造版 APK 由第三方提供,闭源且可能带远程 OTA,请自行评估风险。
- 本项目与斐讯、云知声、菲讯官方均无关联。
- 音乐/广播等内容请确保你有合法使用权。

License

MIT
预览分享卡片长什么样 ↓yangyedan/r1-webui
分享 · DeepSeek Harness Hub
yangyedan/r1-webui

自建后端接管斐讯 R1,网页管理语音、音乐与电台

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部