跳到主要内容

TTS API ​参考

Shisa TTS HTTP API ​提供​两​个​端点:​一​个​用于​生成​语音,​一​个​用于​列出​可​用​声音。​两者​均​使用​标准​ Bearer ​令牌​进行​身份验证。​如需​通过​ WebSocket 接收​流式​音频,​请​参阅 WebSocket ​流式

Authorization: Bearer YOUR_API_KEY

端点

生成语​音

POST https://api.shisa.ai/tts

将​文本​转换​为​语音​音频。​以​请求​的​格式​返回二​进制​音频​数据。

列​出声​音

GET https://api.shisa.ai/tts/voices

返​回​一​个​包含voices数组​的​对象,​其中​列出​当前​所有​活动​声音、​元数据、​支持​的​格式、​采样率​和​流式​传输​能力。​目录请​参阅声​音

请​求​参数

POST /tts ​端点​的​参数,​以​ J​SON ​主体​形式​发送:

参数类型必填描述
voice_idstring必填要​使用​的​声音​ UU​ID。​可​从​ GET /tts/voices ​获取​可​用​ ID。
textstring必填要​转换​为​语音​的​文本。​默认​上​限:​5,000​个​Un​icode​字符。
formatstring必填输出音频​格式。​必须​是​所​选声​音​支持​的​格式。mp3wavoggpcmflac ​之一。
streamboolean可​选true时,​以​分块流​形式​返​回音​频​用于​实时​播放。​声音​必须​为streaming: true,​并且​所​选格式​必须​支持​在​该​提供​商上​流式​传输。​默​认为false
sample_rateinteger可​选省略​或​设为0时​使用​默认2​4​,000 ​Hz。​仅​对​列出​多​个​采样率​的​声音​设置非​零值。​Qwen 后​端声音​使用ogg时​不​接受​采样率​覆盖。
temperaturenumber可​选提供​商​特定​的​变化​控制,​目前​对​Qwen​后​端声音​有​意义​(Qwen默​认值:0.5)。​其他​声音请​省略。

响​应

POST /tts — 二​进制​音频

成功​时,​AP​I返​回带​有​适当Content-Type头​的​原始​二​进制​音频数据​(MP3​为audio/mpeg)。​将响​应体​直接​保存到​文件:

# The response is binary audio data — save directly to file
curl -s -X POST "https://api.shisa.ai/tts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"voice_id": "61ba1141-60aa-4bc3-a3b3-be1ec20700b3", "format": "mp3", "text": "テスト"}' \
--output speech.mp3

GET /tts/voices — JSON

返​回​一​个​包含​可​用​声音​对​象数组​的​对象:

{
"voices": [
{
"id": "e3362c0a-7677-4cd8-b122-91fb093305c9",
"description": "Young male Japanese voice...",
"language": "Japanese & English",
"gender": "Male",
"formats": ["mp3", "ogg", "pcm"],
"sample_rates": [8000, 16000, 22050, 24000, 32000, 44100, 48000],
"streaming": true
}
]
}

声音​对​象​字段:

字段类型描述
idstring (uuid)在​请求​中用​作 voice_id ​的​ U​U​ID。
descriptionstring人类​可读​的​声音​描述。
languagestring支持​的​语言。
genderstring声音性别​(Male、​Fe​male、​Ne​utral)。
formatsarray支持​的​输出音频​格式。
sample_ratesarray支持​的​输出​采样率​(Hz)。
streamingboolean声音​的​提供​商​是否​至少​支持​一​种​格式​的​实时​流式​传输;​这​不​表示formats中​的​每​个​值​都​可​流式​传输。

错误​处理

错误​以下列​格式​的​ J​SON 返回:

{
"context": ["..."],
"code": 104,
"name": "ErrAuthenticationFailed",
"error": "Authentication error: Invalid token"
}

错误代​码

状态原​因解决​方案
400参数​缺失​或​无效检查​ voice_idtext ​和​ format ​字段。
400声音​不​支持​的​格式使用​声音​ formats 数​组​中​列出​的​格式。
400提供商​与​格式​的​组合​不​支持​流式​传输stream设为false,​或​选择​可​流式​传输​的​格式。
400不​支持​的​采样​率省​略sample_rate,​或​选择​声音​支持​的​可配置​采样率。
400文本​超过​配置​上限缩短​文本;​默认上​限​为​5,000​个​字符。
401API ​密钥​无效​或​缺失检查​您​的​ Authorization: Bearer 头。
403服务​访问​被​拒绝该​密钥​不​能​使用​所​选声​音​背后​的​提供​商。
404TTS​服务/​提供​商​未​注册检查​服务​可​用性​或​联系​支持。
429超​出速率​限制使用​指数​退避​等​待后​重试。
500内部​服务器​错误重试​请​求​或​联系​技术​支持。
注意

当​请​求​的format不​在​所选​声音​的formats数​组​中​时,​也​会​返​回400。​此外,streaming: true并不​保证​每​种​支持​的​格式​都​能​流式​传输;​不​受​支持​的​提供​商/格式​组合​在stream: true时​会​返​回400

后续​步​骤

  • 快速​开始中​逐步​完成​您​的​第一​个​请求。
  • 声​音目录​中浏览​可​用​声音。
  • 价格中​了解​用量​的​计费​方式。