第一步:准备工作,注册百度语音开发者账号,获得:
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); // 可选:设置代理服务器地址, http和socket二选一,或者均不设置 // 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("语音生成了"); } }