/**
-
类描述: 语音播报工具类
-
注意:win7系统自带语音SDK,其他系统需要手动安装。另外需要下载Jacob.jar,并把dll文件放在jdk安装目录的bin目录下面
*/
public class WordsConverter {public void voice(String src,String words) {
ActiveXComponent ax = null;try { ax = new ActiveXComponent("Sapi.SpVoice"); Dispatch spVoice = ax.getObject(); ax = new ActiveXComponent("Sapi.SpFileStream"); Dispatch spFileStream = ax.getObject(); ax = new ActiveXComponent("Sapi.SpAudioFormat"); Dispatch spAudioFormat = ax.getObject(); //设置音频流格式 Dispatch.put(spAudioFormat, "Type", new Variant(22)); //设置文件输出流格式 Dispatch.putRef(spFileStream, "Format", spAudioFormat); //调用输出 文件流打开方法 Variant call = Dispatch.call(spFileStream, "Open", new Variant(src), new Variant(3), new Variant(true)); //设置声音对象的音频输出流为输出文件对象 Dispatch.putRef(spVoice, "AudioOutputStream", spFileStream); //设置音量 0到100 Dispatch.put(spVoice, "Volume", new Variant(100)); //设置朗读速度 Dispatch.put(spVoice, "Rate", new Variant(-2)); //开始朗读 Dispatch.call(spVoice, "Speak", new Variant(words)); //关闭输出文件 Dispatch.call(spFileStream, "Close"); Dispatch.putRef(spVoice, "AudioOutputStream", null); spAudioFormat.safeRelease(); spFileStream.safeRelease(); spVoice.safeRelease(); ax.safeRelease(); } catch (Exception e) { e.printStackTrace(); }
}
}