全部产品
Search
文档中心

智能语音交互:接口说明

更新时间:Sep 04, 2026

语音合成为您提供将输入文本合成为语音二进制数据的功能。本文档介绍了当前目录下各SDK文档的通用信息。

功能介绍

  • 支持输出PCM、WAV和MP3编码格式数据。

  • 支持设置语速、语调和音量。

  • 支持一次性合成300字符以内的文字,其中1个汉字、1个英文字母、1个标点或1个句子中间空格均算作1个字符,超过300个字符的内容将会截断。

  • 仅支持采用UTF-8编码的文本输入。

  • 如果生僻字发音不准,可使用SSML的<phoneme>标签指定拼音,或替换为同音字。

说明
  • 字级别音素边界接口:语音合成服务在输出音频的同时,可输出每个汉字/英文单词在音频中的时间位置,即时间戳。该时间信息可用于驱动虚拟人口型、做视频配音字幕等。详情请参见语音合成时间戳功能介绍。

  • 使用 TTS 预设音色替换视频或音频中的原始音轨:

    1. 调用 TTS API 生成语音文件,通过 voice 参数指定音色。如需时间戳同步,设置 enable_subtitle=true 并选择支持时间戳的发音人(如 siqi、siyue、sicheng),默认发音人 xiaoyun 不支持。时间戳仅通过 WebSocket 协议返回。

    2. 使用 ffmpeg 将音频与视频合成:ffmpeg -i input.mp4 -i tts_output.wav -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4。

服务地址

访问类型

说明

URL

外网访问

所有服务器均可通过外网访问URL调用服务。SDK默认使用该URL。

wss://nls-gateway-ap-southeast-1.aliyuncs.com/ws/v1

交互流程

image
说明
  • 上图描述的是WebSocket的交互流程,关于RESTful API的交互流程图请参见RESTful API。

  • 服务端的响应除了音频流之外,都会在返回信息的header包含本次识别任务的task_id参数,是本次请求的唯一标识。

  • 如果您希望实时播放服务端返回的音频流,请使用支持流式播放的音频播放器。支持流式播放的播放器包括:ffmpeg、pyaudio(Python)、AudioFormat(Java)和MediaSource(JavaScript)等。

  1. 鉴权

    客户端与服务端建立WebSocket连接时,使用Token进行鉴权。

  2. 开始合成

    客户端发起语音合成请求,在请求消息中进行参数设置,各参数含义如下表所示。

    参数

    类型

    是否必需

    说明

    appkey

    String

    是

    管控台创建的项目Appkey。

    text

    String

    是

    待合成文本,文本内容必须采用UTF-8编码,长度不超过300个字符(英文字母之间需要添加空格)。

    说明

    只有支持多情感的音色,才能使用<emotion>标签,否则会报错:Illegal ssml text。

    voice

    String

    否

    发音人,默认是xiaoyun。

    format

    String

    否

    音频编码格式,支持.pcm、.wav和.mp3格式。默认值:pcm。

    sample_rate

    Integer

    否

    音频采样率,默认值:16000 Hz。

    volume

    Integer

    否

    音量,取值范围:0~100。默认值:50。

    speech_rate

    Integer

    否

    语速,取值范围:-500~500,默认值:0。

    [-500, 0, 500] 对应的语速倍速区间为 [0.5, 1.0, 2.0]。

    1. -500表示默认语速的0.5倍速。

    2. 0表示默认语速的1倍速。1倍速是指模型默认输出的合成语速,语速会依据每一个发音人略有不同,大概每秒钟4个字左右。

    3. 500表示默认语速的2倍速。

    计算方法如下:

    1. 0.8倍速(1-1/0.8)/0.002 = -125

    2. 1.2倍速(1-1/1.2)/0.001 = 166

    说明
    1. 小于1倍速时,使用0.002系数。

    2. 大于1倍速时,使用0.001系数。

    实际算法结果取近似值。

    pitch_rate

    Integer

    否

    语调,取值范围:-500~500,默认值:0。

    enable_subtitle

    Boolean

    否

    开启字级别时间戳。更多使用方法,请参见语音合成时间戳功能介绍。

  3. 接收合成数据

    服务端返回合成的语音二进制数据,SDK接收并处理二进制数据。

  4. 结束合成

    语音合成完毕,服务端发送合成完毕事件通知,举例如下。

    {
        "header": {
            "message_id": "05450bf69c53413f8d88aed1ee60****",
            "task_id": "640bc797bb684bd6960185651307****",
            "namespace": "SpeechSynthesizer",
            "name": "SynthesisCompleted",
            "status": 20000000,
            "status_message": "GATEWAY|SUCCESS|Success."
        }
    }
    说明

    文档示例将合成的音频保存在文件中,如果您需要播放音频且对实时性要求较高,建议使用流式播放,即边接收语音数据边播放,减少延时。

  5. 合成失败处理

    当因为参数或其他原因导致合成任务失败时,会收到任务失败(TaskFailed)通知,举例如下。收到任务失败通知后,对应底层连接将断开。

    {
       "header":{
          "namespace":"Default",
          "name":"TaskFailed",
          "status":41020001,
          "message_id":"62c126f7d9b340deb82b5b7eaca0****",
          "task_id":"4552df26d1f547aab9a2c4a94678****",
          "status_text":"TTS:TtsClientError:[tts]Engine return error code: 418"
       }
    }

音色列表

名称

voice参数值

类型

适用场景

支持语言

支持采样率(Hz)

支持字级别音素边界接口

备注

小云

Xiaoyun

标准女声

通用场景

中文及中英文混合场景

8K/16K

否

无

小刚

Xiaogang

标准男声

通用场景

中文及中英文混合场景

8K/16K

否

无

若兮

Ruoxi

温柔女声

通用场景

中文及中英文混合场景

8K/16K/24K

否

无

思琪

Siqi

温柔女声

通用场景

中文及中英文混合场景

8K/16K/24K

是

无

思佳

Sijia

标准女声

通用场景

中文及中英文混合场景

8K/16K/24K

否

无

思诚

Sicheng

标准男声

通用场景

中文及中英文混合场景

8K/16K/24K

是

无

艾琪

Aiqi

温柔女声

通用场景

中文及中英文混合场景

8K/16K

是

无

艾佳

Aijia

标准女声

通用场景

中文及中英文混合场景

8K/16K

是

无

艾诚

Aicheng

标准男声

通用场景

中文及中英文混合场景

8K/16K

是

无

艾达

Aida

标准男声

通用场景

中文及中英文混合场景

8K/16K

是

无

宁儿

Ninger

标准女声

通用场景

纯中文场景

8K/16K/24K

否

无

瑞琳

Ruilin

标准女声

通用场景

纯中文场景

8K/16K/24K

否

无

思悦

Siyue

温柔女声

客服场景

中文及中英文混合场景

8K/16K/24K

是

无

艾雅

Aiya

严厉女声

客服场景

中文及中英文混合场景

8K/16K

是

无

艾夏

Aixia

亲和女声

客服场景

中文及中英文混合场景

8K/16K

是

无

艾美

Aimei

甜美女声

客服场景

中文及中英文混合场景

8K/16K

是

无

艾雨

Aiyu

自然女声

客服场景

中文及中英文混合场景

8K/16K

是

无

艾悦

Aiyue

温柔女声

客服场景

中文及中英文混合场景

8K/16K

是

无

艾婧

Aijing

严厉女声

客服场景

中文及中英文混合场景

8K/16K

是

无

小美

Xiaomei

甜美女声

客服场景

中文及中英文混合场景

8K/16K/24K

否

无

艾娜

Aina

浙普女声

客服场景

纯中文场景

8K/16K

是

无

伊娜

Yina

浙普女声

客服场景

纯中文场景

8K/16K/24K

否

无

思婧

Sijing

严厉女声

客服场景

纯中文场景

8K/16K/24K

是

无

思彤

Sitong

儿童音

童声场景

纯中文场景

8K/16K/24K

否

无

小北

Xiaobei

萝莉女声

童声场景

纯中文场景

8K/16K/24K

是

无

艾彤

Aitong

儿童音

童声场景

纯中文场景

8K/16K

是

无

艾薇

Aiwei

萝莉女声

童声场景

纯中文场景

8K/16K

是

无

艾宝

Aibao

萝莉女声

童声场景

纯中文场景

8K/16K

是

无

Harry

Harry

英音男声

英文场景

英文场景

8K/16K

否

无

Abby

Abby

美音女声

英文场景

英文场景

8K/16K

否

无

Andy

Andy

美音男声

英文场景

英文场景

8K/16K

否

无

Eric

Eric

英音男声

英文场景

英文场景

8K/16K

否

无

Emily

Emily

英音女声

英文场景

英文场景

8K/16K

否

无

Luna

Luna

英音女声

英文场景

英文场景

8K/16K

否

无

Luca

Luca

英音男声

英文场景

英文场景

8K/16K

否

无

Wendy

Wendy

英音女声

英文场景

英文场景

8K/16K/24K

否

无

William

William

英音男声

英文场景

英文场景

8K/16K/24K

否

无

Olivia

Olivia

英音女声

英文场景

英文场景

8K/16K/24K

否

无

姗姗

Shanshan

粤语女声

方言场景

标准粤文(简体)及粤英文混合场景

8K/16K/24K

否

无

小玥

Xiaoyue

四川话女声

方言场景

中文及中英文混合场景

8K/16K

否

公测版

Lydia

Lydia

英中双语女声

英文场景

英文场景

8K/16K

否

公测版

艾硕

Aishuo

自然男声

客服场景

中文及中英文混合场景

8K/16K

是

公测版

青青

Qingqing

中国台湾话女声

方言场景

中文场景

8K/16K

否

公测版

翠姐

Cuijie

东北话女声

方言场景

中文场景

8K/16K

否

公测版

小泽

Xiaoze

湖南重口音男声

方言场景

中文场景

8K/16K

是

公测版

服务状态码

服务的每一次响应都包含status字段,即服务状态码,各状态码含义如下。

通用错误:

错误码

原因

解决办法

40000001

身份认证失败

检查使用的令牌是否正确,是否过期。

40000002

无效的消息

检查发送的消息是否符合要求。

403

令牌过期或无效的参数

首先检查使用的令牌是否过期,然后检查参数值设置是否合理。

40000004

空闲超时

确认是否长时间(10秒)没有发送数据到服务端。

40000005

请求数量过多

检查是否超过了并发连接数或者每秒钟请求数。如果超过并发数,建议从免费版升级到商用版,或者商用版扩容并发资源。

40000000

默认的客户端错误码

根据错误消息解决问题,或提交工单。

50000000

默认的服务端错误

如果状态码偶尔返回,可以忽略;如果状态码多次返回,请提交工单。

50000001

内部调用错误

如果状态码偶尔返回,可以忽略;如果状态码多次返回,请提交工单。

网关错误:

错误码

原因

解决办法

40010001

不支持的接口

如果使用SDK,请提交工单。

40010002

不支持的指令

如果使用SDK,请提交工单。

40010003

无效的指令

如果使用SDK,请提交工单。

40010004

客户端提前断开连接

检查是否在请求正常完成之前关闭了连接。

40010005

任务状态错误

发送了当前任务状态不能处理的指令。

配置错误:

错误码

原因

解决办法

40020105

应用不存在

检查应用appkey是否正确,是否与令牌归属同一个账号。

TTS(Text to Speech)错误:

错误码

原因

解决办法

41020001

参数错误

检查是否传递了正确的参数。

51020001

TTS服务端错误

如果状态码偶尔返回,可以忽略;如果状态码多次返回,请提交工单。