java使用jacob语言实现阅读文字,文字转语音
实现文字转语音也需要一些支持,jdk默认是不支持的,因此在jdk中引入支持的文件,也是我们后面jar调用的程序。
大家都知道jdk是java编译运行时的环境,也就是为我们运行程序提供支持
那若是不支持,我们就要引入一些依赖,使其支持(文字转语音就是这样)
1、下载文档链接(免费),按照文件说明放入jdk中
jacob-1.18-x64.dll 下载链接 (免费,我的资源全免费)里面包含打包后的jar,运行就是实例中的内容
jacob-1.18-x64.dll 下载链接 (免费,我的资源全免费)里面包含打包后的jar,运行就是实例中的内容
jacob-1.18-x64.dll 下载链接 (免费,我的资源全免费)里面包含打包后的jar,运行就是实例中的内容
2、这里提供实例,可自行放到电脑中运行
引入的jar包
<!-- https://mvnrepository.com/artifact/com.jacob/jacob 文字转语音需要的jar -->
<dependency>
<groupId>com.hynnet</groupId>
<artifactId>jacob</artifactId>
<version>1.18</version>
</dependency>
测试的Main方法
/**
* 文本转语音
* 本程序中 /saveFile/jacob-1.18-x64.dll放到本机jdk环境bin中
* 查看jdk安装路径: java -verbose
*/
public class voicePlay {
public static void main(String[] args) throws InterruptedException {
while (true) {
Thread.sleep(3*60*1000);
SoundUtils.textToSound("直起背来 不准弯", 100,3);
Thread.sleep(1000);
SoundUtils.textToSound("直起背来 不准弯", 100,3);
}
}
}
抽出来的工具类,导入jar包后可直接使用
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import lombok.extern.slf4j.Slf4j;
/**
* 声音相关工具类
* <!-- https://mvnrepository.com/artifact/com.jacob/jacob 文字转语音需要的jar -->
* <dependency>
* <groupId>com.hynnet</groupId>
* <artifactId>jacob</artifactId>
* <version>1.18</version>
* </dependency>
* <p>
* 本程序中 /saveFile/jacob-1.18-x64.dll放到本机jdk环境bin中
* 查看jdk安装路径: java -verbose
*/
@Slf4j
public class SoundUtils {
/**
* 文字转语音
*
* @param text 输入文字转为语音
*/
public static Boolean textToSound(String text) {
return textToSound(text, 100, 0);
}
/**
* 文字转语音
*
* @param text 输入文字转为语音
*/
public static Boolean textToSound(String text, int volume, int voiceRate) {
if (volume < 0 || volume > 100) {
volume = 100;
}
try {
ActiveXComponent ax = new ActiveXComponent("Sapi.SpVoice");
// 音量 0-100
ax.setProperty("Volume", new Variant(volume));
// 语音朗读速度没有限制
ax.setProperty("Rate", new Variant(voiceRate));
// 运行时输出语音内容
Dispatch spVoice = ax.getObject();
// 执行朗读
Dispatch.call(spVoice, "Speak", new Variant(text));
spVoice.safeRelease();
ax.safeRelease();
return true;
} catch (Exception e) {
e.printStackTrace();
log.error("textToSound Exception: {}", e);
}
return false;
}
}