关于 9router-tts
9router-tts 是通过 9Router 调用文本转语音服务的技能,适用于需要将文本转换为音频的工作流。它支持查询模型与声音,并可返回原始音频字节或 JSON 格式的 Base64 音频。
主要功能
- 01文本转语音生成
- 02查询 TTS 模型和声音
- 03支持 MP3 或 JSON 响应
- 04使用提供方特定的声音标识
适用场景
- 01将文本生成 MP3 文件
- 02按语言选择可用声音
- 03在应用中接收 Base64 音频
- 04通过不同提供方生成语音
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ decolua/ 9router --skill 9router-tts安装后在 Claude Code 中输入/9router-tts确认已加载。
详细介绍
9Router — 文本转语音
需要设置 NINEROUTER_URL(若启用了鉴权,还需设置 NINEROUTER_KEY)。安装配置请参阅 https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md。
发现
# 1) List models
curl $NINEROUTER_URL/v1/models/tts | jq '.data[].id'
# 2) Per-model metadata (params, voicesUrl if voice-by-id)
curl "$NINEROUTER_URL/v1/models/info?id=el/eleven_multilingual_v2"
# 3) List voices (elevenlabs, edge-tts, deepgram, inworld, local-device). Optional ?lang=vi
curl "$NINEROUTER_URL/v1/audio/voices?provider=edge-tts&lang=vi" | jq '.data[].model'
/v1/audio/speech 中的 model 字段直接填写语音 ID(例如 edge-tts/vi-VN-HoaiMyNeural、el/<voice_id>,或 openai/tts-1 这种模型加默认语音的形式)。
端点
POST $NINEROUTER_URL/v1/audio/speech
| 字段 | 是否必填 | 说明 |
|---|---|---|
model | 是 | 来自 /v1/models/tts 的语音 ID |
input | 是 | 要朗读的文本 |
查询参数 ?response_format=mp3(默认,返回原始字节)或 ?response_format=json(返回 {audio: base64, format})。
示例
保存为 MP3:
curl -X POST "$NINEROUTER_URL/v1/audio/speech" \
-H "Authorization: Bearer $NINEROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/tts-1","input":"Hello world"}' \
--output speech.mp3
JS(保存文件):
import { writeFile } from "node:fs/promises";
const r = await fetch(`${process.env.NINEROUTER_URL}/v1/audio/speech`, {
method: "POST",
headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ model: "el/eleven_multilingual_v2", input: "Xin chào" }),
});
await writeFile("speech.mp3", Buffer.from(await r.arrayBuffer()));
响应结构
默认返回原始音频字节(Content-Type 为 audio/mp3)。
?response_format=json 时:
{ "audio": "SUQzBAAAA...", "format": "mp3" }
服务商特性(model 格式)
| 服务商 | model 格式 | 说明 |
|---|---|---|
openai | tts-1/alloy(模型/语音)或仅语音 | 默认模型 gpt-4o-mini-tts |
elevenlabs | <model_id>/<voice_id> 或 <voice_id> | 默认模型 eleven_flash_v2_5;语音列表可在控制台查看 |
openrouter | openai/gpt-4o-mini-tts/alloy | 通过 chat-completions 音频模态流式返回 |
edge-tts | 语音 ID,例如 vi-VN-HoaiMyNeural | 无需鉴权;默认 vi-VN-HoaiMyNeural |
google-tts | 语言代码,例如 en、vi | 无需鉴权 |
local-device | 操作系统语音名称(say -v ? / SAPI) | 无需鉴权;需要 ffmpeg |
deepgram | aura-asteria-en 等 | Token 鉴权 |
nvidia、inworld、cartesia、playht | model/voice | 服务商特定的鉴权请求头 |
coqui、tortoise | 说话人 / 语音 ID | 本地主机,无需鉴权 |
hyperbolic | 模型 ID | 请求体仅为 {text} |
评论
支持 Markdown