前言说明
火山引擎语音合成,适用于有声阅读、音视频创作、汽车等场景,使用 HTTP Post 方式进行请求,返回的结果为 JSON 格式,需要进行解析,每次合成时 reqid 这个参数需要重新设置,且要保证唯一性(建议使用 uuid.V4 生成)!
认证方式采用 Bearer Token,AppID 和 Token 可在火山引擎-语音技术控制台查看,需要在请求的 Header 中填入:
Authorization":"Bearer;${token}
火山引擎语音合成的请求参数主要包括以下几个方面:
必选参数:
- text:需要进行语音合成的文本内容;
- voice:语音合成的声音类型,火山引擎支持多种语音类型,如男声、女声、童声等;
- format:音频文件格式,目前支持 MP3、M4A、WAV 三种格式;
- rate:合成音频的采样率,目前支持 8000、16000、22050、24000 四种取值;
- token:API 调用凭证。
可选参数:
- speed:语音合成的速度,可选值范围为 -500~500,默认值为 0。
- volume:语音合成的音量,可选值范围为 0~100,默认值为 50。
- pitch:语音合成的音高,可选值范围为 -500~500,默认值为 0。
除了上述参数外,还可以通过设置 HTTP 请求头中的 Content-Type 参数为 application/json,将以上请求参数以 JSON 格式传递。
请求参数
字段 | 含义 | 层级 | 格式 | 必需 | 备注 |
---|---|---|---|---|---|
app | 应用相关配置 | 1 | dict | ✓ | |
appid | 应用标识 | 2 | string | ✓ | 需要申请 |
token | 应用令牌 | 2 | string | ✓ | 目前未生效,填写默认值:default_token |
cluster | 业务集群 | 2 | string | ✓ | volcano_tts |
user | 用户相关配置 | 1 | dict | ✓ | |
uid | 用户标识 | 2 | string | ✓ | 建议填写真实的uid,非必须,可以填写一个默认值 |
audio | 音频相关配置 | 1 | dict | ✓ | |
voice | 发音人模型 | 2 | string | ✓ | 发音人参数列表
|
voice_type | 音色类型 | 2 | string | ✓ | 发音人参数列表
|
rate | 音频采样率 | 2 | int | 默认为 24000 | |
bits | 音频采样点位数 | 2 | int | 默认为 16 | |
bitrate | mp3格式时对应的码率 | 2 | int | 默认为 160 | |
encoding | 音频编码格式 | 2 | string | wav / pcm / ogg_opus / mp3,默认为 pcm
注意:wav 不支持流式 |
|
compression_rate | opus格式时编码压缩比 | 2 | int | [1, 20],默认为 1 | |
speed_ratio | 语速 | 2 | float | [0.2,3],默认为1,通常保留一位小数即可 | |
volume_ratio | 音量 | 2 | float | [0.1, 3],默认为1,通常保留一位小数即可 | |
pitch_ratio | 音高 | 2 | float | [0.1, 3],默认为1,通常保留一位小数即可 | |
request | 请求相关配置 | 1 | dict | ✓ | |
reqid | 请求标识 | 2 | string | ✓ | 建议使用 UUID,每次合成时需要重新设置 |
text | 文本 | 2 | string | ✓ | 合成语音的文本,长度限制 1024 字节 |
text_type | 文本类型 | 2 | string | plain / ssml, 默认为plain, SSML当前仅支持中文音色 | |
silence_duration | 句尾静音时长 | 2 | int | 单位为ms,不设置为125ms | |
operation | 操作 | 2 | string | ✓ | query(非流式,http只能query) / submit(流式) |
with_frontend | 时间戳相关 | 2 | int
string |
当with_frontend为1且frontend_type为unitTson的时候,返回音素级时间戳 | |
frontend_type | 时间戳相关 | 2 | int
string |
当with_frontend为1且frontend_type为unitTson的时候,返回音素级时间戳 |
请求示例
{
"app": {
"appid": "appid123",
"token": "access_token",
"cluster": "volcano_tts",
},
"user": {
"uid": "uid123"
},
"audio": {
"voice": "other",
"voice_type": "BV001_streaming",
"encoding": "mp3",
"compression_rate": 1,
"rate": 24000,
"bits": 16,
"channel": 1,
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0,
"style_name": "happy"
},
"request": {
"reqid": "uuid",
"text": "字节跳动语音合成",
"text_type": "plain",
"operation": "query",
"silence_duration": "125",
"with_frontend": "1",
"frontend_type": "unitTson"
}
}
请求示意
火山引擎语音合成API的请求示例,可以用来向API发送请求。其中:
- “appid” 指的是应用程序ID,需要开发者自己注册并获得。
- “token” 表示访问API时需要的Access Token。
- “uid” 表示用户ID,可以自定义,方便后续数据统计和分析。
- “voice” 表示使用的发音人,可以选择默认的“xiaoyan”、“xiaoyu”等,也可以选择其他预设发音人,或者上传自定义发音人模型。
- “voice_type” 表示使用的发音人模型类型,可以选择“BV001_streaming”、“BV001”等,也可以在API开发者文档中查看可选项。
- “encoding” 表示返回的音频数据格式,可以选择“mp3”、“wav”等等。
- “compression_rate”、”rate”、”bits”、”channel” 分别表示压缩比、采样率、采样位数和声道数等音频参数。
- “speed_ratio”、”volume_ratio”、”pitch_ratio” 分别表示语速、音量和音调的控制参数。
- “style_name” 表示所需的语音风格名称,可以选择不同的语音风格,如“happy”、“neutral”等。
- “reqid” 表示请求ID,用于跟踪请求并查询结果。
- “text” 表示需要转化为语音的文本内容。
- “text_type” 表示文本类型,可以选择“plain”、“ssml”等。
- “operation” 表示操作类型,可以选择“query”、“tts_stream”、”tts_wav”等。
- “silence_duration” 表示语音播放完毕之后的静默时间,单位为毫秒。
- “with_frontend” 表示是否使用前置端点。
- “frontend_type” 表示前置端点类型,可以选择“unitTson”、“sdp”等等。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END