Springboot项目调用阿里云语音服务案例【真实有用】

1、首先去阿里云官网申请语音服务, 拿到AK权限(这里看官方操作流程就好了 ),这里我们使用的是文字模板转语音提醒的功能(官方的案例是拿语音文件进行语音提醒),定义好模板里面的参数 ${param}

在这里插入图片描述

2、导入以下Maven依赖
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-dyvmsapi</artifactId>
    <version>1.2.2</version>
</dependency>
3、在yml文件中写自己的阿里云AK参数(前三个参数基本上都差不多的, 除了最后两个)
oss:
  product: Dyvmsapi
  domain: dyvmsapi.aliyuncs.com
  endpoint: http://oss-cn-hangzhou.aliyuncs.com
  accessKeyId: XXXXXXXXXXXXX
  accessKeySecret: XXXXXXXXXXXXXXXXX
4、Java调用阿里云语音服务接口的代码
/**
 * 语音拨号API
 *
 * @author shiwen
 * @date 2020/9/14
 */
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dyvmsapi.model.v20170525.SingleCallByTtsRequest;
import com.aliyuncs.dyvmsapi.model.v20170525.SingleCallByTtsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * 阿里云语音服务调用接口 - 根据文本模板来进行语音通知
 */
@Configuration
public class VoiceNotificationApi {

    @Value("${oss.product}")
    private String product;
    @Value("${oss.domain}")
    private String domain;
    @Value("${oss.accessKeyId}")
    private String accessKeyId;
    @Value("${oss.accessKeySecret}")
    private String accessKeySecret;

    /**
     * 调用阿里云语音服务的方法
     *    当address为空的时候, 就说明不是采用面对面咨询的方式
     *    使用GeneralUtil.isNotNullAndEmpty(address)判断
     *
     * @return
     * @throws ClientException
     */
    public SingleCallByTtsResponse sendCVoice(String phone, String visitorName, String address) throws ClientException{
        //设置访问超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");
        //初始化acsClient 暂时不支持多region
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);
        SingleCallByTtsRequest request = new SingleCallByTtsRequest();
        //必填-被叫显号,可在语音控制台中找到所购买的显号
        request.setCalledShowNumber("XXXXXXXXXX");
        //必填-被叫号码
        request.setCalledNumber(phone);
        //必填-Tts模板ID
        request.setTtsCode("XXXXXXXXXXXXXXXX");
        // 这里主要是填写我们语音文字模板里面的参数 ${param}
        request.setTtsParam("{\"visitorName\":\"" + visitorName +"\", \"address\":\"" + address + "\"}");
        //可选-音量 取值范围 0--200
        request.setVolume(200);
        //可选-播放次数
        request.setPlayTimes(2);
        //可选-外部扩展字段,此ID将在回执消息中带回给调用方
        SingleCallByTtsResponse singleCallByTtsResponse = acsClient.getAcsResponse(request);
        if(singleCallByTtsResponse.getCode() != null && singleCallByTtsResponse.getCode().equals("OK")) {
            //请求成功
            LogUtil.info("processing sendCVoice success!RequestId = %s , Code = %s , phone = %s",
                    singleCallByTtsResponse.getRequestId(), singleCallByTtsResponse.getCode(), phone);
        }
        return singleCallByTtsResponse;
    }

}
Spring Boot是一个用于创建独立的、基于生产级别的Java应用程序的框架。它简化了Java应用程序的开发过程,提供了许多开箱即用的功能和便利,包括自动配置、自动化部署和管理依赖关系等。 阿里云是阿里巴巴集团旗下的云计算服务提供商,提供可扩展的云计算服务,包括计算、存储、数据库、网络和人工智能等。阿里云语音合成服务可以将文本转换为自然流畅的语音,为开发者和企业提供了广泛的应用场景。 要在Spring Boot应用程序中实现语音播报阿里云,我们可以使用阿里云提供的Java SDK。首先,我们需要在项目的依赖配置文件中添加阿里云的SDK依赖。然后,我们可以使用SDK提供的API来实现语音合成功能。具体步骤如下: 1. 引入阿里云语音合成SDK依赖,例如: ```xml <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-sdk-voice</artifactId> <version>1.0.0</version> </dependency> ``` 2. 在项目的配置文件中配置阿里云的访问密钥、地域和其他必要的配置项。 3. 在代码中创建一个阿里云语音合成客户端对象,并根据需求设置相应的参数,例如: ```java IClientProfile profile = DefaultProfile.getProfile("your-region-id", "your-access-key-id", "your-access-key-secret"); IAcsClient client = new DefaultAcsClient(profile); ``` 4. 调用语音合成API来合成语音,例如: ```java SynthesizeSpeechRequest request = new SynthesizeSpeechRequest(); request.setFormat("mp3"); request.setVoice("your-voice-type"); request.setText("your-text"); SynthesizeSpeechResponse response = client.getAcsResponse(request); ``` 5. 将合成的语音保存到本地文件或直接播放。 通过以上步骤,我们可以在Spring Boot应用程序中实现语音播报阿里云的功能。同时,我们还可以根据需要自定义更多的参数和功能,例如设置语速、音量和发音人等。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值