dsh-voice:语音输入转用户消息,回复可朗读

前言

DSH 的理念是「一切皆插件」。在终端智能体里,有两种操作成本常被低估:人离开键盘时,想把一句指令变成消息;任务运行时,不想逐字读大段输出。dsh-voice 是面向 DSH 的语音 bundle,覆盖语音转文字、文字转语音和离开式朗读。它默认本地优先,音频文件落在本机,不自动录音、不自动播放。

这是什么

Jesse-njx/dsh-voiceJesse-njx 维护,许可证为 MIT,已核实版本为 0.1.0,要求 Node.js >=20。它是 DSH bundle,提供 transcribespeak/voice 相关能力,并在 Web 客户端渲染 voice-note 卡片。

核心功能

语音转文字

transcribe 支持两类来源:

  • { file: <path> }:转写既有音频文件。
  • { record: { seconds? } }:从麦克风录制后转写。

转写结果被插入为用户消息,Web 客户端以 voice-note 卡片展示。

文字转语音

speak 接收文本,在后台任务中合成并播放,并立即返回 { jobId, audioRef }。它适合用于长构建与 headless runs 的 walk-away narration,例如把结果合成成一句状态播报。

自动朗读回复

readReplies/voice 提供会话级自动朗读回复开关,默认关闭。可以用 /voice 实时切换。

本地优先

音频是 ~/.dsh/voice/ 下的普通文件,会话日志只保存引用与转录。默认值如下:

  • stt.backend 自动离线选择 whisper-localmacos
  • tts.backendsay
  • readRepliesfalse
  • audioDir~/.dsh/voice

后端

STT 后端支持 whisper-localopenaimacosfake

TTS 后端支持 saypiperedge-ttsfake

云端后端仅在显式配置时可用,不会被自动选择。

配合 dsh-crosstalk

dsh-crosstalk installed 时,transcribe({ source, to: <peer> }) 可将 transcribe 结果作为 peer message 发送到另一本地会话。

安装与启用

先确认本机满足 Node.js >=20,然后执行安装命令:

dsh plugin --profile web add @dsh-voice/bundle

安装后,transcribespeak/voice 由该 bundle 提供。

典型用法

使用 /voice

下面命令用于查看状态、切换自动朗读,或直接朗读一行文本:

/voice status
/voice on
/voice off
/voice speak build finished, 0 failures

调用 transcribe

下面调用分别演示文件转写和麦克风录音转写:

transcribe({ source: { file: "/path/to/note.m4a" } })
transcribe({ source: { record: { seconds: 5 } } })

source 二选一:已有音频文件路径,或麦克风录制参数。

调用 speak

下面调用演示朗读一段文本:

speak({ text: "build finished, 0 failures" })

返回 { jobId, audioRef }

发送到另一本地会话

dsh-crosstalk installed 时,可以这样调用:

transcribe({ source: { file: "/path/to/note.m4a" }, to: "<peer>" })

适用场景与注意

适合需要在 DSH 会话里用语音留下指令、希望回复可朗读,或在长任务后收到状态播报的使用者。

注意以下边界:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 音频默认不离开本机;只有显式设置以下云端后端时,才可能发送到云端:
stt.backend: openai
tts.backend: edge-tts
  • openai 后端通过 OPENAI_API_KEY 凭证读取。
  • 录制与播放只在显式工具调用时发生;readReplies 默认关闭。
  • v0.1 非目标包括实时流式对话、外呼合成语音、群组微信上下文音频、说话人分离、音乐/特效、原始音频入会话日志、唤醒词/持续监听。

结尾

经过上面步骤,dsh-voice 可以把语音输入变成用户消息,把回复变成可播放的本地音频,并默认保持本地存储。

GitHub:https://github.com/Jesse-njx/dsh-voice

社区目录页:已核实资料中未提供具体 URL。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜