package com.yutou.nas.utils; import com.iflytek.cloud.speech.*; import com.yutou.nas.interfaces.ObjectInterface; import java.io.File; public class AudioTools { private static boolean init = false; synchronized static void init() { if (init) { return; } SpeechUtility.createUtility(SpeechConstant.APPID + "=601f7f7d"); SpeechUtility.getUtility().setParameter(SpeechConstant.VOLUME,"100"); SpeechUtility.getUtility().setParameter(SpeechConstant.LIB_NAME_64,"/media/yutou/disk_lvm/public/servier/tools/"); SpeechUtility.getUtility().setParameter(SpeechConstant.LIB_NAME_32,"/media/yutou/disk_lvm/public/servier/tools/"); init = true; com.yutou.nas.utils.Log.i("讯飞语音已初始化"); } public static void playText(String text) { SpeechSynthesizer mss = SpeechSynthesizer.createSynthesizer(); mss.startSpeaking(text, new SynthesizerListener() { @Override public void onBufferProgress(int progress, int beginPos, int endPos, String info) { if (progress == 100) { mss.destroy(); } } @Override public void onSpeakBegin() { } @Override public void onSpeakProgress(int i, int i1, int i2) { } @Override public void onSpeakPaused() { } @Override public void onSpeakResumed() { } @Override public void onCompleted(SpeechError speechError) { com.yutou.nas.utils.Log.i(speechError.getErrorDesc() + " code " + speechError.getErrorCode()); } @Override public void onEvent(int i, int i1, int i2, int i3, Object o, Object o1) { } }); } public static void getAudio(String text, ObjectInterface objectInterface){ SpeechSynthesizer mss = SpeechSynthesizer.createSynthesizer(); mss.setParameter(SpeechConstant.VOICE_NAME, "xiaoyu"); // 设置语速,范围0~100 mss.setParameter(SpeechConstant.SPEED, "50"); // 设置语调,范围0~100 //mss.setParameter(SpeechConstant.PITCH, "50"); // 设置音量,范围0~100 mss.setParameter(SpeechConstant.VOLUME, "100"); String fileName="html" + File.separator + "audio" + File.separator + System.currentTimeMillis() + ".wav"; mss.synthesizeToUri( text, fileName, new SynthesizeToUriListener() { @Override public void onBufferProgress(int progress) { System.out.println("progress = " + progress); if (progress == 100) { objectInterface.out(fileName); mss.destroy(); } } @Override public void onSynthesizeCompleted(String s, SpeechError speechError) { System.out.println("s = " + s); System.out.println("speechError = " + speechError.getErrorDesc()); } @Override public void onEvent(int i, int i1, int i2, int i3, Object o, Object o1) { System.out.println("i = " + i + ", i1 = " + i1 + ", i2 = " + i2 + ", i3 = " + i3 + ", o = " + o + ", o1 = " + o1); } } ); } public static void main(String[] args) { init(); getAudio("警告!你已经进入监控范围,请立即离开!", new ObjectInterface() { @Override public void out(String data) { super.out(data); System.out.println(data); File file=new File(data); System.out.println(file.getAbsolutePath()); } }); } }