全部产品

接口说明

本文为您介绍训练音频检测、任务提交、状态查询、结果删除及定制模型的调用全流程。

准备工作

  1. 首先需要开通语音合成服务,关于服务开通请参见服务开通与购买

  2. 已获取Access Token,请参见获取Token

  3. 目前提交一次训练任务,需要提供20句语音和对应语音内容文本,不同使用场景对应文案如下:

人声定制流程

流程图

音频标准

音频格式

采样率(Hz)

位宽(bit)

声道

压缩率(KBps)

WAV

>= 16

>= 16

>=1

MP3

>= 16

>= 16

>=1

>= 64

训练音频检测

异步请求路径:

请求名称

请求路径

请求方式

说明

同步接口(低质量的音频检测可以同步调用,15s内返回)

/stream/v1/personal-tts/audio-check/sync

POST

对语音内容(与文本内容要一致)、质量进行检测。

异步接口

/stream/v1/personal-tts/audio-check/async

POST

输入参数:

参数

类型

是否必选

说明

appkey

String

管控台创建的项目appkey。

token

String

鉴权token。

level

String

取值:rough(低质量音频)、accurate(高质量音频)。

默认值:rough。

user_id

String

用户id(声音ID)。

说明

user_id和用户声音模型有关系,需保证其唯一性。仅允许数字、英文字符、下划线组成。

user_gender

String

用户性别。取值:male(男)、female(女)。

vendor_id

String

厂商标识id(和appkey一致)。

case_id

String

使用场景。取值:interaction(交互)、story(故事)、navigation(导航)。

audio_info

Map

包括String类型三个字段:

  • id:录音文案的编号。

  • text:语音内容文本。

  • url:语音存放url地址。

notify_url

String

回调地址,支持AMQP或HTTP(POST)。调用异步接口,需要设置该参数;调用同步接口,可置为空字符串。

说明

其中,AMQP格式:

amqp://xx:xx@xxx.mq-amqp.cn-hangzhou-a.aliyuncs.com/xx?bindingKey=xx&exchangeName=amq.direct&exchangeType=direct&queueName=xx

notify_custom

String

自定义参数(可为空)。该参数将被透传。

请求示例(同步调用):

{
    "audio_info":{
        "id":"1",
        "text":"希望我们大家都能像他一样。",
        "url":"http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/2oRgpYWScskI52CY/testzhb0010/1.wav?Expires=1601104871&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=2cld%2F%2F8s8UgLVpJTpavkmSk30Nw%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F2oRgpYWScskI52CY%2Ftestzhb0010%2F1.wav"
    },
    "level":"rough",
    "user_id":"testzhb0010",
    "vendor_id":"2oRgpYWScsk****",
    "case_id":"story",
    "appkey":"2oRgpYWScsk****",
    "user_gender":"male",
    "notify_custom":"",
    "notify_url":"",
    "token":"ca6916a29bcd4fdb990b56de2e77****"
}

返回结果:

属性

值类型

说明

request_id

String

请求ID。

status

Int

状态码,200表示成功,更多状态码请查阅HTTP状态码。

error_code

String

状态说明。

data

Map

包括该任务的task_id、score(打分)、code、desc_cn(描述)。

说明

如果score低于6分,将会出现code为“1xx”对应提示信息。其对应关系如下:

  • 100:未知原因。

  • 101:信噪比过低(声音太小或环境嘈杂)。

  • 102:发音不标准。

  • 103:背景噪声过大。

  • 200:正常。

error_message

String

状态具体信息。

返回示例(同步调用):

​​{
    "status": 200,
    "error_code": 20000000,
    "error_message": "SUCCESS",
    "request_id": "05733f9798c0415897b6d9d126d6****",
    "data": {
        "score":8.3598,
        "code": 100,
        "desc":"描述信息",
        "desc_cn":"中文描述信息",
        "task_id": "c320d5075bb442f1bddcef45fb88****",
        "notify_custom": "您自定义的回调信息,原样返回,便于您异步调用时关联业务信息"
    }
}
返回示例(异步推送到回调服务器):
{
    "error_message": "SUCCESS",
    "data": {
        "task_id": "647bfa79d2a541e79a7c888d70bf****",
        "score":8.3598,
        "code_remark":"正确code=200,如果低于6分,会出现对应提示code,用来前端映射提示",
        "code": 100,
        "desc":"描述信息",
        "desc_cn":"中文描述信息",
        "notify_custom": "您自定义的回调信息,原样返回,便于您异步调用时关联业务信息"
    },
    "error_code": 20000000,
    "request_id": "647bfa79d2a541e79a7c888d70bf****",
    "status": 200
}

训练任务提交

异步请求路径:

请求名称

请求路径

请求方式

异步调用

/stream/v1/personal-tts/train

POST

输入参数:

参数

类型

是否必选

说明

appkey

String

项目appkey。

token

String

鉴权token。

u_id

String

阿里云账号ID。

user_id

String

用户id(声音ID)。

user_gender

String

用户性别。取值:male(男)、female(女)。

vendor_id

String

厂商标识id(和appkey一致)。

case_id

String

使用场景。取值:interaction(交互)、story(故事)、navigation(导航)。

audio_info

List<Map>

包括String类型三个字段:

  • id:录音文案的编号。

  • text:语音内容文本。

  • url:语音存放url地址。

notify_url

String

回调地址,支持AMQP或HTTP(POST)。为空字符串则不推送消息,如果设置notify_url,结果将推送到notify_url;如果未设置,可调用训练状态查询接口进行轮询查询。

notify_custom

String

自定义参数(可为空)。该参数将被透传。

请求示例:

{
    "u_id": "182592093105****",
    "audio_info": [{
            "id": "1",
            "text": "希望我们大家都能像他一样。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/1.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=tSEPQ3xaq2%2B7DAWKmV1mp%2F%2BniUs%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F1.wav"
        }, {
            "id": "2",
            "text": "不行,他想了一下,我不能这样对国王说,这是在撒谎。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/2.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=X%2F6uqz3h8RujxtSXEg3KavvkuI8%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F2.wav"
        }, {
            "id": "3",
            "text": "但他们非常和气地问她说:你叫什么名字?",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/3.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=royTw40%2FOSp%2FMfuQGiRnlCMDaCc%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F3.wav"
        }, {
            "id": "4",
            "text": "鸭子心想,我必须去拿回我的软糖豆。 ",
            "url ": "http: //nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/4.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=CfCVJdNr5Z1rm6mJDN%2FEcU19OPA%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F4.wav"
        },
        {
            "id": "5",
            "text": "小朋友,你们不要再欺负它了。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/5.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=fxqd4u%2BzpflWAKbxgRFdimPneVo%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F5.wav"
        },
        {
            "id": "6",
            "text": "可是小黄鸭并不怕他们。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/6.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=yQW1%2BavMJ6viXvFWjQH6SwV9pkk%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F6.wav"
        },
        {
            "id": "7",
            "text": "然后他们一起走了很长一段时间。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/7.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=gscSLQaCYDf4sfaVD%2BRXSW0hb%2Fs%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F7.wav"
        },
        {
            "id": "8",
            "text": "突然,墙壁后面传来一阵声音。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/8.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=jY6ap%2FukF%2B6sv798YjmB8G0FPIY%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F8.wav"
        },
        {
            "id": "9",
            "text": "结果盘子掉在地上>,打得粉碎。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/9.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=pLbSmb9KKYVwBY2ZS3BmC2Oup%2B8%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F9.wav"
        },
        {
            "id": "10",
            "text": "四个小伙伴很开心,一起感谢小松鼠的帮助。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/10.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=f%2Bv%2B1YyKBhSifPRfPJcUmuAm5ew%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F10.wav"
        },
        {
            "id": "11",
            "text": "不过,当他看到拇指姑娘的时候,他马上就变得高兴起来。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/11.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=tS8BaK6zwXUOEHjRzFuUlpze4oY%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F11.wav"
        },
        {
            "id": "12",
            "text": "从此以后,他过上了幸福的生活。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/12.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=kIXdM16cSvAilNE8NQx4yyIBmHU%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F12.wav"
        },
        {
            "id": "13",
            "text": "老山羊最>后伤心地哭着走了出去,最小的山羊也跟着跑了出去。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/13.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=xkExp%2FLDLSOZ5CwlQMWH%2BftBCnE%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F13.wav"
        },
        {
            "id": "14",
            "text": "而且准备一直找下去,直到他走不动为止。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/14.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=qz4W6Ue9xEvV%2Fa%2B6IiFM7GGa4%2Fs%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F14.wav"
        },
        {
            "id": "15",
            "text": "海马先生轻轻游过大海。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/15.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=fl%2Bkn38SvOQpgF1LDb3tgXEE3jM%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F15.wav"
        },
        {
            "id": "16",
            "text": "一起高高兴兴地,回到了他们的爸爸妈妈身边。 ",
            "url ": "http: //nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/16.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=8iAMD2Pm%2F%2BwqA55M2AwYy%2BL171o%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F16.wav"
        },
        {
            "id": "17",
            "text": "艾丽莎很小,不能去上学,但她有一个非常贵重精美的画册。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/17.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=LWZd9IEYVqF3Mo%2BENzzAMOTmg3I%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F17.wav"
        },
        {
            "id": "18",
            "text": "狮子还是够不着,它叫来了狐狸。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/18.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=TTshw7UY%2FipbT1G1IO7nSgqc8kk%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F18.wav"
        },
        {
            "id": "19",
            "text": "姑娘坐到国王的马车上,和国王一起回到宫中。",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/19.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=Fnl11r%2B6ZieGEuGww5IF1LdXzvo%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F19.wav"
        },
        {
            "id": "20",
            "text": "温妮大叫了起来,现在我们该怎么回家呀?",
            "url": "http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/portal/tts/1392636218258725/39mtLBfWcaHtHtdX/zhb2020111301/20.wav?Expires=1639238400&OSSAccessKeyId=LTAIiIg37IN8xeMa&Signature=VtxBXRnCsJXZ1GKysA%2FChj7plAM%3D&response-content-disposition=attachment%3Bfilename%3Dportal%2Ftts%2F1392636218258725%2F39mtLBfWcaHtHtdX%2Fzhb2020111301%2F20.wav"
        }
    ],
    "user_id": "zhb202011****",
    "vendor_id": "1SdZf7XPBbNX****",
    "case_id": "story",
    "appkey": "1SdZf7XPBbNX****",
    "user_gender": "male",
    "notify_custom": "",
    "notify_url": "",
    "token": "3dce573fec154a868b94dab9e757****"
}

返回结果:

属性

类型

说明

request_id

String

请求ID。

status

Int

200表示成功,更多状态码请查阅HTTP状态码。

error_code

String

状态说明。

data

String

包括该任务的task_id。

error_message

String

状态具体信息。

返回示例:

{
    "status": 200,
    "error_code": 20000000,
    "error_message": "SUCCESS",
    "request_id": "05733f9798c0415897b6d9d126d6****",
    "data": {
        "task_id": "3e295c90a15e45d0b33cc9b56a8f****"
    }
}

异步训练完成推送到回调服务器:

{
    "error_message": "SUCCESS",
    "data": {
        "voice": "xiaoyun",
        "task_id": "3e295c90a15e45d0b33cc9b56a8f****",
        "notify_custom": "您自定义的回调信息,原样返回,便于您异步调用时关联业务信息"
    },
    "error_code": 20000000,
    "request_id": "1bab6e1c493a45c09e16bfff54360554",
    "status": 200
}

训练状态查询

您可以通过登录智能语音交互管控台或如下方式查询已提交训练任务的状态。

异步请求路径:

请求名称

请求路径

请求方式

同步调用

/stream/v1/personal-tts/train/{task_id}

GET

输入参数:​​

参数

类型

是否必选

说明

appkey

String

项目appkey。

token

String

鉴权token。

请求示例:

格式:/stream/v1/personal-tts/train/{task_id}?appkey=xx&token=xx
示例:
1、根据提交训练任务后返回的task_id查询任务状态
https://nls-gateway-vpc.aliyuncs.com/stream/v1/personal-tts/train/36cc042d4e104dfb9eaf7e18a7809f7c?appkey=1SdZf7XPBbNXqCXX&token=3b7a41df95f14f94a9a707bccded1db8
2、根据appkey查询该appkey训练的定制模型
http://nls-gateway-vpc.aliyuncs.com/stream/v1/personal-tts/train/query?appkey=1SdZf7XPBbNXqCxx&token=3b7a41df95f14f94a9a707bccded1db8

返回示例:

属性

类型

说明

request_id

String

请求ID。

status

Int

状态码。

  • 200:训练任务存在。

  • 404:训练任务不存在。

error_code

String

状态说明。

error_message

String

状态具体信息。

data.voice

String

成功后返回训练的voice参数名称,一般为pt_appkey_nickname的形式,用于语音合成时调用。

data.status

String

有如下三种状态:

  • SUCCESS

  • WAIT

  • FAILED

data.percent

Integer

当前训练进度百分比,暂不支持。

data.remaining

Integer

当前训练预估剩余时间,单位为秒,暂不支持。

{
    "status": 200,
    "error_code": 20000000,
    "error_message": "SUCCESS",
    "request_id": "05733f9798c0415897b6d9d126d6****",
    "data": {
        "task_id": "3e295c90a15e45d0b33cc9b56a8f****",
        "voice": "pt_k1n7n93h1qjg0mv3_zhbtes****", //训练成功的定制模型id
        "status": "SUCCESS",
        "url":"http://nls.alicdn.com/mytest/ptts/tv_wav/1.wav", // 试听url
        "percent": 100, //暂不支持
        "remaining": 0   //暂不支持
    }
}

训练结果删除

基于中国网络安全法,即将出台的中国数据安全法,欧盟GDPR等法律合规性要求,以及阿里自身对用户数据和隐私保护条例,提供了用户可以完全清除自己的训练模型及所有数据的接口。

异步请求路径:

请求名称

请求路径

请求方式

异步调用

/stream/v1/personal-tts/delete

POST

输入参数:

参数

类型

是否必选

说明

appkey

String

项目appkey。

token

String

鉴权token。

user_id

String

用户id。

vendor_id

String

厂商id。

notify_url

String

回调地址,支持AMQP或HTTP(POST)。为空字符串则不推送消息。

notify_custom

String

自定义参数(可为空)。该参数将被透传。

{
    "appkey": "xxxx",
    "token": "xxxx",
  "user_id":"终端用户唯一标识",
  "notify_url": "amqp://xxxx:xxx@xxx.mq-amqp.cn-hangzhou-a.aliyuncs.com/tts_callback_mq",
    "notify_custom": "您自定义的回调信息,原样返回,便于您异步调用时关联业务信息"
}

定制模型调用方式

定制完成后,使用语音合成接口调用该声音,接口文档请参见接口说明

voice参数需要配置为pt_appkey_nickname形式。其中,appkey取值为您关联项目的appkeynickname取值为您定制声音填入的声音ID