dsh-voice:語音輸入轉用戶消息,回覆可朗讀

前言

DSH 的理念是「一切皆插件」。在終端智能體裏,有兩種操作成本常被低估:人離開鍵盤時,想把一句指令變成消息;任務運行時,不想逐字讀大段輸出。dsh-voice 是面向 DSH 的語音 bundle,覆蓋語音轉文字、文字轉語音和離開式朗讀。它默認本地優先,音頻文件落在本機,不自動錄音、不自動播放。

這是什麼

Jesse-njx/dsh-voice 由 Jesse-njx 維護,許可證爲 MIT,已覈實版本爲 0.1.0,要求 Node.js >=20。它是 DSH bundle,提供 transcribe、speak、/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-local 到 macos
  • tts.backend 爲 say
  • readReplies 爲 false
  • audioDir 爲 ~/.dsh/voice

後端

STT 後端支持 whisper-local、openai、macos、fake。

TTS 後端支持 say、piper、edge-tts、fake。

雲端後端僅在顯式配置時可用,不會被自動選擇。

配合 dsh-crosstalk

在 dsh-crosstalk installed 時,transcribe({ source, to: <peer> }) 可將 transcribe 結果作爲 peer message 發送到另一本地會話。

安裝與啓用

先確認本機滿足 Node.js >=20,然後執行安裝命令:

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

安裝後,transcribe、speak、/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。

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

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

小夜