本章节为您介绍了调用阿里云语音服务SDK的具体步骤,您可以参考本文档,调用其他API实现对应功能。
前提条件
在使用语音服务SDK之前,您需要:
开通语音服务SDK并购买语音号码,具体操作请参见真实号管理。
获取AccessKey信息,具体操作请参见获取AccessKey。
完成安装SDK,具体操作请参见Java SDK。
说明
本章节以调用SingleCallByTts实现向指定号码发送语音验证码为您示例。
操作步骤
说明
调用接口前,需配置环境变量,通过环境变量读取访问凭证。AccessKey ID和AccessKey Secret的环境变量名:VMS_AK_ENV 、VMS_SK_ENV。配置详情请参见配置访问凭证。
创建profile和client实例,并传入AccessKey信息。
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。 // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("VMS_AK_ENV"), System.getenv("VMS_SK_ENV")); IAcsClient client = new DefaultAcsClient(profile);
说明RegionId默认选择cn-hangzhou。
创建request实例,并设置请求参数。
CommonRequest request = new CommonRequest(); //请求方法分为POST和GET,建议您选择POST方式 request.setMethod(MethodType.POST); //Domain参数的默认值为dyvmsapi.aliyuncs.com request.setDomain("dyvmsapi.aliyuncs.com"); //当前语音服务SDK默认版本号为2017-05-25 request.setVersion("2017-05-25"); //被叫显示号码信息 request.putQueryParameter("CalledShowNumber", "1380000****"); //被叫号码 request.putQueryParameter("CalledNumber", "02131****"); //文本转语音(TTS)模板ID request.putQueryParameter("TtsCode", "TTS_177553"); ...
创建response实例,并传入请求参数。
CommonResponse response = client.getCommonResponse(request);
打印输出信息。
System.out.println(JSON.toJSONString(response));
操作样例
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
/*
pom.xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.3</version>
</dependency>
*/
public class SingleCallByTts {
public static void main(String[] args) {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
System.getenv("VMS_AK_ENV"),
System.getenv("VMS_SK_ENV")
);
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain("dyvmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SingleCallByTts");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("CalledShowNumber", "1862****");
request.putQueryParameter("CalledNumber", "0213****");
request.putQueryParameter("TtsCode", "TTS_177553");
request.putQueryParameter("PlayTimes", "3");
request.putQueryParameter("Volume", "60");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
返回示例如下所示:
正常返回示例:
{ "RequestId": "AE3FE0F9-8301-4BD3-9996-174AC6981ABE", "Message": "OK", "CallId": "123856432324^11064938****", "Code": "OK" }
异常返回示例:
{ "RequestId": "2105E752-A349-4A27-B83F-B6F5FC3D5734", "Message": "文本转语音模板不合法", "Code": "isv.TEMPLATE_ILLEGAL" }
文档内容是否对您有帮助?