1. 接口说明
语音合成接口将文字信息转化为声音信息,同时提供了众多极具特色的发音人(音库)供您选择,可以在 这里 在线体验发音人效果。该能力是通过HTTP API的方式给开发者提供一个通用的接口,适用于一次性交互数据传输的AI服务场景,即将文本一次性发送至云端,云端再将合成的音频数据返回给调用方。相较于SDK,API具有轻量、跨语言的特点,不过请注意该接口使用的HTTP API协议不支持跨域。
2. 接口Demo
示例demo请点击 这里 下载。目前仅提供部分开发语言的demo,其他语言请参照下方接口文档进行开发。也欢迎热心的开发者到 讯飞开放平台社区 分享你们的demo。
3. 接口要求
集成语音合成API时,需按照以下要求。
内容 | 说明 |
---|---|
请求协议 | http(s) |
请求地址 | http[s]://api.xfyun.cn/v1/service/v1/tts |
请求方式 | POST |
接口鉴权 | 签名机制,见接口描述-授权认证 |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向讯飞云服务发起HTTP请求的均可 |
适用范围 | 任意操作系统,但因不支持跨域不适用于浏览器 |
音频属性 | 采样率16k或8k(8k仅部分发音人支持) |
音频格式 | WAV、MP3 |
文本长度 | 单次调用长度需小于1000字节 |
发音人 | 中英粤多语种、川豫多方言、男女声多风格,可以在 这里 在线体验发音人效果 |
4. 接口调用流程
采用通用的接口调用流程,详细请参照 接口描述 。
接口地址示例:
POST http[s]://api.xfyun.cn/v1/service/v1/tts HTTP/1.1
Content-Type:application/x-www-form-urlencoded; charset=utf-8
5. 接口请求参数
5.1. Header参数
在 Http Request Header 中配置授权认证参数,见 接口描述-授权认证 。其中 X-Param 为各配置参数组成的 JSON 串经 BASE64 编码之后的字符串,原始 JSON 串各字段说明如下:
参数 | 类型 | 必须 | 说明 | 示例 |
---|---|---|---|---|
auf | string | 是 | 音频采样率audio/L16;rate=16000audio/L16;rate=8000(目前官网"x_"系列发音人中仅讯飞虫虫,讯飞春春,讯飞飞飞,讯飞刚刚,讯飞宋宝宝,讯飞小包,讯飞小东,讯飞小肥,讯飞小乔,讯飞小瑞,讯飞小师,讯飞小王,讯飞颖儿支持8k) | audio/L16;rate=16000 |
aue | string | 是 | 音频编码raw(未压缩的wav格式)lame(mp3格式) | raw |
voice_name | string | 是 | 发音人,可选值详见控制台-我的应用-在线语音合成服务管理-发音人授权管理,使用方法见下方注释 | xiaoyan |
speed | string | 否 | 语速,可选值:[0-100],默认为50 | 50 |
volume | string | 否 | 音量,可选值:[0-100],默认为50 | 50 |
pitch | string | 否 | 音高,可选值:[0-100],默认为50 | 50 |
engine_type | string | 否 | 引擎类型aisound(普通效果)intp65(中文)intp65_en(英文)mtts(小语种,需配合小语种发音人使用)x(优化效果)默认为intp65 | intp65 |
text_type | string | 否 | 文本类型,可选值:text(普通格式文本),默认为text | text |
注: 在控制台添加服务后,点击“发音人管理”可自行添加并试用发音人,添加后会显示该发音人参数值,设置参数voice_name为相应的发音人参数值即可。另外,可以在 这里 在线体验发音人效果。
X-Param生成示例:
原始JSON串:
{
"auf": "audio/L16;rate=16000",
"aue": "raw",
"voice_name": "xiaoyan",
"speed": "50",
"volume": "50",
"pitch": "50",
"engine_type": "intp65",
"text_type": "text"
}
BASE64编码(即X-Param):
eyJhdWYiOiAiYXVkaW8vTDE2O3JhdGU9MTYwMDAiLCJhdWUiOiAicmF3Iiwidm9pY2VfbmFtZSI6ICJ4aWFveWFuIiwic3BlZWQiOiAiNTAiLCJ2b2x1bWUiOiAiNTAiLCJwaXRjaCI6ICI1MCIsImVuZ2luZV90eXBlIjogImludHA2NSIsInRleHRfdHlwZSI6ICJ0ZXh0In0=
5.2. Body参数
在 Http Request Body 中配置以下参数:
参数 | 类型 | 必须 | 说明 | 示例 |
---|---|---|---|---|
text | string | 是 | 待合成文本,使用utf-8编码,需urlencode,长度小于1000字节 | 科大讯飞是中国最大的智能语音技术提供商 |
6. 接口返回参数
需要根据 Content-type 的头部来确定是否服务端合成成功。
若合成成功,响应 header 包含:
Content-type: audio/mpeg
sid: hts0000bb3f@ch3d5c059d83b3477200
响应 body 为音频数据,可写入文件保存,保存类型由入参的 aue 决定:
- aue = raw, 音频文件保存类型为 wav
- aue = lame, 音频文件保存类型为 mp3
若合成出现错误,响应 header 包含:
Content-type: text/plain
响应 body 为 json 字符串,json 字段如下:
参数 | 类型 | 说明 |
---|---|---|
code | string | 结果码(具体见错误码) |
data | string | 空 |
desc | string | 描述 |
sid | string | 会话ID |
其中 sid 字段主要用于 DEBUG 追查问题,如果出现问题,可以提供sid给讯飞技术人员帮助确认问题。
示例如下:
失败:
header:
Content-Type:text/plain
body:
{
"code": "10106",
"desc": "invalid parameter|invalid speed",
"data": "",
"sid": "hts0000bb3f@ch3d5c059d83b3477200"
}
成功:
header:
Content-Type:audio/mpeg
Connection:keep-alive
Cache-Control:no-cache
sid:hts0000bb3f@ch3d5c059d83b3477200
body:
音频数据(二进制数组)
7. 调用示例
Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间:2019-05-07 07:12:51