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. 接口调用流程

采用通用的接口调用流程,详细请参照 接口描述

接口地址示例:

  1. POST http[s]://api.xfyun.cn/v1/service/v1/tts HTTP/1.1
  2. Content-Type:application/x-www-form-urlencoded; charset=utf-8

5. 接口请求参数

5.1. Header参数

在 Http Request Header 中配置授权认证参数,见 接口描述-授权认证 。其中 X-Param 为各配置参数组成的 JSON 串经 BASE64 编码之后的字符串,原始 JSON 串各字段说明如下:

参数类型必须说明示例
aufstring音频采样率audio/L16;rate=16000audio/L16;rate=8000(目前官网"x_"系列发音人中仅讯飞虫虫,讯飞春春,讯飞飞飞,讯飞刚刚,讯飞宋宝宝,讯飞小包,讯飞小东,讯飞小肥,讯飞小乔,讯飞小瑞,讯飞小师,讯飞小王,讯飞颖儿支持8k)audio/L16;rate=16000
auestring音频编码raw(未压缩的wav格式)lame(mp3格式)raw
voice_namestring发音人,可选值详见控制台-我的应用-在线语音合成服务管理-发音人授权管理,使用方法见下方注释xiaoyan
speedstring语速,可选值:[0-100],默认为5050
volumestring音量,可选值:[0-100],默认为5050
pitchstring音高,可选值:[0-100],默认为5050
engine_typestring引擎类型aisound(普通效果)intp65(中文)intp65_en(英文)mtts(小语种,需配合小语种发音人使用)x(优化效果)默认为intp65intp65
text_typestring文本类型,可选值:text(普通格式文本),默认为texttext

注: 在控制台添加服务后,点击“发音人管理”可自行添加并试用发音人,添加后会显示该发音人参数值,设置参数voice_name为相应的发音人参数值即可。另外,可以在 这里 在线体验发音人效果。

X-Param生成示例:

  1. 原始JSON串:
  2. {
  3. "auf": "audio/L16;rate=16000",
  4. "aue": "raw",
  5. "voice_name": "xiaoyan",
  6. "speed": "50",
  7. "volume": "50",
  8. "pitch": "50",
  9. "engine_type": "intp65",
  10. "text_type": "text"
  11. }
  12. BASE64编码(即X-Param):
  13. eyJhdWYiOiAiYXVkaW8vTDE2O3JhdGU9MTYwMDAiLCJhdWUiOiAicmF3Iiwidm9pY2VfbmFtZSI6ICJ4aWFveWFuIiwic3BlZWQiOiAiNTAiLCJ2b2x1bWUiOiAiNTAiLCJwaXRjaCI6ICI1MCIsImVuZ2luZV90eXBlIjogImludHA2NSIsInRleHRfdHlwZSI6ICJ0ZXh0In0=

5.2. Body参数

在 Http Request Body 中配置以下参数:

参数类型必须说明示例
textstring待合成文本,使用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 字段如下:

参数类型说明
codestring结果码(具体见错误码)
datastring
descstring描述
sidstring会话ID

其中 sid 字段主要用于 DEBUG 追查问题,如果出现问题,可以提供sid给讯飞技术人员帮助确认问题。

示例如下:

失败:

  1. header:
  2. Content-Type:text/plain
  3. body:
  4. {
  5. "code": "10106",
  6. "desc": "invalid parameter|invalid speed",
  7. "data": "",
  8. "sid": "hts0000bb3f@ch3d5c059d83b3477200"
  9. }

成功:

  1. header:
  2. Content-Type:audio/mpeg
  3. Connection:keep-alive
  4. Cache-Control:no-cache
  5. sid:hts0000bb3f@ch3d5c059d83b3477200
  6. body:
  7. 音频数据(二进制数组)

7. 调用示例

语音合成demo go语言

语音合成demo php语言

语音合成demo java语言

语音合成demo python3语言

语音合成demo c#语言

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间:2019-05-07 07:12:51