← 返回列表
未验证
dsh plugin --profile web add github:aa2246740/dsh-livevoice
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/13 · 已提供中文文档
DSH 实时语音插件
综合分
29.5
GitHub 分
29.5
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add aa2246740/dsh-livevoice该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-chat@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-session@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-commands用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-livevoice dsh plugin --profile web add github:aa2246740/dsh-livevoice 你需要在 PATH 中有官方的 dsh(或 npx @deepseek-ai/dsh)以及 pnpm。dsh plugin add 会在 $DSH_HOME/profiles/web 中运行 pnpm。本仓库已提交构建好的 lib/,因此通过 git 安装不需要 prepare,也不需要修改 profile 的 allowBuilds。 然后重启该 Host 并重新加载页面。dsh plugin add 会写入 profile。它不会热加载正在运行的进程。 适用于 DeepSeek Harness 的 Codex 实时语音(Ctrl+L / /live)。 这是 omp 的 GPT-Live 路径的协议完整移植:ChatGPT OAuth、WebRTC 媒体、Frameless Bidi 边带、客户端委托到当前 DSH 会话。它不是本地 STT/TTS 插件。 兼容性 当前源码面向官方 DeepSeek Harness 0.1.5-rc.2(dsh-v0.1.5-rc.2)。 其他安装方式 本地检出或 tarball: git clone https://github.com/aa2246740/dsh-livevoice.git dsh plugin --profile web add ./dsh-livevoice dsh plugin --profile web add ./dsh-livevoice-0.1.1.tgz dsh plugin --profile web remove dsh-livevoice 认证:必须使用 OAuth 实时语音不能使用普通的 OpenAI 平台 API key 或默认的 DeepSeek LLM 登录。信令会携带 ChatGPT / Codex OAuth 访问令牌和 Codex Desktop originator 发送到 https://chatgpt.com/backend-api/codex/realtime/calls。 该插件不依赖 dsh-oauth-login 被加载。它按以下顺序读取凭据: 1. $DSH_HOME/.dsh-oauth-auth.json(openai-codex)——由 dsh-oauth-login / 订阅登录写入 2. DSH 凭据存储 llm-pi-ai/openai-codex——官方 Settings → models → ChatGPT Codex OAuth 3. ~/.codex/auth.json——官方 codex login(只读回退) 如果以上都不持有 OAuth 授权,Live 按钮会失败并提示 No Codex OAuth credential is available for a live call. dsh-oauth-login 是在 DSH 内获取该授权的常用方式,但已经通过 DSH 内置的 openai-codex OAuth 流程登录的用户也足够。DeepSeek API key 不行。 移植内容 | omp | DSH | |---|---| | protocol.ts Frameless Bidi | 相同的类型和编解码器 | | Codex 信令 + 边带 | Host 代理(避免浏览器 CORS / WS 头) | | 原生 WebRTC / Opus | 浏览器 RTCPeerConnection + getUserMedia | | AgentSession.sendCustomMessage | 当回合打开时使用 agent.steer;空闲或运行中且没有打开的回合时使用 agent.followup | | TUI 可视化器 | composer Live chip + live bar | | Ctrl+L / /live | 相同 | | DeviceCheck 认证 | 未移植(omp 在非 Apple silicon 上也会跳过此项) | 语音模型是 gpt-live-1-codex。它只负责对话。仓库工作会被委托到当前 DSH 会话中。 委派会保留用户当前的措辞。一段有界的近期记录会单独附上,以便工作进程能够解析引用和句子片段,而不会继承更广泛的授权:询问某项更改可以如何完成仍属于分析,而明确要求执行该更改则授权执行。只读的仓库和会话状态问题可以委派。 使用 Composer 的 Live 按钮,或 Ctrl+L,或 /live。按 Esc 结束通话。当实时栏获得焦点时,按空格键静音。 “Ready — speak now”仅在 WebRTC 媒体/数据通道连接、明确的 Codex 会话就绪事件以及实时麦克风轨道都具备后才会显示。在此之前,UI 会保持连接中状态,麦克风传输也保持门控。就绪超时会以重试操作失败;它绝不会静默地计为已连接。你可以在拨号过程中取消。 Host 在浏览器页面之间维护一个实时通话。并发拨号会被串行化;较晚的拨号会替换较早的通话。失败的拨号不会阻塞队列,并且关闭会等待较早的拨号尝试,然后再清除它们的通话。 实时停靠栏会显示实际发送到 DSH 的输入和交接的任务回执。状态来自 dispatch,与 agent/inbox/claimed、agent/inbox/discarded 以及被认领轮次的 turn/end 原因相匹配。“Worker replied”仅表示一个已完成的轮次产生了与该请求相关联的响应;它并不是对工作的验证。 更改主题不会抹去较早的答案。桥接会保留每一个非工具响应,并将其与工作进程在该响应之前消费的请求相关联。较晚的未被认领请求无法收到较早的答案;如果多个请求被一起消费,它们的答案会被明确标记为共享,而不是被独立满足。回复会在其被认领轮次结束时返回,即使另一个请求仍在排队等待下一轮次。实际终端状态也会进入语音上下文,因此它可以报告无回复、取消、失败或停止跟踪,而不是承诺一个不存在的未来结果。没有语义主题分类器或额外的工作进程。这是对答案归属的基于事件的近似,而不是对语义正确性或 100% Codex 行为一致性的保证。 结果和不成功的终端结果使用显式的 speakable 上下文通道;常规进度和成功回执元数据使用 commentary。这些是现有的 Frameless Bidi 通道,而不是新的传输方式,也不是对语音生成绝不出错的承诺。 当 SSE 连接重新连接时,服务器会重放当前通话的回执,并保留所有活跃回执以及最近 24 条已结算回执。当前页面在挂断后、当另一通话替换当前通话时,以及跨重拨时,都会保留其现有卡片;替换会停止对旧通话的实时跟踪。刷新页面会丢失页面本地历史记录,而新打开的页面无法从旧的已替换通话中检索回执,因为有意不设置新的数据库。当通话结束而 DSH 工作仍在继续时,其卡片会冻结在“通话已结束 · 在会话中跟进”,而不是假装工作失败或已完成。 语音名称与 Codex 一致:arbor、breeze、cove、ember、juniper、maple、sol、spruce、vale。 HTTP/WS 出站遵循 $DSH_HOME/.dsh-oauth-proxy.json(与 dsh-oauth-login 相同的文件)和 HTTPS_PROXY。浏览器音频使用 WebRTC 从当前设备连接到 OpenAI;在这台机器上或同一局域网内只意味着控制平面经过 DSH。 重新构建已提交的 lib/ 标准安装使用已提交的 lib/。在 TypeScript 编辑后,使用 pnpm 重新构建: pnpm install --frozen-lockfile pnpm test pnpm build
扫码进群