跳到主要内容

文本转语音

Knox 在 https://api.knoxstudio.ai/v1 上为 KnoxStudio 提供与 ElevenLabs 兼容的文本转语音接口。使用 Knox API key 认证(Authorization: Bearer sk-... 或 xi-api-key)。https://api.knox.chat/v1 提供相同路由。

这不是 实时语音 的语音到语音,也不是把音频送进 /v1/chat/completions。TTS 是把文本变成音频。

典型流程:

  1. 列出模型 — GET /v1/text-to-speech/models
  2. 从 音色 选择 voice_id(GET /v1/voices 或 GET /v2/voices)
  3. 合成 — POST /v1/text-to-speech/{voice_id}
https://api.knoxstudio.ai/v1
Authorization: Bearer sk-...

常用公开音色示例:21m00Tcm4TlvDq8ikWAM(Rachel)。

模型与计费​

curl https://api.knoxstudio.ai/v1/text-to-speech/models
model_id延迟 / 用途最大字符数价格
eleven_multilingual_v2默认,29 种语言10,000每千字符 $0.15
eleven_v3表现力最强,70 余种语言5,000每千字符 $0.15
eleven_v3_conversational语音代理,约 280ms5,000每千字符 $0.10
eleven_flash_v2_5超低延迟多语言,约 75ms40,000每千字符 $0.10
eleven_flash_v2超低延迟英语,约 75ms30,000每千字符 $0.10
eleven_turbo_v2_5已弃用,建议改用 Flash v2.540,000每千字符 $0.10
eleven_turbo_v2已弃用,建议改用 Flash v230,000每千字符 $0.10

默认 model_id 为 eleven_multilingual_v2。未认证的目录请求限制为每分钟 60 次,并且可能被缓存 5 分钟。

生成语音​

text 必填。流式变体不支持 WAV 的 output_format。

curl -X POST "https://api.knoxstudio.ai/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM?output_format=mp3_44100_128" \
-H "Authorization: Bearer $KNOXCHAT_API_KEY" \
-H "Content-Type: application/json" \
-o speech.mp3 \
-d '{
"text": "你好,这里是 Knox 文本转语音。",
"model_id": "eleven_multilingual_v2"
}'

相关端点​

目标端点
列出 / 搜索音色GET /v1/voices、GET /v2/voices
流式音频POST /v1/text-to-speech/{voice_id}/stream
字符级时间戳POST /v1/text-to-speech/{voice_id}/with-timestamps
流式 + 时间戳POST /v1/text-to-speech/{voice_id}/stream/with-timestamps
WebSocket 分块文本/v1/text-to-speech/{voice_id}/stream-input
多个并发上下文/v1/text-to-speech/{voice_id}/multi-stream-input

全文已知时使用 HTTP 合成。文本分块到达时(例如 LLM 流式输出)使用 WebSocket。对 WebSocket 路径发送普通 HTTP 会返回 400。

可选 voice_settings:stability(默认 0.5)、similarity_boost(0.75)、style(0)、speed(1.0)、use_speaker_boost(true)。最多 3 个 pronunciation_dictionary_locators,以及最多 3 个 previous_request_ids / next_request_ids。seed 范围为 0–4294967295。

apply_text_normalization 为 auto、on 或 off。language_code 为 ISO 639-1,对 eleven_multilingual_v2 会被忽略。

错误​

422 使用 { "detail": [{ "loc": [...], "msg": "...", "type": "value_error" }] }。其他错误使用 { "detail": "..." }。

常见状态:401 缺少或无效的 key、402 余额不足、403 无权使用该模型、422 缺少 text、超出字符上限或 output_format 无效。