dsh-voice:DeepSeek Harness 面試場景的回合制語音插件

前言

在 DeepSeek Harness (DSH) 的開發中,爲智能體添加語音交互能力通常需要自行處理 TTS/ASR 引擎的對接以及瀏覽器端的錄音/播放 UI。dsh-voice 插件專爲面試 preset 場景設計,提供了回合制語音通道。它通過抽象 Agent 工具屏蔽底層引擎細節,讓面試流程在語音層面形成閉環。

插件定位

dsh-voice 是一個回合制語音通道插件,支持 TTS/ASR 引擎抽象。它爲面試場景提供語音交互能力,所有者維護,許可證爲 MIT。

核心功能

插件通過三個 Agent 工具提供語音能力,瀏覽器端自動配合錄音與播放:

  • voice_speak:Agent 輸出語音,瀏覽器自動播放。
  • voice_listen:人聲輸入錄音,自動轉寫回傳給 Agent。
  • voice_status:引擎健康檢查,檢查 TTS/ASR 可用性、隊列及錄音狀態。

引擎抽象

插件支持 TTS 與 ASR 各自獨立選擇引擎,auto 模式按 qwen → mimo → local 順序探測可用者。

  • qwen:使用 DashScope 原生接口,依賴環境變量 DASHSCOPE_API_KEY。
  • mimo:使用 MiMo-V2.5 接口,依賴環境變量 MIMO_API_KEY,支持配置 baseUrl。
  • local:支持 sherpa-onnx、whisper.cpp、piper 等本地二進制與模型。

本地 ASR(sherpa-onnx)已驗證閉環,支持從 macOS say 合成中文並轉寫。音頻默認落盤至 ~/.dsh/voice。

安裝與配置

在對應的 profile 下執行安裝命令:

dsh plugin --profile web add @harness-flow/dsh-voice

安裝後重啓 profile 生效。插件行的默認配置是中性值,需要在 profile 的 cordis.patch.yml 中按行 id dsh-voice 覆蓋。

示例配置如下:

- id: dsh-voice
  config:
    asr:
      engine: auto
      language: zh
    tts:
      engine: auto
      voice: Cherry
    audioDir: ~/.dsh/voice
    listenTimeoutSec: 120
  • 雲引擎密鑰僅通過環境變量讀取,配置中只寫變量名。
  • 本地引擎(如 sherpa-onnx)需要 profile 安裝 sherpa-onnx-node 並配置模型目錄。
  • 本地 MiMo 網關可通過配置 baseUrl 指向本機地址複用同一實現。

面試官預設用法

插件負責語音鏈路(host 側服務 + 瀏覽器 UI),preset 只負責「面試官」這個角色與流程。

建議在 preset 中定義面試官 Persona,要求其一次只提一個問題,使用 voice_speak 朗讀後立即調用 voice_listen 等待作答。以下是一個示例配置片段:

- id: persona
  name: '@deepseek-ai/dsh-persona'
  config:
    text: >-
      你是一位專業的面試官,正在通過語音進行一場結構化面試。
      一次只提一個問題:用 voice_speak 朗讀問題,隨後立刻調用 voice_listen
      等待候選人作答;根據 transcript 追問或進入下一題。
      流程:開場寒暄 → 自我介紹 → 技術/項目深挖 → 行爲面 →
      候選人提問 → 結束語與後續安排。全程專業、中立、鼓勵,不做主觀臆斷;
      面試結束後輸出評分表(各維度 1–5 分 + 一句話依據)與錄用建議。

版本說明與限制

當前版本爲 v0.1,存在以下設計取捨:

  1. 回合制優先:voice_speak 阻塞到合成完成,保證順序;全雙工打斷(barge-in)待後續版本。
  2. 單客戶端橋接:僅支持單客戶端橋接,內存中管理 listen 會話,頁面關閉後隊列自動丟棄。
  3. 無會話持久化:不持久化 voice/* 會話事件,僅聊天記錄保留文本轉寫。
  4. 失敗局部化:引擎探測失敗隻影響該引擎;瀏覽器播放被攔截時等待用戶手勢重試。

總結

dsh-voice 解決了 DeepSeek Harness 中構建語音面試場景的引擎集成與交互邏輯問題。它提供了清晰的 Agent 工具接口與可配置的 TTS/ASR 引擎抽象,適合需要構建語音交互面試流程的開發者使用。

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

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

小夜