SenseAudio语音合成API,支持同步和SSE流式传输模式,可将文本转换为自然语音,提供多种音色和情感控制等功能。
SenseAudio Text-to-Speech (TTS).是一项面向实际任务的技能,主要用于SenseAudio TTS使用大型语言模型将文本转换为自然的,情感丰富的演讲. 支持10+情感,流派输出(SSE),以及精细的擦拭 v。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
SenseAudio TTS 利用大语言模型,将文本转换为自然、情感丰富的语音。支持 10+ 种情感、流式输出(SSE)以及细粒度的语音控制。
Endpoint: POST https://api.senseaudio.cn/v1/t2a_v2
Auth: Authorization: Bearer $SENSEAUDIO_API_KEY
Max text length: 10,000 字符
| Header | Required | Value |
|---|---|---|
| Authorization | 是 | Bearer YOUR_API_KEY |
| Content-Type | 是 | application/json |
| Parameter | Type | Required | Description |
|---|---|---|---|
| model | string | 是 | SenseAudio-TTS-1.0 |
| text | string | 是 | 待合成文本。支持 停顿标签 |
| stream | boolean | 是 | false = 同步响应;true = SSE 流式输出 |
| voice_setting | object | 是 | 音色配置(详见下表) |
| audio_setting | object | 否 | 音频格式配置(详见下表) |
| dictionary | array | 否 | 多音字校正(仅适用于克隆音色 + TTS-1.5) |
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
| voice_id | string | - | - | 音色 ID(系统音色或克隆音色) |
| speed | float | 1.0 | [0.5, 2.0] | 语速 |
| vol | float | 1.0 | [0, 10] | 音量 |
| pitch | int | 0 | [-12, 12] | 音调调整 |
| latex_read | boolean | false | - | 朗读 LaTeX/MathML 公式 |
| Parameter | Type | Default | Options |
|---|---|---|---|
| format | string | mp3 | mp3, wav, pcm, flac |
| sample_rate | int | 32000 | 8000, 16000, 22050, 24000, 32000, 44100 |
| bitrate | int | 128000 | 32000, 64000, 128000, 256000(MP3 格式专用) |
| channel | int | 2 | 1(单声道),2(立体声) |
停顿标签在文本中插入停顿:
你好欢迎使用我们的服务
time 单位为毫秒,最小值为 100ms{
"data": {
"audio": "hex-encoded audio data...",
"status": 2
},
"extra_info": {
"audio_length": 3500,
"audio_sample_rate": 32000,
"audio_size": 56000,
"bitrate": 128000,
"audio_format": "mp3",
"audio_channel": 1,
"word_count": 24,
"usage_characters": 30
},
"base_resp": {"status_code": 0, "status_msg": "success"}
}
data.audio 为十六进制编码。解码方式:bytes.fromhex(audio_hex)
每个数据块格式为:data: {"data":{"audio":"hex...","status":1},...}
最终数据块中 status 为 2,并包含完整的 extra_info。
curl -X POST https://api.senseaudio.cn/v1/t2a_v2
-H "Authorization: Bearer $SENSEAUDIO_API_KEY"
-H "Content-Type: application/json"
-d '{
"model": "SenseAudio-TTS-1.0",
"text": "道可道,非常道。名可名,非常名。",
"stream": false,
"voice_setting": {"voice_id": "male_0004_a"}
}' -o response.json
jq -r '.data.audio' response.json | xxd -r -p > output.mp3
import requests
resp = requests.post(
"https://api.senseaudio.cn/v1/t2a_v2",
headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"},
json={
"model": "SenseAudio-TTS-1.0",
"text": "道可道,非常道。",
"stream": False,
"voice_setting": {"voice_id": "male_0004_a"}
}
)
result = resp.json()
audio_bytes = bytes.fromhex(result["data"]["audio"])
with open("output.mp3", "wb") as f:
f.write(audio_bytes)
import requests, json
with requests.post(
"https://api.senseaudio.cn/v1/t2a_v2",
headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"},
json={"model": "SenseAudio-TTS-1.0", "text": "这是流式输出示例。", "stream": True,
"voice_setting": {"voice_id": "male_0004_a"}},
stream=True
) as r:
with open("output.mp3", "wb") as f:
for line in r.iter_lines():
if line:
line_str = line.decode("utf-8")
if line_str.startswith("data: "):
chunk = json.loads(line_str[6:])
if chunk.get("data", {}).get("audio"):
f.write(bytes.fromhex(chunk["data"]["audio"]))
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习