SuperAPI AI 工具集

9router-stt

通用与其它

查看项目

更新于 10-16 13:57

技能介绍

用途

9Router 语音转文字(Speech-to-Text)技能通过 9Router 的 /v1/audio/transcriptions 端点进行音频转写,该端点兼容 OpenAI Whisper 的调用形式,可在多个模型供应商之间选择使用。

前置配置

需要设置环境变量 NINEROUTER_URL;如果启用了鉴权,还需要设置 NINEROUTER_KEY。具体安装与配置步骤参见 https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md。

发现可用模型

列出语音转文字模型:

curl $NINEROUTER_URL/v1/models/stt | jq '.data[].id'

查询单个模型的参数支持情况(language、response_format、prompt、temperature 等):

curl "$NINEROUTER_URL/v1/models/info?id=openai/whisper-1"

model 为 STT 模型 ID,例如 openai/whisper-1、groq/whisper-large-v3、deepgram/nova-3、gemini/gemini-2.5-flash。

接口

POST $NINEROUTER_URL/v1/audio/transcriptions(兼容 OpenAI Whisper,multipart/form-data)

请求字段:

字段 必填 说明
model 是 来自 /v1/models/stt
file 是 音频文件(mp3、wav、m4a、webm、ogg、flac)
language 否 ISO-639-1(如 en、vi)
prompt 否 用于引导转写的提示文本
response_format 否 json(默认)/ text / verbose_json / srt / vtt
temperature 否 0–1

使用示例

cURL:

curl -X POST "$NINEROUTER_URL/v1/audio/transcriptions" \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -F "model=openai/whisper-1" \
  -F "file=@audio.mp3" \
  -F "language=vi"

JS(Node):

import { createReadStream } from "node:fs";
const form = new FormData();
form.append("model", "groq/whisper-large-v3-turbo");
form.append("file", new Blob([await (await import("node:fs/promises")).readFile("audio.mp3")]), "audio.mp3");
const r = await fetch(`${process.env.NINEROUTER_URL}/v1/audio/transcriptions`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}` },
  body: form,
});
const { text } = await r.json();
console.log(text);

响应结构

默认(response_format=json):

{ "text": "Xin chào, đây là bản ghi âm." }

verbose_json 额外返回 language、duration、带时间戳的 segments[]。srt / vtt 返回字幕文本。

供应商差异

供应商 模型格式 说明
openai whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe 原生 OpenAI 结构
groq whisper-large-v3, whisper-large-v3-turbo, distil-whisper-large-v3-en 速度最快;OpenAI 结构
gemini gemini-2.5-flash, gemini-2.5-pro, gemini-2.5-flash-lite 服务端转换为 generateContent 并内联音频
deepgram nova-3, nova-2, whisper-large Token 鉴权;服务端适配响应
assemblyai universal-3-pro, universal-2 异步上传与轮询由服务端处理
nvidia nvidia/parakeet-ctc-1.1b-asr NIM 端点
huggingface openai/whisper-large-v3, openai/whisper-small HF Inference API
elevenlabs scribe_v1, scribe_v2 兼容 Whisper 结构;使用 xi-api-key 鉴权而非 Bearer。额外参数:timestamps_granularity(word/character/none)、tag_audio_events,以及说话人标注,可通过 diarize=true 或 num_speakers(1–32)实现——同时发送两者会使请求无效,因此 diarize 生效、num_speakers 被丢弃。language 为空时在上游省略以自动检测。srt/vtt 与 verbose_json 的 segments 来自 Scribe 自身的 additional_formats 渲染,因此当上游渲染不可用时 segments[] 会被省略,而非合成。不接受 temperature 或 prompt——这两个参数不会被转发。

适用场景与限制

适用于需要将音频转为文本或字幕、并可灵活切换 OCR 之外多种语音识别供应商的场景。使用前应通过 /v1/models/stt 与 /v1/models/info 确认目标模型的可用性与参数支持情况,因为不同供应商对 prompt、temperature、响应格式和鉴权方式的支持存在差异。