第一步:準備工作,註冊百度語音開發者賬號,獲得:
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("語音生成了"); } }