9Router 语音转文字技能
通过 9Router 的 /v1/audio/transcriptions 接口,用一套统一调用访问 Whisper、Groq、Gemini、Deepgram 等多种语音转写模型。
技能本身为纯文档,仅通过环境变量传递 NINEROUTER_URL/KEY 调用本地路由的 /v1/audio/transcriptions,无危险操作、无文件越权;数据流(音频上传至所配置提供商)有说明。扣分:音频内容会被转发到多个云厂商(OpenAI/Groq/Deepgram 等),隐私影响仅一笔带过,无数据流图、无回滚或失败恢复说明,发布者身份未经验证。
文档自洽:端点、参数表、curl 与 Node 示例、响应格式、厂商差异表均一致,仓库内 ping 代码(createSilentWavFile + STT 探测)佐证该路径真实存在。扣分:纯静态审阅未执行,无测试覆盖、无错误码/失败反馈说明,依赖 NINEROUTER 服务可用性,异常输入行为未描述。
description 触发条件明确(转写、语音转文字、字幕),支持格式、language、response_format(含 srt/vtt)边界清晰,覆盖中文等多语言输入。扣分:未声明模型能力/文件大小等非适用边界,前置依赖指向另一 SKILL.md,核心功能依赖 9Router 服务及海外 STT 厂商在中国大陆的可达性未评估。
MIT 许可明确,仓库有版本号(0.5.69)、发布工作流和多语言 README,维护活跃迹象可见。扣分:该 SKILL.md 自身无版本/变更记录,安装说明外链到另一技能文件,无 FAQ、无已知限制披露,属共享仓库治理而非技能级治理。
若 NINEROUTER 已部署,按文档可直接完成音频转写并输出 /srt/vtt,示例完整可复制。扣分:静态审阅无法验证输出正确性;且这本质是对 OpenAI 兼容端点的薄封装,直接 curl OpenAI 兼容服务即可达到同等效果,边际价值有限。
技能内端点与仓库内 ping.js 的 STT 探测代码互相印证,README 有多语言教程视频作为第三方使用迹象。扣分:无承诺测试套件覆盖该技能路径,无独立可复现的执行证据,静态审阅上限为 5,且多为作者自述材料。
- 音频文件将被上传至所配置的云厂商(OpenAI/Groq/Deepgram/AssemblyAI 等),敏感录音请在使用前确认各厂商的数据政策。
- 技能依赖 9Router 服务已部署并正确设置 NINEROUTER_URL/NINEROUTER_KEY,否则完全不可用;安装说明在另一个 SKILL.md 中,需先阅读。
- 核心功能依赖海外 STT 服务,中国大陆网络可达性未经评估,可能需要自托管提供商。
- 本评审为纯静态源码审阅,未执行任何端点调用,输出正确性未经独立验证。
这个 Skill 能做什么,适合哪些场景?
这个技能教 Agent 如何调用 9Router 的语音转文字端点,把音频文件转成文本或字幕。它兼容 OpenAI Whisper API 格式,背后可路由到 OpenAI、Groq、Gemini、Deepgram、AssemblyAI、NVIDIA 和 HuggingFace 七家供应商。使用前需要一个运行中的 9Router 实例(通过 NINEROUTER_URL 环境变量指定,若启用鉴权还需 NINEROUTER_KEY)。它本身只是一份操作指南,不含脚本,所有调用通过 curl 或任意 HTTP 客户端完成。
指导 Agent 先用 GET /v1/models/stt 发现可用的转写模型、用 /v1/models/info 查询每个模型的参数支持;然后向 POST /v1/audio/transcriptions 以 multipart/form-data 提交音频文件(支持 mp3、wav、m4a、webm、ogg、flac)、模型 ID、可选的语言(ISO-639-1)、提示词、温度和响应格式;支持 、text、verbose_(含时间戳分段)、srt 和 vtt 输出;SKILL.md 内含 curl 和 Node.js 的完整示例代码,并给出各供应商的模型命名差异(如 Deepgram 需 token 鉴权、AssemblyAI 的异步上传轮询由服务端处理)。
- 开发者已在本地运行 9Router,想用免费或低价模型把会议录音转成文字稿
- 内容创作者需要从播客或视频音频批量生成 SRT/VTT 字幕文件
- 使用多语言素材(如越南语、英语)的用户想通过 language 参数指定转写语言
- Agent 工作流中需要把用户上传的语音消息转成文本再做后续处理
- 团队想在不改代码的情况下,通过换一个 model ID 在 Whisper 和 Deepgram 之间切换转写引擎
这个 Skill 有哪些优点和局限?
- 一个 OpenAI 兼容端点统一访问 7 家供应商的转写模型,切换引擎只需改 model 字段
- 供应商差异被服务端抹平(如 Gemini 转 generateContent、AssemblyAI 的异步轮询都在服务端处理)
- 直接输出 SRT/VTT 字幕,省去后处理
- 支持语言、提示词、温度等标准参数,并用 /v1/models/info 暴露每个模型的参数支持情况
- 强依赖一个已运行的 9Router 实例,无法独立使用
- 转写请求本身的速率和费用取决于所配置的上游供应商,技能文档未说明
- 未附带自动化测试或错误处理的示例
- SKILL.md 未说明 /v1/models/stt 端点是否在所有部署方式(Docker、Cloudflare Workers 等)下均可用
如何安装这个 Skill?
此技能来自 decolua/9router 仓库(MIT 许可),该仓库打包了 9 个技能,本技能位于 skills/9router-stt/SKILL.md。安装整个技能集合通常是把技能文件夹放入你的 Agent Skills 目录,但仓库未明确说明本技能单独的安装路径。前置条件是先安装并运行 9Router 本体(npm install -g 9router 后运行 9router,默认端口 20128),并设置 NINEROUTER_URL 环境变量;若在仪表盘中启用鉴权,还需 NINEROUTER_KEY。
如何使用这个 Skill?
先发现模型:curl $NINEROUTER_URL/v1/models/stt | jq '.data[].id'。然后提交音频:curl -X POST "$NINEROUTER_URL/v1/audio/transcriptions" -H "Authorization: Bearer $NINEROUTER_KEY" -F "model=openai/whisper-1" -F "[email protected]" -F "language=vi"。要生成字幕,把 response_format 设为 srt 或 vtt;要带时间戳的详细信息,用 verbose_。也可以让 Agent 触发,例如:「帮我把 audio.mp3 转成文字」或「给这段录音生成 SRT 字幕」。
这个 Skill 与同类方案有什么区别?
与直接调用 OpenAI Whisper API 相比,此技能的优势是通过一个端点可切换到 Groq(最快)、Deepgram 等多家供应商,但代价是必须自建并维护 9Router 路由服务;若只用单一供应商,直连官方 API 更简单。