Bundle
dsh-mobile-voice-call
App-free mobile voice calls with existing DeepSeek Harness sessions
- Source
- SnowfallC
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
<p align="center"><img src="docs/assets/deepseek-mascot-voice-hero.png" alt="DSH Mobile Voice Call" width="100%"></p> # DSH Mobile Voice Call 不用下载 App,手机或 Pad 扫个码,就能直接在网页上跟 DeepSeek 娘打电话。既可以随时跟她聊几句,也能让她继续调用 DSH 工具,帮你操作电脑、整理文件。 [](https://github.com/SnowfallC/dsh-mobile-voice-call/actions/workflows/compatibility.yml) [English](README.en.md) · [安装指南](#安装与启动) · [DSHFind](https://dshfind.com/) ## 工作方式 DSH 本身就是 Web 应用,所以手机远程没有必要再做一套 APK。这个插件只通过 DSH 官方的插件组合机制接入,不修改内核;手机端也只是一个针对通话收窄过的 Web 页面,已有会话、归档状态、语言和主题仍然跟着 DSH 走。这样 DSH 后续更新时,插件需要维护的只是很薄的一层适配。 电脑端负责运行 DSH、本地桥接、whisper.cpp 和 Hojo-TTS-Light,Cloudflare Quick Tunnel 只提供临时 HTTPS 地址。手机浏览器采集录音并播放结果;录音回到电脑后由 whisper.cpp 本地转写,再通过 DSH 原生会话 RPC 发送。DeepSeek 的回复由电脑上的 Hojo-TTS-Light 合成为 WAV 后传回手机自动播放。Hojo 还没准备好或暂时不可用时,会回退到 Windows 系统语音。 - 只显示已有、空闲的顶层会话,不提供完整文字聊天界面。 - 选中会话后立即请求麦克风权限并开始通话。 - 支持暂停收音、打断朗读、挂断及取消正在进行的轮次。 - 自动隐藏 DSH 中已经归档的会话。 - 自动跟随 DSH 的中英文设置与浅色/深色主题。 - 一次性配对 Token 置于 URL Fragment;配对后使用 `HttpOnly`、`SameSite=Strict` Cookie。 ## 截图 <p align="center"><img src="docs/assets/mobile-voice-call-in-action.jpg" alt="手机浏览器中正在进行的 DeepSeek 语音通话" width="390"></p> <p align="center"><img src="docs/assets/voice-call-pairing-redacted.png" alt="DSH 手机通话扫码配对窗口,二维码已遮挡" width="640"></p> ## 安装与启动 ### 前置条件 - 已经能够正常启动 DSH Web profile。 - 默认自动安装面向 Windows x64。 - 如需使用 Hojo-TTS-Light,请确保 [`uv`](https://docs.astral.sh/uv/getting-started/installation/) 已安装并可从 `PATH` 调用;不需要另外安装或配置系统 Python。 ### 从 GitHub 安装 在 DSH 源码仓库中执行: ```powershell pnpm dsh plugin --profile web add "github:SnowfallC/dsh-mobile-voice-call" pnpm dsh web ``` ### 从本地目录安装 ```powershell git clone https://github.com/SnowfallC/dsh-mobile-voice-call.git "C:/path/to/dsh-mobile-voice-call" cd "C:/path/to/deepseek-harness" pnpm dsh plugin --profile web add "C:/path/to/dsh-mobile-voice-call" pnpm dsh web ``` ### 语音识别与 TTS 的首次安装 这两部分都不用手工下载模型,但首次运行需要联网: - **语音识别(whisper.cpp)**:DSH 启动插件时会下载官方 Windows x64 构建(约 8 MB)和多语言 `small` 模型(约 466 MiB),校验固定体积与 SHA-256 后再启用。这个步骤完成前不会生成可用的通话链接,后续启动直接复用缓存。 - **语音合成(Hojo-TTS-Light 80M)**:打开“手机通话”面板后才开始后台预热。插件通过 `uv` 建立隔离的 Python 3.12 环境,安装固定版本的 CPU 推理依赖,再下载约 348 MB 的模型和官方推理脚本。二维码和配对不需要等它完成;手机接通时如果仍在准备,会显示“语音引擎预热中,请稍候”。安装失败时会回退到 Windows 系统语音。 - **缓存位置**:默认位于 `$DSH_HOME/cache/dsh-mobile-voice-call/`;未设置 `DSH_HOME` 时通常是 `%USERPROFILE%/.dsh/cache/dsh-mobile-voice-call/`。下载完成后无需每次重装。 - **手动接入已有组件**:可通过 `whisperExecutablePath`、`whisperModelPath`、`hojoPythonPath` 和 `hojoModelDirectory` 指向已有文件,跳过相应自动安装。 模型和 CPU 依赖需要一定下载时间与磁盘空间,具体速度取决于 GitHub、Hugging Face 和 Python 包源的网络状况。准备完成后,点击右下角“手机通话”,扫码并选择会话即可开始说话;结束后请在电脑端撤销链接。 ## 浏览器要求与限制 - 页面必须通过 HTTPS 打开;Quick Tunnel 已满足这一要求。 - 浏览器需要支持麦克风采集与 Web Audio,不要求提供网页语音合成。建议使用新版 Android Chrome 或 iOS Safari。 - 请勿停留在微信、QQ、飞书或系统扫码器的内置浏览器中;扫码后用右上角菜单选择“在浏览器中打开”。 - 语音识别由电脑上的 whisper.cpp 本地完成,不依赖 Android 的 `SpeechRecognition`,原始录音不会提交给 DeepSeek。不过录音仍会经过 Cloudflare 隧道从手机传回电脑,因此不属于端到端加密链路。 - 当前采用轮流说话模式,不是真正的全双工音频电话;工具确认等高风险操作仍建议回到电脑端处理。 - 正在运行的会话会显示为不可选择,以免两个客户端同时向同一轮次写入。 ## 本地语音配置 默认配置适用于 Windows x64。`whisperExecutablePath` 和 `whisperModelPath` 为 `auto` 时自动安装;也可改为已有的 `whisper-cli` 与 GGML 模型路径。`whisperThreads` 控制转写线程数,默认值为 `8`。 语音合成默认使用 Hojo-TTS-Light 80M,并通过随插件提供的合成参考音频克隆一条偏可爱、略带傲娇感的中文声线。首次启动会在 DSH 缓存目录建立隔离的 Python 3.12 环境,并下载约 348 MB 的模型及 CPU 推理依赖;无需手动配置系统 Python。可通过 `hojoReferenceAudioPath` 和 `hojoReferenceText` 使用自己的参考音频与逐字稿,通过 `hojoThreads` 调整 CPU 线程数,也可用 `hojoModelDirectory` 或 `hojoPythonPath` 指向现有环境。Hojo 尚未就绪或合成失败时会回退到 Windows 系统语音。自动下载的模型与官方推理源码均固定版本、体积与 SHA-256 校验。 80M 引擎采用按需加载:启动 DSH 时只准备轻量后备语音,打开“手机通话”面板后才在后台预热 Hojo。模型只在本次 DSH 进程中加载一次,关闭面板不会反复占用初始化时间。朗读前还会移除中英文圆括号及其中内容,避免动作、语气或角色扮演说明被念出;会话中显示的原始回复不受影响。 朗读按句号、问号和感叹号分段。插件每 250 毫秒读取 DSH 原生 `assistant/chunk`,完整句子一出现便提交合成并开始播放,无需等待整轮回复结束;Hojo 单模型仍按安全队列生成后续句子。Hojo 当前不提供逐帧音频流,因此这里实现的是句级流式播放。回复文字会随对应语音开始播放而显示,默认使用 8 个 CPU 线程。 每次接通会话后,插件只在第一条语音消息前加入一次通话说明,要求后续回复采用自然、简短、适合朗读的表达,并避免自行添加括号动作、角色扮演旁白或舞台说明;连续通话不会重复注入同一段文字。Markdown 清理只发生在本地朗读前,不会改写会话中的原始回复。 > [!WARNING] > 本功能属于实验性功能,流量经 Cloudflare 中转,临时隧道不提供固定地址或服务等级保证。请勿处理敏感任务,使用后立即撤销链接。 ## 开发 ```powershell pnpm install pnpm check pnpm test ``` 配置项见 [cordis.patch.yml](cordis.patch.yml)。安全问题请参阅 [SECURITY.md](SECURITY.md)。代码采用 [MIT License](LICENSE)。 ## 卸载 ```powershell pnpm dsh plugin --profile web remove dsh-mobile-voice-call ``` 随后重启 DSH。插件不会在 DSH 内核仓库中留下补丁。 ## 友情链接 - [DSHFind — DSH 生态项目索引](https://dshfind.com/)
Install
dsh plugin --profile web add github:SnowfallC/dsh-mobile-voice-call
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-mobile-voice-call from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.