首先pom文件中引用依赖
<dependency>
<groupId>com.hynnet</groupId>
<artifactId>jacob</artifactId>
<version>1.18</version>
</dependency>
方法:
/**
* 路径可自己配置
* @param text 文本内容
* @param value 音量
* @param volueRow 读取速度
* @return 是否成功
*/
public static boolean text(String text, int value,int volueRow){
try {
//音频生成路径
String path = "E:\tmp";
//固定音量大小
if (value <0 || value >100){
value = 100;
}
//调用dll朗读方法
ActiveXComponent ax = new ActiveXComponent( "Sapi.SpVoice" ) ;
//音量 0-100
ax.setProperty("Volume",new Variant(value));
//朗读速度
ax.setProperty("Rate",new Variant(volueRow));
//输入的语言内容
Dispatch dispatch = ax.getObject();
//执行朗读
Dispatch.call(dispatch,"Speak",new Variant(text));
//开始生成语音文件,构建文件流
ax = new ActiveXComponent("Sapi.SpFileStream");
Dispatch sfFileStream = ax.getObject();
//设置文件生成格式
ax = new ActiveXComponent("Sapi.SpAudioFormat");
Dispatch fileFormat = ax.getObject();
//设置音频流格式
Dispatch.put(fileFormat,"Type", new Variant(22));
//设置文件输出流格式
Dispatch.putRef(sfFileStream,"Format",fileFormat);
//调用输出文件流打开方法,创建一个.wav文件
Dispatch.call(sfFileStream,"Open",new Variant("E:\\tmp\\a.wav"),new Variant(3),new Variant(true));
//设置声音对应输出流为输出文件对象
Dispatch.putRef(dispatch,"AudioOutputStream",sfFileStream);
//设置音量
Dispatch.put(dispatch,"Volume",new Variant(value));
//设置速度
Dispatch.put(dispatch,"Rate",new Variant(volueRow));
//执行朗读
Dispatch.call(dispatch,"Speak",new Variant(text));
//关闭输出文件
Dispatch.call(sfFileStream,"Close");
Dispatch.putRef(dispatch,"AudioOutputStream",null);
//close
sfFileStream.safeRelease();
fileFormat.safeRelease();
//关闭朗读的操作
dispatch.safeRelease();
ax.safeRelease();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
问题:
如果出现项目启动报错 no jacob-1.18-x64 in java.library.path的问题是jdk中缺少dll方法需要下载一份到jdk的bin目录下
下载地址:
链接:https://pan.baidu.com/s/1B0_Z...
提取码:mcru
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。