SnowfallC / dsh-mobile-voice-call

Listed

App-free mobile voice calls with existing DeepSeek Harness sessions.

mainSession View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:SnowfallC/dsh-mobile-voice-call

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 6f1aa86Synced Aug 17, 2026

DSH Mobile Voice Call

DSH Mobile Voice Call

这个插件解决的问题很直接:电脑上的 DSH 已经有会话了,我只是想拿起手机继续说,不想再装一个 App,也不想为了临时远程准备服务器、公网 IP 或域名。打开 DSH、扫描二维码、选择已有会话,就可以直接开始语音通话。

Compatibility CI

English · 安装指南 · DSHFind

工作方式

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;配对后使用 HttpOnlySameSite=Strict Cookie。

截图

DSH 手机通话插件弹窗

手机浏览器中的语音会话选择页

安装与启动

前置条件

  • 已经能够正常启动 DSH Web profile。
  • 默认自动安装面向 Windows x64。
  • 如需使用 Hojo-TTS-Light,请确保 uv 已安装并可从 PATH 调用;不需要另外安装或配置系统 Python。

从 GitHub 安装

在 DSH 源码仓库中执行:

pnpm dsh plugin --profile web add "github:SnowfallC/dsh-mobile-voice-call"
pnpm dsh web

从本地目录安装

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/。下载完成后无需每次重装。
  • 手动接入已有组件:可通过 whisperExecutablePathwhisperModelPathhojoPythonPathhojoModelDirectory 指向已有文件,跳过相应自动安装。

模型和 CPU 依赖需要一定下载时间与磁盘空间,具体速度取决于 GitHub、Hugging Face 和 Python 包源的网络状况。准备完成后,点击右下角“手机通话”,扫码并选择会话即可开始说话;结束后请在电脑端撤销链接。

浏览器要求与限制

  • 页面必须通过 HTTPS 打开;Quick Tunnel 已满足这一要求。
  • 浏览器需要支持麦克风采集与 Web Audio,不要求提供网页语音合成。建议使用新版 Android Chrome 或 iOS Safari。
  • 请勿停留在微信、QQ、飞书或系统扫码器的内置浏览器中;扫码后用右上角菜单选择“在浏览器中打开”。
  • 语音识别由电脑上的 whisper.cpp 本地完成,不依赖 Android 的 SpeechRecognition,原始录音不会提交给 DeepSeek。不过录音仍会经过 Cloudflare 隧道从手机传回电脑,因此不属于端到端加密链路。
  • 当前采用轮流说话模式,不是真正的全双工音频电话;工具确认等高风险操作仍建议回到电脑端处理。
  • 正在运行的会话会显示为不可选择,以免两个客户端同时向同一轮次写入。

本地语音配置

默认配置适用于 Windows x64。whisperExecutablePathwhisperModelPathauto 时自动安装;也可改为已有的 whisper-cli 与 GGML 模型路径。whisperThreads 控制转写线程数,默认值为 8

语音合成默认使用 Hojo-TTS-Light 80M,并通过随插件提供的合成参考音频克隆一条偏可爱、略带傲娇感的中文声线。首次启动会在 DSH 缓存目录建立隔离的 Python 3.12 环境,并下载约 348 MB 的模型及 CPU 推理依赖;无需手动配置系统 Python。可通过 hojoReferenceAudioPathhojoReferenceText 使用自己的参考音频与逐字稿,通过 hojoThreads 调整 CPU 线程数,也可用 hojoModelDirectoryhojoPythonPath 指向现有环境。Hojo 尚未就绪或合成失败时会回退到 Windows 系统语音。自动下载的模型与官方推理源码均固定版本、体积与 SHA-256 校验。

80M 引擎采用按需加载:启动 DSH 时只准备轻量后备语音,打开“手机通话”面板后才在后台预热 Hojo。模型只在本次 DSH 进程中加载一次,关闭面板不会反复占用初始化时间。朗读前还会移除中英文圆括号及其中内容,避免动作、语气或角色扮演说明被念出;会话中显示的原始回复不受影响。

朗读按句号、问号和感叹号分段。插件每 250 毫秒读取 DSH 原生 assistant/chunk,完整句子一出现便提交合成并开始播放,无需等待整轮回复结束;Hojo 单模型仍按安全队列生成后续句子。Hojo 当前不提供逐帧音频流,因此这里实现的是句级流式播放。回复文字会随对应语音开始播放而显示,默认使用 8 个 CPU 线程。

每次接通会话后,插件只在第一条语音消息前加入一次通话说明,要求后续回复采用自然、简短、适合朗读的表达,并避免自行添加括号动作、角色扮演旁白或舞台说明;连续通话不会重复注入同一段文字。Markdown 清理只发生在本地朗读前,不会改写会话中的原始回复。

[!WARNING] 本功能属于实验性功能,流量经 Cloudflare 中转,临时隧道不提供固定地址或服务等级保证。请勿处理敏感任务,使用后立即撤销链接。

开发

pnpm install
pnpm check
pnpm test

配置项见 cordis.patch.yml。安全问题请参阅 SECURITY.md。代码采用 MIT License

卸载

pnpm dsh plugin --profile web remove dsh-mobile-voice-call

随后重启 DSH。插件不会在 DSH 内核仓库中留下补丁。

友情链接

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
Security policyDetected
DocumentationDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 17, 2026, 9:13 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.