前言说明

火山引擎语音合成,适用于有声阅读、音视频创作、汽车等场景,使用 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”等等。
1.使用本站下载的源码仅限于个人学习和非商业用途。
2.禁止将本站下载的源码用于搭建或支持任何违法、淫秽、暴力或侵犯他人合法权益的网站或应用。
3.使用本站下载的源码需遵守国家法律法规及相关规定,不得从事任何违法活动。
4.如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。