VoiceStudio 怎么让外部应用通过本地 sidecar 调用其听写能力【免费下载链接】VoiceStudioVoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription audiobook creation in 646 languages.项目地址: https://gitcode.com/GitHub_Trending/om/VoiceStudio如果你的应用终端脚本、编辑器扩展、TUI、Agent hook想在同一台机器上触发 VoiceStudio 的听写——录音、本地转写并把文本插回你正在编辑的应用——不需要自己加载 ASR 模型或处理剪贴板直接调用 VoiceStudio 内置的 Rust 控制 sidecar 即可。这个 sidecar 不是独立程序它随 VoiceStudio 桌面应用启动只绑定127.0.0.1监听3902端口Python 后端在3900端口提供音频数据平面转写 WebSocket、批量转写。整条链路无需任何凭据。前提VoiceStudio 桌面应用正在运行sidecar 随它启动并且已经安装并选中一个听写模型。准备安装并选中听写模型按 Dictation 文档从 Model Catalogue 安装一个听写模型然后在Settings → Voice或顶栏 Engines 菜单Transcription → Sherpa-ONNX dictation → Dictation model中选中它。外部应用调用 sidecar 时用的就是当前选中的模型。在Settings → Hotkey设置快捷键和 hold/toggle 行为外部应用触发听写时走的是同一套捕获流程。文档推荐的默认模型是 Whisper TinymacOS、Windows、Linux 均可自动识别 90 多种语言Parakeet TDT v3 支持 25 种欧洲语言但不会被自动选中。第一步发现并确认 sidecar 可用在 VoiceStudio 运行期间从外部应用所在机器执行curl http://127.0.0.1:3902/.well-known/voicestudio-speech返回的文档标识为voicestudio.speech.v1桌面端文档中包含 absolute 形式的 control、batch、streaming、output-session 和 MCP 端点。数据平面也可以单独发现curl http://127.0.0.1:3900/.well-known/voicestudio-speech两个端点都返回voicestudio.speech.v1后端文档使用相对 URL这样它在 Tailscale 或反向代理后面也能工作。能拿到这个返回说明 sidecar 和数据平面都已就绪。最短主路径start / stop / toggle这三个 POST 调用让外部应用复用 VoiceStudio 现有的麦克风、模型选择、pill、refinement 和按会话绑定的文本插入光标下的应用就是文本的落点curl -X POST http://127.0.0.1:3902/v1/dictation/start curl -X POST http://127.0.0.1:3902/v1/dictation/stop curl -X POST http://127.0.0.1:3902/v1/dictation/toggleHerdr 示例配置 展示了实际用法把 detached 命令绑定合并进~/.config/herdr/config.toml例如[[keys.command]] key prefixaltd type shell command curl -fsS -X POST http://127.0.0.1:3902/v1/dictation/toggle description toggle VoiceStudio dictationHerdr 触发命令时保持当前 pane 焦点不变VoiceStudio 捕获原生插入目标转写结果回到发起它的 pane。可选的等价传输方式JSON-RPC向POST http://127.0.0.1:3902/rpc发送{jsonrpc:2.0,id:1,method:dictation.toggle}CLI 标志已安装的 VoiceStudio 可执行文件接受--dictate-start、--dictate-stop、--dictate-togglesingle-instance bridge 会把这些标志转发给正在运行的应用且不会打开 Studio 窗口。适合 hook 和插件动作。Python bridgebackend/speech_client是零第三方依赖的命令行桥适合 hook 和 TUIpython -m backend.speech_client status python -m backend.speech_client toggle python -m backend.speech_client transcribe recording.wav python -m backend.speech_client transcribe recording.wav --insertstatus走GET /v1/status输出 JSON 结果可以当作sidecar 是否在线的检查命令。transcribe把音频文件 POST 到:3900/v1/audio/transcriptionsOpenAI 兼容批量端点加--insert会在转写开始前先捕获当前聚焦的目标应用并用与全局快捷键相同的、保留剪贴板的原生投递方式插入结果。源码 中还提供了--model、--language、--formatjson/text/verbose_json/srt/vtt以及--control-url/--engine-url默认http://127.0.0.1:3902和http://127.0.0.1:3900可被环境变量VOICESTUDIO_SPEECH_URL、VOICESTUDIO_URL覆盖。可选分支应用自带麦克风时走流式 WebSocket如果你的编辑器扩展或 GUI 想自己拥有麦克风并实时消费文本连接数据平面ws://127.0.0.1:3900/v1/audio/transcriptions/stream默认发送二进制 WebM/Opus 帧原始 signed 16-bit 单声道 PCM 用?pcm1sr16000。不收尾的话发送{type:input_audio.end}即可结束而不关闭连接。每条响应都带protocol和session_id以下为文档示例{type:session.started,protocol:voicestudio.speech.v1,session_id:...} {type:partial,text:hello wor...,session_id:...} {type:final,final_kind:summary,text:Hello world.,session_id:...}流式 Sherpa 模型会先发final_kind: utterance随后才是权威的全会话summary。如果要在这个自持麦克风客户端上复用 VoiceStudio 的原生插入按 local speech platform 给出的顺序操作打开麦克风前先向3902端口POST /v1/output/sessions拿到 session ID。在3900端口流式发送音频并接收 final 文本。POST /v1/output/sessions/{id}/insert请求体为{text:...}。捕获被取消时DELETE /v1/output/sessions/{id}。约束同一时刻只有一个 output session 能拥有一个聚焦目标过期的 session ID 会被拒绝而不是插入到更新的目标里。如何确认插入成功pill 在原生投递成功后才显示Inserted显示Copied表示当前环境无法自动插入完整转写文本已复制好可以正常粘贴见 Dictation。各平台自动插入行为不同macOS 发送 Command-V无辅助功能权限时保持已复制状态Windows 校验窗口后发送 Ctrl-VX11 通过 EWMH 重激活窗口后发送 Ctrl-VWayland 因无法可移植地标识捕获窗口默认只保留复制。如果你的外部应用在 Wayland 上需要自动插入只能按文档中的VOICESTUDIO_WAYLAND_UNTARGETED_INSERT1等 opt-in 方式处理且文档明确说明它无法保证焦点已改变时仍插入到快捷键按下时的目标。边界与限制控制 sidecar 只绑定 IPv4 loopback并拒绝不受信任的浏览器Origin头普通网页无法用它打开麦克风它从不接收音频也不会通过 Network Sharing 暴露。远程消费另一台设备走的是3900端口的 API key / PIN 边界属于 API authentication 的话题不在本机 sidecar 集成范围内。批量转写文件用POST :3900/v1/audio/transcriptionsOpenAI 兼容输出json/text/verbose_json/srt/vtt完整的接口清单可在Settings → OpenAPI Reference中查看端点总览见 README。浏览器页面无法静默调用原生控制浏览器/WebView UI 只能把音频流给 Python 数据平面。完成一次toggle后pill 显示Inserted或Copied且文本出现在你之前聚焦的应用里就表示外部应用到 sidecar 的听写链路已经打通。【免费下载链接】VoiceStudioVoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription audiobook creation in 646 languages.项目地址: https://gitcode.com/GitHub_Trending/om/VoiceStudio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考