通過百度語音生成音頻文件

第一步:準備工作,註冊百度語音開發者賬號,獲得:

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

}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章