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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xm526489770/article/details/79408784

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

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("语音生成了");
    }

}





展开阅读全文

没有更多推荐了,返回首页