通过百度语音生成音频文件

第一步:准备工作,注册百度语音开发者账号,获得:

APP_ID=108***09

API_KEY=5Tivv**********Zld

SECRET_KEY=ID******************52vUrd

第二步:首先导入pom依赖

<dependency>
   <groupId>com.baidu.aip</groupId>
   <artifactId>java-sdk</artifactId>
   <version>4.1.1</version>
</dependency>

第三步:application.properties里边的一些设置:

 
APP_ID=108***09

API_KEY=5Tivv**********Zld

SECRET_KEY=ID******************52vUrd
#本地文件存储地址
VOICE_FILE=d://voice//
第四步:百度语音生成工具类
@Controller
public class AipUtils {

    @Value("${APP_ID}")
    private  String APP_ID ;
    @Value("${API_KEY}")
    private  String API_KEY ;
    @Value("${SECRET_KEY}")
    private  String SECRET_KEY;
    @Value("${VOICE_FILE}")
    private  String VOICE_FILE;

/**
  * @方法说明:   生成AipSpeech 实例
  * @参数说明: 无
  * @返回值:暂无
  **/
    private AipSpeech getAipSpeech(){
        // 初始化一个AipSpeech
        System.out.println("APP_ID"+APP_ID +"---- API_KEY:"+API_KEY+ "-----SECRET_KEY"+SECRET_KEY);
        AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);

        // 可选:设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        // 可选:设置代理服务器地址, httpsocket二选一,或者均不设置
       // client.setHttpProxy("proxy_host", proxy_port);  // 设置http代理
        //client.setSocketProxy("proxy_host", proxy_port);  // 设置socket代理
        return client;
    }
/**
  * @方法说明:生成语音文件
  * @参数说明:传递汉语和数字
  * @返回值:文件名称
  **/
    public String createVoice(String word){
        String url=null;
        //文件目录生成
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = new Date();
        String str = simpleDateFormat.format(date)+"//";
        File file=new File(VOICE_FILE+str);
        if(!file.exists()){
            file.mkdir();
        }
        //音频文件
        String voiceFileName=System.currentTimeMillis()+".mp3";
        AipSpeech client=this.getAipSpeech();
        TtsResponse res = client.synthesis(word, "zh", 1, null);
        byte[] data = res.getData();
        JSONObject res1 = res.getResult();
        if (data != null) {
            try {

                Util.writeBytesToFileSystem(data, VOICE_FILE+str+voiceFileName);
                //文件保存的全路径
                 url=VOICE_FILE+str+voiceFileName;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (res1 != null) {
            try {
                System.out.println(res1.toString(2));
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        return url;
    }
}
第五步:语音生成的测试类;
public class AipUtilsTest {

    @Autowired
    private AipUtils aipUtils;
    @Test
    public void createVoice() throws Exception {
        aipUtils.createVoice("语音生成了");
    }

}


 



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值