You need to enable JavaScript to run this app.
导航
单向流式http-支持复刻2.0/混音mix
最近更新时间:2025.06.12 16:53:33首次发布时间:2025.06.12 16:53:33
我的收藏
有用
有用
无用
无用

1 接口功能

单向流式API为用户提供文本转语音的能力,支持多语种、多方言,同时支持http协议流式输出。

1.1最佳实践

  • 客户端读取服务端流式返回的json数据,从中取出对应的音频数据;
  • 音频数据返回的是base64格式,需要解析后拼接到字节数组即可组装音频进行播放;
  • 可以使用对应编程语言的连接复用组件,避免重复建立tcp连接(火山服务端keep-alive时间为1分钟),例如python的session组件:
session = requests.Session()
response = session.post(url, headers=headers, json=payload, stream=True)

2 接口说明

2.1 请求Request

请求路径

  • 服务对应的请求路径:https://openspeech.bytedance.com/api/v3/tts/unidirectional

Request Headers

Key

说明

是否必须

Value示例

X-Api-App-Id

使用火山引擎控制台获取的APP ID,可参考 控制台使用FAQ-Q1

123456789

X-Api-Access-Key

使用火山引擎控制台获取的Access Token,可参考 控制台使用FAQ-Q1

your-access-key

X-Api-Resource-Id

表示调用服务的资源信息 ID

  • 大模型语音合成:volc.service_type.10029(字符版)、volc.service_type.10048(并发版)
  • 声音复刻2.0:volc.megatts.default(小时版)
  • volc.megatts.concurr(并发版)

  • 大模型语音合成及混音:volc.service_type.10029(字符版)

    volc.service_type.10048(并发版)
    
  • 声音复刻2.0:volc.megatts.default(小时版)

  • volc.megatts.concurr(并发版)

(不支持声音复刻1.0)

X-Api-App-Key

固定值

aGjiRDfUWi

X-Api-Request-Id

标识客户端请求ID,uuid随机字符串

67ee89ba-7050-4c04-a3d7-ac61a63499b3

Response Headers

Key

说明

Value示例

X-Tt-Logid

服务端返回的 logid,建议用户获取和打印方便定位问题

2025041513355271DF5CF1A0AE0508E78C

2.2 请求Body

字段

描述

是否必须

类型

默认值

user

用户信息

object

——

user.id

用户uid

string

——

req_params.text

输入文本(单向流式目前不支持ssml)

string

——

req_params.speaker

发音人,具体见发音人列表

string

——

req_params.audio_params

音频参数,便于服务节省音频解码耗时

object

——

req_params.audio_params.format

音频编码格式,mp3/ogg_opus/pcm

string

mp3

req_params.audio_params.sample_rate

音频采样率,可选值 [8000,16000,22050,24000,32000,44100,48000]

number

24000

req_params.audio_params.BitRate

音频比特率,可传16000、32000等。需另传additions = fmt.Sprintf("{"disable_default_bit_rate":true}")方可生效。

number

——

req_params.audio_params.emotion

设置音色的情感。示例:"emotion": "angry"
注:当前仅部分音色支持设置情感,且不同音色支持的情感范围存在不同。
详见:大模型语音合成API-音色列表-多情感音色

string

——

req_params.audio_params.emotion_scale

调用emotion设置情感参数后可使用emotion_scale进一步设置情绪值,范围1~5,不设置时默认值为4。
注:理论上情绪值越大,情感越明显。但情绪值1~5实际为非线性增长,可能存在超过某个值后,情绪增加不明显,例如设置3和5时情绪值可能接近。

number

4

req_params.audio_params.speech_rate

语速,取值范围[-50,100],100代表2.0倍速,-50代表0.5倍数

number

0

req_params.audio_params.loudness_rate

音量,取值范围[-50,100],100代表2.0倍音量,-50代表0.5倍音量(mix音色暂不支持)

number

0

req_params.audio_params.pitch_rate

支持复刻和mix音色,需要在additions里传参,并且要在post_process里设置,音调取值范围[-12,12]。举例:
Image
如在示例demo测试,需将payload.go中Additions类型改为string,如:
Image

number

0

req_params.audio_params.enable_timestamp

是否选择同时返回字与音素时间戳

bool

flase

req_params.extra.silence_duration

设置该参数可在句尾增加静音时长,范围0~30000ms。(注:增加的句尾静音主要针对传入文本最后的句尾,而非每句话的句尾)

number

0

req_params.additions

用户自定义参数

jsonstring

——

additions结构定义

字段

描述

是否必须

类型

默认值

enable_language_detector

自动识别语种

bool

false

disable_markdown_filter

是否开启markdown解析过滤,
为true时,解析并过滤markdown语法,例如,你好,会读为“你好”,
为false时,不解析不过滤,例如,你好,会读为“星星‘你好’星星”

bool

false

enable_latex_tn

是否可以播报latex公式,需将disable_markdown_filter设为true

bool

false

max_length_to_filter_parenthesis

是否过滤括号内的部分,0为不过滤,100为过滤

int

100

explicit_language(明确语种)

仅读指定语种的文本

  • 不给定参数,正常中英混
  • crosslingual 启用多语种前端(包含zh/en/ja/es-ms/id/pt-br)
  • zh 中文为主,支持中英混
  • en 仅英文
  • ja 仅日文
  • es-mx 仅墨西
  • id 仅印尼
  • pt-br 仅巴葡

示例(go):additions = fmt.Sprintf("{"explicit_language": "zh"}")

string

——

context_language(参考语种)

给模型提供参考的语种

  • 不给定 西欧语种采用英语
  • id 西欧语种采用印尼
  • es 西欧语种采用墨西
  • pt 西欧语种采用巴葡

string

——

示例json

{
    "req_params": {
        "text": "音频文件能够正常播放",
        "speaker": "zh_female_gaolengyujie_moon_bigtts",
        "additions": "{\"disable_markdown_filter\":true,\"enable_language_detector\":true,\"enable_latex_tn\":true,\"disable_default_bit_rate\":true,\"max_length_to_filter_parenthesis\":0,\"cache_config\":{\"text_type\":1,\"use_cache\":true}}",
        "audio_params": {
            "format": "mp3",
            "sample_rate": 24000
        }
    }
}

2.3 响应Response

  • 音频响应数据,其中data对应合成音频base64音频数据:
{
    "code": 0,
    "message": "",
    "data" : {{STRING}}
}
  • 合成音频结束对应的成功响应:
{
    "code": 20000000,
    "message": "ok",
    "data": null
}

3 错误码

Code

Message

说明

20000000

ok

音频合成结束的成功状态码

40402003

TTSExceededTextLimit:exceed max limit

提交文本长度超过限制

45000000

speaker permission denied: get resource id: access denied

音色鉴权失败,一般是speaker指定音色未授权或者错误导致

quota exceeded for types: concurrency

并发限流,一般是请求并发数超过限制

55000000

服务端一些error

服务端通用错误

4 示例Samples

Python:

tts_http_demo.py.zip
未知大小