让对话,有一点点触感。
一个会陪你聊天、听你说话,也能连接郊狼的小伙伴。
有时候,比起点来点去,我们更想直接说一句:「轻一点」「A 调到 10,B 不变」,或者就聊聊天。
PulseCompanion 把文字聊天、连续语音和 DG-LAB 设备交互放进了同一个 APP。你可以打字,也可以开口说话;想打断她时,开启「开口打断」就好。波形、强度和执行结果也能在页面上看到,不用全靠猜。
这是一个还在慢慢长大的开源项目。界面是软乎乎的奶油白和豆沙粉,功能则希望一点点打磨到顺手。欢迎来玩,也欢迎带着问题和新点子来敲门。ฅ^•ﻌ•^ฅ
| 小本领 | 可以这样玩 |
|---|---|
| 💬 文字聊天 | 聊天、调整设备,在同一段对话里完成 |
| 🎙️ 连续语音 | 说话、停顿、发送;开启开口打断后,可以在朗读时插话 |
| 🧠 双模型配合 | GLM 整理意图、控制计划和导答建议,Venice 聊天模型组织回复 |
| 🎛️ 双通道控制 | 分别调整 A / B,自己设置最高强度和单次增幅 |
| 🌊 波形小窝 | 预览、收藏、导入与导出波形;实物输出目前使用支持的内置波形 |
| 🔗 郊狼配对 | 从 APP 打开 DG-LAB 配对,也可以通过二维码连接 |
| 🧾 看得见的回执 | 这轮调了什么、有没有执行,聊天里都有记录 |
下面是 APP 实际运行截图,展示聊天、双通道强度、波形和执行回执;截图中的对话仅作界面展示。
公开测试版已经可以下载啦。 🐾
公开版无需内测码,首次打开需导入自己的服务连接文件或填写 Venice API Key,也可以先离线浏览。已受邀参加内测的小伙伴仍可继续使用原来的 APK。
- 把
.apk文件下载或传到 Android 手机上。 - 在下载列表或文件管理器里点开它。如果系统询问安装权限,允许当前浏览器或文件管理器安装应用,再继续安装。
- 打开 APP,跟着下面的「第一次见面」配置服务,就可以开始了。
目前面向 Android,代码最低要求为 Android 7.0,安装包支持 ARM64 / x86_64,不含 32 位 ARM。iPhone 暂时没有安装包,Windows 开发构建入口见构建文档。
小提醒: GitHub 的 Code → Download ZIP 和 Releases 里的 Source code 都是源码,不能当作 APK 安装哦。
公开版没有内测码登录,打开后按你手边的材料选一个:
| 你手里有什么? | 怎么做 |
|---|---|
| 服务提供者给的连接 JSON | 点「导入连接文件」→ 核对服务器地址 →「进入应用」 |
| 自己的 Venice API Key | 填入密钥 →「进入应用」;手机网络需要能访问 Venice |
| 还没准备好,只想先看看 | 点「先离线浏览」,逛逛界面和波形 |
受邀内测版仍然使用原来的内测码,无需自己填写服务配置。公开版不附带免费 API 额度,费用由你使用的服务账户承担。
当前服务配置只在这次运行中保留,重启后需要重新导入或填写。连接 JSON 里有访问令牌,像密码一样收好,别发到公开 Issue 里。
- 准备好 郊狼 3.0 和 DG-LAB 官方 APP,先在官方 APP 里连接蓝牙设备。
- 回到 PulseCompanion,进入「互动」→「连接设备」。
- 按提示打开 DG-LAB 配对;如果手机的浏览器跳转不顺利,可以改用配对二维码。
- 配对完成后,回到 PulseCompanion,选择对应设备,再启用实物输出。
没有设备也可以先体验聊天和波形预览。有设备时,先设好上限,从低强度开始,确认「停止全部」可以正常使用。
去「聊天」页打字,或者打开连续对话。想让她调整设备,就把意图说清楚;想安静一会儿,随时静音或结束对话。
使用可访问的云中继时,手机不需要和电脑连同一个 Wi-Fi,电脑也不用一直开着。能否顺畅连接仍取决于手机网络;Wi-Fi 不顺时,可以用移动网络对比一下。
目前的构建脚本以 Windows + PowerShell 为主。先按构建文档准备 Git、Python、Flutter、Rust、JDK 和 Android SDK,再运行:
git clone https://github.com/github154737/DGLab-PulseCompanion.git
cd DGLab-PulseCompanion
rustup target add aarch64-linux-android x86_64-linux-android
# 第一次构建时创建自己的签名;已有签名就跳过这一行
./scripts/init-release-signing.ps1
# 先检查配置,再真正构建 APK
./scripts/build-public-android.ps1 -CheckOnly
./scripts/build-public-android.ps1完成后到 artifacts/ 找 AIHaptics-<版本号>-public-android.apk,传到手机安装即可。签名文件保存在仓库外,请留好备份,后续升级还要用它。
公开版与内测版使用不同包名,可以共存。公开版不带维护者的密钥、云服务权限或私人波形合集。
🔧 想看更多:模型配合、自建服务和项目结构
GLM 负责理解当前轮次、给出控制计划和聊天建议;APP 本地检查并执行设备操作,再把执行回执交给 Venice 聊天模型生成回复。导答建议帮助她接住话题,实物输出仍经过本地规则与用户授权。
已经有云中继的维护者,可以导出一个连接文件,交给受邀用户导入:
python scripts/export-connection.py这个命令需要已有的外部中继配置。完整步骤见构建与部署,连接文件的使用方法见快速开始。
| 目录 | 里面住着什么 |
|---|---|
app/ |
Flutter 界面、语音、设备连接和中继服务 |
core/ |
Rust 控制核心 |
protocol/ |
协议测试 |
scripts/ |
构建、部署与检查工具 |
docs/ |
使用说明、配置和来源记录 |
需要自己租服务器吗?
有可用的连接文件就不需要。也可以使用自己的 Venice 密钥直连;想给朋友提供服务,再考虑自建中继。
导入的波形都能直接用于实物吗?
目前导入主要用于预览与导出,实物输出使用支持的内置波形。公开仓库也没有附带私人波形合集。
她说「调好了」,就一定执行了吗?
以页面上的执行回执和设备实际状态为准。模型的聊天文字不能代替执行结果。
发现小毛病,或者有想加的功能?
欢迎开一个 Issue。写上 APP 版本、手机型号和复现步骤就很有帮助;截图前记得藏好密钥和私人聊天内容。
本项目面向成年人,是独立社区项目,与 DG-LAB 官方没有隶属或背书关系。使用设备请遵循官方说明,先设置合适的上限,从低强度开始;需要停止时,直接用「停止全部」。
软件还在迭代,不同手机与网络的表现可能不同。数据说明在这里,涉及密钥或漏洞的问题请走非公开反馈。
感谢 Flutter、Rust、DG-LAB 公开协议,以及所有让这个小项目长大的开源工具。
自有代码采用 MIT,第三方内容保留各自许可,详见 NOTICE 与来源记录。
如果这个小伙伴让你觉得有点可爱,欢迎留下一颗 ⭐
我们慢慢把她养大。

