文本转语音外呼接口(SingleCallByTts)
步骤 1 创建阿里云账号
为了访问语音服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:
访问阿里云 官方网站,单击页面上的 免费注册 按钮。
按照屏幕提示完成注册流程并进行企业实名认证语音服务只支持企业实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里。
步骤 2 获取阿里云访问密钥
为了使用语音文本单呼API-JAVA SDK,您必须申请阿里云的访问密钥。
阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。
该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。
您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。
步骤 3 在控制台完成号码与模板的申请,获得调用接口必备的参数
在“语音号码”页面完成资质的申请,号码的购买
在“文本转语音模板”页面完成模板申请,或,在“语音通知文件”页面完成文件上传
入参列表参数名称
参数类型
必填与否
样例取值
参数说明
CalledShowNumber
String
必须
4001112222
被叫显号
CalledNumber
String
必须
13700000000
被叫号码
TtsCode
String
必须
TTS_10001
TTS文本模板Code
TtsParam
String
可选
{“AckNum”:”123456”}
替换TTS模板中变量的JSON串
Volume
Integer
可选
100
音量
PlayTimes
Integer
可选
3
播放次数(最多3次)
OutId
String
可选
abcdefgh
预留给调用方使用的ID, 最终会通过在回执消息中将此ID带回给调用方
出参列表出参名称
出参类型
样例取值
参数说明
RequestId
String
8906582E-6722
请求ID
Code
String
OK
状态码-返回OK代表请求成功,其他错误码详见错误码列表
Message
String
请求成功
状态码的描述
CallId
String
134523^4351232
调用的回执ID
技术对接步骤
1:下载SDK工具包
SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dyvms-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。
SDK&DEMO[下载地址]
2: 编写样例程序//设置访问超时时间
System.setProperty("sun.net.client.defaultConnectTimeout","10000");
System.setProperty("sun.net.client.defaultReadTimeout","10000");
//云通信产品-语音API服务产品名称(产品名固定,无需修改)
finalStringproduct="Dyvmsapi";
//产品域名(接口地址固定,无需修改)
finalStringdomain="dyvmsapi.aliyuncs.com";
//AK信息
finalStringaccessKeyId="yourAccessKeyId";
finalStringaccessKeySecret="yourAccessKeySecret";
//初始化acsClient 暂时不支持多region
IClientProfileprofile=DefaultProfile.getProfile("cn-hangzhou",accessKeyId,accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou",product,domain);
IAcsClientacsClient=newDefaultAcsClient(profile);
SingleCallByTtsRequestrequest=newSingleCallByTtsRequest();
//必填-被叫显号,可在语音控制台中找到所购买的显号
request.setCalledShowNumber("02560000000");
//必填-被叫号码
request.setCalledNumber("1500000000");
//必填-Tts模板ID
request.setTtsCode("TTS_000000");
//可选-当模板中存在变量时需要设置此值
request.setTtsParam("{\"code\":\"123456\"}");
//可选-音量 取值范围 0--200
request.setVolume(100);
//可选-播放次数
request.setPlayTimes(3);
//可选-外部扩展字段,此ID将在回执消息中带回给调用方
request.setOutId("yourOutId");
//hint 此处可能会抛出异常,注意catch
SingleCallByTtsResponsesingleCallByTtsResponse=acsClient.getAcsResponse(request);
if(singleCallByTtsResponse.getCode()!=null&&singleCallByTtsResponse.getCode().equals("OK")){
//请求成功
System.out.println("语音文本外呼---------------");
System.out.println("RequestId="+singleCallByTtsResponse.getRequestId());
System.out.println("Code="+singleCallByTtsResponse.getCode());
System.out.println("Message="+singleCallByTtsResponse.getMessage());
System.out.println("CallId="+singleCallByTtsResponse.getCallId());
}
错误码列表Code
描述
OK
请求成功
isp.RAM_PERMISSION_DENY
RAM权限DENY
isv.OUT_OF_SERVICE
业务停机
isv.PRODUCT_UN_SUBSCRIPT
未开通云通信产品的阿里云客户
isv.OUT_OF_SERVICE
业务停机
isv.PRODUCT_UNSUBSCRIBE
产品未开通
isv.ACCOUNT_NOT_EXISTS
账户不存在
isv.ACCOUNT_ABNORMAL
账户异常
isv.TTS_TEMPLATE_ILLEGAL
TTS模板不合法
isv.DISPLAY_NUMBER_ILLEGAL
号显不合法
isv.TEMPLATE_MISSING_PARAMETERS
文本转语音模板参数缺失
isv.BLACK_KEY_CONTROL_LIMIT
模板变量中存在黑名单关键字
isv.INVALID_PARAMETERS
参数异常
isv.PARAM_NOT_SUPPORT_URL
变量不支持url参数
isp.SYSTEM_ERROR
系统错误
isv.MOBILE_NUMBER_ILLEGAL
号码格式非法
isv.BUSINESS_LIMIT_CONTROL
触发流控
isv.PARAM_LENGTH_LIMIT
参数长度受限