mcpField
9
9router-tts

9router-tts

github.com/decolua创意与媒体31.6k131 次安装今天更新
代码仓库

关于 9router-tts

9router-tts 是通过 9Router 调用文本转语音服务的技能,适用于需要将文本转换为音频的工作流。它支持查询模型与声音,并可返回原始音频字节或 JSON 格式的 Base64 音频。

主要功能

  1. 01文本转语音生成
  2. 02查询 TTS 模型和声音
  3. 03支持 MP3 或 JSON 响应
  4. 04使用提供方特定的声音标识

适用场景

  1. 01将文本生成 MP3 文件
  2. 02按语言选择可用声音
  3. 03在应用中接收 Base64 音频
  4. 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 格式说明
openaitts-1/alloy(模型/语音)或仅语音默认模型 gpt-4o-mini-tts
elevenlabs<model_id>/<voice_id> 或 <voice_id>默认模型 eleven_flash_v2_5;语音列表可在控制台查看
openrouteropenai/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
deepgramaura-asteria-en 等Token 鉴权
nvidia、inworld、cartesia、playhtmodel/voice服务商特定的鉴权请求头
coqui、tortoise说话人 / 语音 ID本地主机,无需鉴权
hyperbolic模型 ID请求体仅为 {text}

评论

支持 Markdown