前置 Adapter 接口

PRE-CS-ADAPTER API DOC #

SVC 请求 #

POST /api/v3/svc/request

Request:

参数类型必填默认值说明
audio_urlstringtrue-待转换的音频文件URL
sidstringtrue-SVC 音色 ID
with_bgmbooleanfalsetrue音频文件是否包含背景音乐,如包含背景音乐,将进行声源分离,并分别返回转换后的干音与背景音乐
auto_keybooleanfalsetrue是否自动进行音高检测并使用检测到的音高进行转换,如果设置为 false,则需要手动设置 pitch
pitchintfalse0音高,数值越大越尖锐,越小越低沉;默认0
timeoutintfalse0同步等待SVC任务完成的时间,单位为ms。如任务在时限内完成,直接返回 SVC 结果,否则返回 request_id
{
  "audio_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
  "sid": "sid1",
  "with_bgm": true,
  "auto_key": true,
  "pitch": 0,
  "timeout": 0
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectSVC 结果,如任务在超时时间内完成,返回此字段,否则此字段为空{}
data.result.vocal_track_urlstringSVC 结果音频文件 URL
data.result.original_instrumental_track_urlstring声源分离后的背景音乐文件 URL,仅当 with_bgm 为 true 时返回
data.result.original_vocal_track_urlstring声源分离后的原始人声文件 URL,仅当 with_bgm 为 true 时返回
data.result.original_reverb_urlstring声源分离后的混响文件 URL,仅当 with_bgm 为 true 时返回
data.result.shifted_instrumental_track_urlstring音高转换后的背景音乐文件 URL,仅当 with_bgm 为 true 时返回
data.result.pitchintSVC 转换使用的音高

case1:请求超时

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2:请求未超时,请求成功

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "vocal_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
      "original_instrumental_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_acc.mp3",
      "original_vocal_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_vocal.mp3",
      "original_reverb_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_reverb.mp3",
      "shifted_instrumental_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_bgm.mp3",
      "pitch": 0
    }
  }
}

SVC 状态查询接口 #

POST /api/v3/svc/result

Request:

参数类型必填说明
request_idstringtrue请求 ID
{
  "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectSVC 结果,如任务在超时时间内完成,返回此字段,否则此字段为空{}
data.result.vocal_track_urlstringSVC 结果音频文件 URL
data.result.original_instrumental_track_urlstring声源分离后的背景音乐文件 URL,仅当 with_bgm 为 true 时返回
data.result.original_vocal_track_urlstring声源分离后的原始人声文件 URL,仅当 with_bgm 为 true 时返回
data.result.original_reverb_urlstring声源分离后的混响文件 URL,仅当 with_bgm 为 true 时返回
data.result.shifted_instrumental_track_urlstring音高转换后的背景音乐文件 URL,仅当 with_bgm 为 true 时返回
data.result.pitchintSVC 转换使用的音高

case1:还在处理

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2: 已处理完毕

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "vocal_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
      "original_instrumental_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_acc.mp3",
      "original_vocal_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_vocal.mp3",
      "original_reverb_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_reverb.mp3",
      "shifted_instrumental_track_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1_bgm.mp3",
      "pitch": 0
    }
  }
}

获取 QID 详情 #

GET /api/v3/tts/qid/{qid}

Response:

字段类型说明
codeintcode 码
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.resultobjectQID 详情
data.result.pitchboolean是否支持调节音调
data.result.speedboolean是否支持调节语速
data.result.volumeboolean是否支持调节音量
data.result.phonestring是否支持返回音素
data.result.subtitlestring是否支持返回字幕、句级别时间戳、字级别时间戳
data.result.ussmlobject是否支持使用 USSML 语法
data.result.ussml.breakbooleanUSSML 停顿是否生效
data.result.ussml.phonemestring list支持的 USSML phoneme alphabet 值列表,当列表为空时表示不支持使用 <phoneme> 标签
data.result.ussml.subbooleanUSSML 替换文本是否生效
data.result.ussml.sayasstring list支持的 USSML say-as interpret-as 值列表,当列表为空时不支持 <say-as> 标签
data.result.languagesstring list支持的语言列表
{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "result": {
      "pitch": true,
      "speed": true,
      "volume": true,
      "phone": true,
      "subtitle": true,
      "ussml": {
        "break": true,
        "phoneme": ["pinyin"],
        "sub": true,
        "sayas": ["cardinal", "digit", "phone", "address", "date", "clock"]
      },
      "languages": [
        "zh-CN",
        "en-US"
      ]
    }
  }
}

获取 QID 列表 #

GET /api/v3/tts/config

Response:

字段类型说明
codeintcode 码
messagestring状态说明
dataobject list结果数据
data.qidstringQID,表示预配置 QuickID。此字段的长度较长,建议以 VARCHAR(512) 类型进行存储
data.namestring音色名称
data.languagestring音色语言
{
  "code": 0,
  "message": "ok",
  "data": [
    {
      "qid": "mwvA2f:AEBEvMy850Y_Z10Mqp9GUwDGHMSi0tS_TMr8xMyI3Tzk3QyqsK",
      "name": "小妍",
      "language": "zh-CN"
    },
    {
      "qid": "ihWNP_:ACAKRZJZkmWFkYpaanGuompJkm6lkYWJrrJFkmWuqmmiRbJ5mZpugXlusllzowSwH0ZTAMYjQ10QxhzEotLUv0Syx11g0N081LCg",
      "name": "Charles",
      "language": "en-US"
    }
  ]
}

Voice ID 迁移至 QID #

主动迁移已有的 Voice ID 表示的旧音色至 Quick ID 表示的新音色,并返回对应的 QID 取值,建议对 QID 进行存储,用于后续推理请求。

POST /api/v3/tts/migrate

Request:

参数类型必填说明
voice_idstringtrue旧音色ID
{
  "voice_id": "xiaoning",
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.resultstringQID,表示预配置 QuickID。此字段的长度较长,建议以 VARCHAR(512) 类型进行存储
{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "result": "JQb7Qv:AEA_Z10Mqp9GYwDGdLzMvPzEzIqwo"
  }
}

使用 QID 的 TTS 请求 #

POST /api/v3/tts/request

Request:

参数类型必填说明
qidstringtrue发音人ID
querystringtrue待合成语音的文本内容
ssmlbooleanfalse是否使用SSML
phonemebooleanfalse是否需要返回音素文件URL
timeoutintfalse等待中控返回的超时时间,单位为ms。如中控在超时时间内返回,直接返回TTS结果,否则返回 request_id
pitch_offsetfloatfalse音调,数值越大越尖锐,越低越低沉,支持范围 [-10, 10];默认0
speed_ratiofloatfalse语速,数值越大语速越慢,支持范围 [0.5, 2];默认1.0
volumeintfalse音量,数值越大声音越大,支持范围 [1, 100];默认100
subtitle_max_lengthintfalse每行字幕最大长度,默认为0,即不限制长度
subtitle_cut_by_puncbooleanfalse是否根据标点符号对字幕进行换行,默认为false,即不切分
subtitle_custom_puncstring listfalse自定义用于字幕换行的标点符号,仅在subtitle_cut_by_punc为true时生效。
subtitle_punc_keepbooleanfalse是否保留字幕换行的标点符号,默认为false,不保留。
word_timebooleanfalse是否返回字级别时间戳,默认为false,不返回
{
  "qid": "mwvA2f:AEBEvMy850Y_Z10Mqp9GUwDGHMSi0tS_TMr8xMyI3Tzk3QyqsK",
  "query": "待合成语音的文本内容xxxxxx",
  "ssml": false,
  "phoneme": true,
  "timeout": 3000,
  "pitch_offset": 0.0,
  "speed_ratio": 1.0,
  "volume": 100,
  "subtitle_max_length": 0,
  "subtitle_cut_by_punc": false,
  "word_time": true
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectTTS 合成结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.audio_urlstringTTS 合成音频 MP3 文件 URL
data.result.srt_urlstringTTS 音频字幕 SRT 文件 URL
data.result.phone_urlstringTTS 音频音素文件 URL
data.result.duration_msintTTS音频时长,单位为ms
data.result.word_timeslistTTS音频字级别时间戳,单位为ms
data.result.word_times.begin_msint字开始时间戳,单位为ms
data.result.word_times.end_msint字结束时间戳,单位为ms
data.result.word_times.textstring字文本

case1:请求超时

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2:请求未超时,请求成功

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "audio_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
      "srt_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.srt",
      "phone_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.phone",
      "duration_ms": 1000,
      "word_times": [
        {
          "begin_ms": 2080,
          "end_ms": 2560,
          "text": "字"
        },
        {
          "begin_ms": 2560,
          "end_ms": 3040,
          "text": "级"
        },
        {
          "begin_ms": 3040,
          "end_ms": 3520,
          "text": "别"
        },
        {
          "begin_ms": 3520,
          "end_ms": 4000,
          "text": "时"
        },
        {
          "begin_ms": 4000,
          "end_ms": 4480,
          "text": "间"
        },
        {
          "begin_ms": 4480,
          "end_ms": 4960,
          "text": "戳"
        }
      ]
    }
  }
}

使用 QID 的 TTS 状态查询接口 #

POST /api/v3/tts/result

Request:

参数类型必填说明
request_idstringtrue请求 ID
{
  "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectTTS 合成结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.audio_urlstringTTS 合成音频 MP3 文件 URL
data.result.srt_urlstringTTS 音频字幕 SRT 文件 URL
data.result.phone_urlstringTTS 音频音素文件 URL
data.result.duration_msintTTS音频时长,单位为ms
data.result.word_timeslistTTS音频字级别时间戳,单位为ms
data.result.word_times.begin_msint字开始时间戳,单位为ms
data.result.word_times.end_msint字结束时间戳,单位为ms
data.result.word_times.textstring字文本

case1:还在处理

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2: 已处理完毕

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "audio_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
      "srt_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.srt",
      "phone_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.phone",
      "duration_ms": 1000,
      "word_times": [
        {
          "begin_ms": 2080,
          "end_ms": 2560,
          "text": "字"
        },
        {
          "begin_ms": 2560,
          "end_ms": 3040,
          "text": "级"
        },
        {
          "begin_ms": 3040,
          "end_ms": 3520,
          "text": "别"
        },
        {
          "begin_ms": 3520,
          "end_ms": 4000,
          "text": "时"
        },
        {
          "begin_ms": 4000,
          "end_ms": 4480,
          "text": "间"
        },
        {
          "begin_ms": 4480,
          "end_ms": 4960,
          "text": "戳"
        }
      ]
    }
  }
}

使用 QID 的 TTS 请求音色语言校验 #

根据传入的语言和音色,判断是否匹配,并返回 query 检测到的 language code

POST /api/v3/tts/validate

Request:

参数类型必填说明
qidstringtrue音色ID
querystringtrue文本
ssmlbooleanfalse是否使用SSML,默认不使用
{
    "qid": "mwvA2f:AEBEvMy850Y_Z10Mqp9GUwDGHMSi0tS_TMr8xMyI3Tzk3QyqsK",
    "query": "待合成语音的文本内容xxxxxx"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.resultobject校验结果
data.result.validboolean是否匹配
data.result.languagestring检测到的语言代码,参考标准 ISO 639-1

case1:请求成功

{
    "code": 0,
    "message": "ok",
    "data": {
        "status": 0,
        "result": {
            "valid": true,
            "language": "zh"
        }
    }
}

多音字 请求 #

POST /api/v1/request/polyphony Request:

参数类型必填说明
querystringtrue文本
formatstringfalse返回格式,支持 “pinyin” 和 “bopomofo”,默认为 “pinyin”
timeoutintfalse等待中控返回的超时时间,单位为ms。如中控在超时时间内返回,直接返回多音字结果,否则返回 request_id
{
    "query": "待合成语音的文本内容xxxxxx",
    "timeout": 3000
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求ID
data.resultobject list多音字结果,如中控在超时时间内返回,返回此字段,否则此字段为空[]
data.result.textstring多音字文本
data.result.polyphonystring list多音字的可选发音,推荐读音在前,候选读音在后
data.result.polyphony_assistlist of string list多音字的可选发音拼音及对应注音,推荐读音在前,候选读音在后。仅当 format 为 bopomofo 时返回

case1:请求超时

{
    "code": 0,
    "message": "created",
    "data": {
       "status":1000,
       "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
       "result": []
    }
}

case2:请求未超时,请求成功

{
    "code": 0,
    "message": "ok",
    "data": {
        "status":0,
        "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
        "result": [
            {
                "text":"待",
                "polyphony":["dai4","dai1"]
            },
            {
                "text":"的",
                "polyphony":["de5","di4","di1","di2"]
            }
        ]
    }
}

case3:请求注音,未超时成功

{
    "code": 0,
    "data": {
        "request_id": "66d043c7-adbd-4a12-a52e-aa7c3c226a05",
        "result": [
            {
                "polyphony": [
                    "lv4",
                    "lu4"
                ],
                "polyphony_assist": [
                    ["lv4", "ㄌㄩˋ"],
                    ["lu4", "ㄌㄨˋ"]                    
                ],
                "text": "绿"
            },
            {
                "polyphony": [
                    "le5",
                    "liao3"
                ],
                "polyphony_assist": [
                    ["le5", "˙ㄌㄜ"],
                    ["liao3", "ㄌㄧㄠˇ"]
                ],
                "text": "了"
            }
        ],
        "status": 0
    },
    "message": "ok"
}

多音字 状态查询接口 #

POST /api/v1/result/polyphony Request:

参数类型必填说明
request_idstringtrue请求ID
{
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求ID
data.resultobject list多音字结果,如中控在超时时间内返回,返回此字段否则此字段为空[]
data.result.textstring多音字文本
data.result.polyphonystring list多音字的可选发音,推荐读音在前,候选读音在后
data.result.polyphony_assistlist of string list多音字的可选发音拼音及对应注音,推荐读音在前,候选读音在后。仅当 format 为 bopomofo 时返回

case1:还在处理

{
    "code": 0,
    "message": "created",
    "data": {
        "status":1000,
        "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
        "result": []
    }
}

case2: 已处理完毕

{
    "code": 0,
    "message": "ok",
    "data": {
        "status":0,
        "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
        "result": [
            {
                "text":"待",
                "polyphony":["dai4","dai1"]
            },
            {
                "text":"的",
                "polyphony":["de5","di4","di1","di2"]
            }
        ]
    }
}

case3:请求注音,完毕

{
    "code": 0,
    "data": {
        "request_id": "66d043c7-adbd-4a12-a52e-aa7c3c226a05",
        "result": [
            {
                "polyphony": [
                    "lv4",
                    "lu4"
                ],
                "polyphony_assist": [
                    ["lv4", "ㄌㄩˋ"],
                    ["lu4", "ㄌㄨˋ"]                    
                ],
                "text": "绿"
            },
            {
                "polyphony": [
                    "le5",
                    "liao3"
                ],
                "polyphony_assist": [
                    ["le5", "˙ㄌㄜ"],
                    ["liao3", "ㄌㄧㄠˇ"]
                ],
                "text": "了"
            }
        ],
        "status": 0
    },
    "message": "ok"
}

使用 OpenAI GPT4o 的 Query 语言检测 #

根据传入的文本,返回对应的language code,返回全部检测到的语言。仅返回 ISO 639-1 及 ISO 639-2 标准中的语言代码。

POST /api/v3/nlp/langdetect

Request:

参数类型必填说明
querystringtrue待检测语言的文本,最大长度为 20,000 字符
{
    "query": "待合成语音的文本内容xxxxxx"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.resultstring list语言代码,参考标准 ISO 639-1, ISO 639-2。当语言存在于 ISO 639-1 标准中时,优先返回 ISO 639-1 标准中的语言代码

case1:请求成功

{
    "code": 0,
    "message": "ok",
    "data": {
        "status": 0,
        "result": ["zh"]
    }
}

使用微软检测接口的 Query 语言检测 #

根据传入的文本,返回对应的language code,仅返回一个占比最高的语言。

POST /api/v1/nlp/language

Request:

参数类型必填说明
querystringtrue文本
{
    "query": "待合成语音的文本内容xxxxxx"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.resultstring语言代码,参考标准 ISO 639-1

case1:请求成功

{
    "code": 0,
    "message": "ok",
    "data": {
        "status": 0,
        "result": "zh"
    }
}

TTS 请求音色语言校验 #

根据传入的语言、音色和供应商ID,判断是否匹配,并返回检测到的language code

POST /api/v1/tts/validate

Request:

参数类型必填说明
querystringtrue文本
voice_idstringtrue音色ID
languagestringtrue语言,支持 BCP 47 格式,如 “en-US”、“zh-CN”
vendor_idinttrue供应商ID
ssmlbooleanfalse是否使用SSML,默认不使用
{
    "query": "待合成语音的文本内容xxxxxx",
    "voice_id": "xiaoning",
    "language": "zh",
    "vendor_id": 3
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.resultobject校验结果
data.result.validboolean是否匹配
data.result.languagestring检测到的语言代码,参考标准 ISO 639-1

case1:请求成功

{
    "code": 0,
    "message": "ok",
    "data": {
        "status": 0,
        "result": {
            "valid": true,
            "language": "zh"
        }
    }
}

TTS 请求 #

POST /api/v1/request/tts Request:

参数类型必填说明
voice_idstringtrue发音人ID
languagestringfalse语言
querystringtrue待合成语音的文本内容
ssmlbooleanfalse是否使用SSML
phonemebooleanfalse是否需要返回音素文件URL
timeoutintfalse等待中控返回的超时时间,单位为ms。如中控在超时时间内返回,直接返回TTS结果,否则返回 request_id
pitch_offsetfloatfalse音调,数值越大越尖锐,越低越低沉,支持范围 [-10, 10];默认0
speed_ratiofloatfalse语速,数值越大语速越慢,支持范围 [0.5, 2];默认1.0
volumeintfalse音量,数值越大声音越大,支持范围 [1, 100];默认100
subtitle_max_lengthintfalse每行字幕最大长度,默认为0,即不限制长度
subtitle_cut_by_puncbooleanfalse是否根据标点符号对字幕进行换行,默认为false,即不切分
subtitle_custom_puncstring listfalse自定义用于字幕换行的标点符号,仅在subtitle_cut_by_punc为true时生效。
subtitle_punc_keepbooleanfalse是否保留字幕换行的标点符号,默认为false,不保留。
word_timebooleanfalse是否返回字级别时间戳,默认为false,不返回
{
  "voice_id": "xiaoling",
  "query": "待合成语音的文本内容xxxxxx",
  "phoneme": true,
  "timeout": 3000,
  "pitch_offset": 0.0,
  "speed_ratio": 1.0,
  "volume": 100,
  "word_time": true
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectTTS 合成结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.audio_urlstringTTS 合成音频 MP3 文件 URL
data.result.srt_urlstringTTS 音频字幕 SRT 文件 URL
data.result.phone_urlstringTTS 音频音素文件 URL
data.result.duration_msintTTS音频时长,单位为ms
data.result.word_timeslistTTS音频字级别时间戳,单位为ms
data.result.word_times.begin_msint字开始时间戳,单位为ms
data.result.word_times.end_msint字结束时间戳,单位为ms
data.result.word_times.textstring字文本

case1:请求超时

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2:请求未超时,请求成功

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "audio_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
      "srt_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.srt",
      "phone_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.phone",
      "duration_ms": 1000,
      "word_times": [
        {
          "begin_ms": 2080,
          "end_ms": 2560,
          "text": "字"
        },
        {
          "begin_ms": 2560,
          "end_ms": 3040,
          "text": "级"
        },
        {
          "begin_ms": 3040,
          "end_ms": 3520,
          "text": "别"
        },
        {
          "begin_ms": 3520,
          "end_ms": 4000,
          "text": "时"
        },
        {
          "begin_ms": 4000,
          "end_ms": 4480,
          "text": "间"
        },
        {
          "begin_ms": 4480,
          "end_ms": 4960,
          "text": "戳"
        }
      ]
    }
  }
}

TTS 状态查询接口 #

POST /api/v1/result/tts Request:

参数类型必填说明
request_idstringtrue请求 ID
{
  "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectTTS 合成结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.audio_urlstringTTS 合成音频 MP3 文件 URL
data.result.srt_urlstringTTS 音频字幕 SRT 文件 URL
data.result.phone_urlstringTTS 音频音素文件 URL
data.result.duration_msintTTS音频时长,单位为ms
data.result.word_timeslistTTS音频字级别时间戳,单位为ms
data.result.word_times.begin_msint字开始时间戳,单位为ms
data.result.word_times.end_msint字结束时间戳,单位为ms
data.result.word_times.textstring字文本

case1:还在处理

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2: 已处理完毕

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "audio_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
      "srt_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.srt",
      "phone_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.phone",
      "duration_ms": 1000,
      "word_times": [
        {
          "begin_ms": 2080,
          "end_ms": 2560,
          "text": "字"
        },
        {
          "begin_ms": 2560,
          "end_ms": 3040,
          "text": "级"
        },
        {
          "begin_ms": 3040,
          "end_ms": 3520,
          "text": "别"
        },
        {
          "begin_ms": 3520,
          "end_ms": 4000,
          "text": "时"
        },
        {
          "begin_ms": 4000,
          "end_ms": 4480,
          "text": "间"
        },
        {
          "begin_ms": 4480,
          "end_ms": 4960,
          "text": "戳"
        }
      ]
    }
  }
}

ASR 请求 #

POST /api/v1/request/asr Request:

参数类型必填说明
audio_urlstringtrue待识别文本的音频文件URL
timeoutintfalse等待中控返回的超时时间,单位为ms。如中控在超时时间内返回,直接返回ASR结果,否则返回 request_id
subtitle_max_lengthintfalse每行字幕最大长度,默认为0,即不限制长度
subtitle_cut_by_puncbooleanfalse是否根据标点符号对字幕进行换行,默认为false,即不切分
subtitle_custom_puncstring listfalse自定义用于字幕换行的标点符号,仅在subtitle_cut_by_punc为true时生效。
subtitle_punc_keepbooleanfalse是否保留字幕换行的标点符号,默认为false,不保留。
word_timebooleanfalse是否返回字级别时间戳,默认为false,不返回
{
  "audio_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.mp3",
  "timeout": 3000
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectASR 请求结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.srt_urlstringASR 音频字幕 SRT 文件 URL
data.result.textstringASR 识别结果
data.result.word_timeslistASR音频字级别时间戳,单位为ms
data.result.word_times.begin_msint字开始时间戳,单位为ms
data.result.word_times.end_msint字结束时间戳,单位为ms
data.result.word_times.textstring字文本

case1:请求超时

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2:请求未超时,请求成功

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "srt_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.srt",
      "text": "ASR识别结果",
      "word_times": [
        {
          "begin_ms": 2080,
          "end_ms": 2560,
          "text": "字"
        },
        {
          "begin_ms": 2560,
          "end_ms": 3040,
          "text": "级"
        },
        {
          "begin_ms": 3040,
          "end_ms": 3520,
          "text": "别"
        },
        {
          "begin_ms": 3520,
          "end_ms": 4000,
          "text": "时"
        },
        {
          "begin_ms": 4000,
          "end_ms": 4480,
          "text": "间"
        },
        {
          "begin_ms": 4480,
          "end_ms": 4960,
          "text": "戳"
        }
      ]
    }
  }
}

ASR 状态查询接口 #

POST /api/v1/result/asr Request:

参数类型必填说明
request_idstringtrue请求 ID
{
  "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.resultobjectASR 请求结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.srt_urlstringASR 音频字幕 SRT 文件 URL
data.result.textstringASR 识别结果
data.result.word_timeslistASR音频字级别时间戳,单位为ms
data.result.word_times.begin_msint字开始时间戳,单位为ms
data.result.word_times.end_msint字结束时间戳,单位为ms
data.result.word_times.textstring字文本

case1:请求超时

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {}
  }
}

case2:请求未超时,请求成功

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "result": {
      "srt_url": "https://xxx.oss-cn-hangzhou.aliyuncs.com/xxx/audio1.srt",
      "text": "ASR识别结果",
      "word_times": [
        {
          "begin_ms": 2080,
          "end_ms": 2560,
          "text": "字"
        },
        {
          "begin_ms": 2560,
          "end_ms": 3040,
          "text": "级"
        },
        {
          "begin_ms": 3040,
          "end_ms": 3520,
          "text": "别"
        },
        {
          "begin_ms": 3520,
          "end_ms": 4000,
          "text": "时"
        },
        {
          "begin_ms": 4000,
          "end_ms": 4480,
          "text": "间"
        },
        {
          "begin_ms": 4480,
          "end_ms": 4960,
          "text": "戳"
        }
      ]
    }
  }
}

NLP 请求 #

POST /api/v1/request/nlp Request:

参数类型必填说明
platformstringtrueNLP 引擎选项。包括:"chatgpt""sensechat"
querystringtrue用户问题的文本内容
session_idstringfalse如需要保留会话设置与上下文,使用 session_id 作为会话 ID。会话闲置超过 1 小时失效。
prompt_headerstringfalse首句提示词,默认为"你是我的AI助理,助理乐于助人、富有创意、聪明而且非常友好。"
max_reply_tokenintfalse最大回复字数,默认 500 字。可调整范围为 50-4000
timeoutintfalse等待中控返回的超时时间,单位为 ms。如中控在超时时间内返回,直接返回 NLP 结果,否则返回 request_id

注意:platformprompt_headermax_reply_token 设置仅在开启一个新的会话时生效。后续使用同一个 session_id 时,无法改变相关配置。

{
  "platform": "chatgpt",
  "query": "写一个500字主题是春天的作文",
  "session_id": "129e5e6c-60d0-4385-9b23-d9e1e507ad82",
  "prompt_header": "你是一个语文非常优秀的学生,你的老师给你布置了一些作文作业。",
  "max_reply_token": 1000,
  "timeout": 20000
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.session_idstring会话 ID
data.resultobjectNLP 请求结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.textstringNLP 返回的展示文本

case1:请求超时

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "session_id": "129e5e6c-60d0-4385-9b23-d9e1e507ad82",
    "result": {}
  }
}

case2:请求未超时,请求成功

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "session_id": "129e5e6c-60d0-4385-9b23-d9e1e507ad82",
    "result": {
      "text": "作为爱因斯坦的助理,我会帮助他完成各种任务,包括:\n\n1. 协助他进行研究和实验,为他提供所需的物品和工具。\n2. 帮助他管理日程安排,确保他能够按时参加会议和其他活动。\n3. 组织和整理他的笔记和文件,以确保他的研究工作得以顺利进行。\n4. 回答来自其他学者和媒体的问题,代表他参加一些会议和讲座。\n5. 协助他完成写作和出版工作,包括校对和编辑。\n6. 在他需要的时候,提供支持和帮助,以确保他的工作顺利进行。\n\n当然,这只是我的一些职责,具体的任务会根据爱因斯坦的需要而不同。"
    }
  }
}

NLP 状态查询接口 #

POST /api/v1/result/nlp Request:

参数类型必填说明
request_idstringtrue请求 ID
{
  "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7"
}

Response:

字段类型说明
codeintcode 码,见状态表
messagestring状态说明
dataobject结果数据
data.statusint状态,见状态表
data.request_idstring请求 ID
data.session_idstring会话 ID
data.resultobjectNLP 请求结果,如中控在超时时间内返回,返回此字段,否则此字段为空{}
data.result.textstringNLP 返回的展示文本

case1:请求超时

{
  "code": 0,
  "message": "created",
  "data": {
    "status": 1000,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "session_id": "129e5e6c-60d0-4385-9b23-d9e1e507ad82",
    "result": {}
  }
}

case2:请求未超时,请求成功

{
  "code": 0,
  "message": "ok",
  "data": {
    "status": 0,
    "request_id": "99c3f13f-c2b7-4388-91ff-8f3244d2c5b7",
    "session_id": "129e5e6c-60d0-4385-9b23-d9e1e507ad82",
    "result": {
      "text": "作为爱因斯坦的助理,我会帮助他完成各种任务,包括:\n\n1. 协助他进行研究和实验,为他提供所需的物品和工具。\n2. 帮助他管理日程安排,确保他能够按时参加会议和其他活动。\n3. 组织和整理他的笔记和文件,以确保他的研究工作得以顺利进行。\n4. 回答来自其他学者和媒体的问题,代表他参加一些会议和讲座。\n5. 协助他完成写作和出版工作,包括校对和编辑。\n6. 在他需要的时候,提供支持和帮助,以确保他的工作顺利进行。\n\n当然,这只是我的一些职责,具体的任务会根据爱因斯坦的需要而不同。"
    }
  }
}

状态表 #

TTS 相关状态 #

TTS 请求响应状态 #

code说明
0成功
x失败
status说明
0处理成功
1000处理中
1002拒绝:必填参数缺失
1003拒绝:非法的参数–发音人为空
1004拒绝:非法的参数–合成文本为空
1005拒绝:非法的参数–发音人不存在
1102请求失败,未超时:未连接到中控
1103请求失败,未超时:中控繁忙
1104请求失败,未超时:中控内部错误
1105请求失败,未超时:中控请求超时

TTS 请求查询状态 #

code说明
0成功
x失败
status说明
0成功
1000处理中
1102失败:未连接到中控
1103失败:中控繁忙
1104失败:中控内部错误
1105失败:请求超时
1106失败:未知的 request ID

ASR 相关状态 #

ASR 请求响应状态 #

code说明
0成功
x失败
status说明
0请求成功
1000请求超时,已创建了新的中控请求
2001拒绝:必填参数缺失
2002拒绝:非法的参数–音频 URL 为空
2102请求失败,未超时:未连接到中控
2103请求失败,未超时:中控繁忙
2104请求失败,未超时:中控内部错误
2105请求失败,未超时:请求超时
2106请求失败,未超时:下载音频错误

ASR 请求查询状态 #

code说明
0成功
x失败
status说明
0成功
1000处理中
2102失败:未连接到中控
2103失败:中控繁忙
2104失败:中控内部错误
2105失败:请求超时
2106失败:下载音频错误
2107失败:未知的 request ID
2108失败:音频格式错误

NLP 相关状态 #

NLP 请求响应状态 #

code说明
0成功
x失败
status说明
0请求成功
1000请求超时,已创建了新的中控请求
3001拒绝:必填参数缺失
3002拒绝:非法的参数–请求文本为空
3003拒绝:非法的参数–NLP 引擎为空
3004拒绝:非法的参数–未知的 NLP 引擎 ID
3102请求失败,未超时:未连接到中控
3103请求失败,未超时:中控繁忙
3104请求失败,未超时:中控内部错误
3105请求失败,未超时:请求超时

NLP 请求查询状态 #

code说明
0成功
x失败
status说明
0成功
1000处理中
3102失败:未连接到中控
3103失败:中控繁忙
3104失败:中控内部错误
3105失败:请求超时
3106失败:未知的 request ID

语言检测相关状态 #

v1 语言检测 请求响应状态 #

code说明
0成功
x失败
status说明
0成功
3201拒绝:必填参数缺失
3202拒绝:非法的参数–请求文本为空
3301请求失败:未能检测到语言

v3 语言检测 请求响应状态 #

code说明
0成功
x失败
status说明
0成功
86013201拒绝:必填参数缺失
86013202拒绝:非法的参数–请求文本为空
86013203拒绝:非法的参数–请求文本过长
86013301请求失败:未能检测到 ISO 639-1 或 ISO 639-2 列表中的语言
86013302请求失败:语言检测失败

音色语言校验相关状态 #

音色语言校验 请求响应状态 #

code说明
0成功
x失败
status说明
0成功
1201拒绝:必填参数缺失
1202拒绝:非法的参数–音色ID为空
1203拒绝:非法的参数–请求文本为空
1204拒绝:非法的参数–语言为空
1205拒绝:非法的参数–供应商ID为空
1206拒绝:非法的参数–音色ID不存在
1207拒绝:非法的参数–未知的语言
1208拒绝:非法的参数–未知的供应商
1301请求失败:未能检测到语言

多音字 相关状态 #

多音字 请求响应状态 #

code说明
0成功
x失败
status说明
0处理成功
1000处理中
5002拒绝:必填参数缺失
5004拒绝:非法的参数–合成文本为空
5102请求失败,未超时:未连接到中控
5103请求失败,未超时:中控繁忙
5104请求失败,未超时:中控内部错误
5105请求失败,未超时:中控请求超时

多音字 请求查询状态 #

code说明
0成功
x失败
status说明
0成功
1000处理中
5102失败:未连接到中控
5103失败:中控繁忙
5104失败:中控内部错误
5105失败:请求超时
5106失败:未知的request ID

Voice ID 迁移 相关状态 #

Voice ID 迁移 请求响应状态 #

code说明
0成功
x失败
status说明
0处理成功
86016001失败:必填参数缺失
86016002失败:非法的参数–源发音人为空
86016102失败:内部错误

获取 QID 详情 相关状态 #

获取 QID 详情 请求响应状态 #

code说明
0成功
x失败
status说明
0处理成功
86016103失败:QID 不存在