一篇文章讲明白java文本转语音

简介: 一篇文章讲明白java文本转语音

下载jar包

解压,将jacob-1.18-xxx.dll相应放到项目使用的JAVA_HOME\bin下

创建项目,导入jar

 java代码:

import com.jacob.activeX.ActiveXComponent;

import com.jacob.com.Dispatch;

import com.jacob.com.Variant;

public class Test {

public static ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");

public static Dispatch sapo=sap.getObject();

public static void main(String【】 args) {

String str ="测试声音是否正常";

readText(str);

}//代码效果参考:http://www.ezhiqi.com/zx/art_6606.html

public static void readText(String queue) {

try {

//声音大小

sap.setProperty("Volume", new Variant(100));

//语速

sap.setProperty("Rate",new Variant(-2));

//发声

Dispatch.call(sapo,"Speak",new Variant(queue));

}//代码效果参考:http://www.ezhiqi.com/zx/art_3894.html catch (Exception e) {

e.printStackTrace();

}finally{

if(sap==null){

sap = new ActiveXComponent("Sapi.SpVoice");

}

if(sapo==null){

sapo = sap.getObject();

}

}

}

}

如果执行朗读,默认调用系统中的TTS语音播放引擎,若本机没有语音设备

可能会抛出异常(com.jacob.com.ComFailException: Invoke of: Speak)

可观看:

引用

今天收到朋友求助,他用的一款直播工具语音播放弹幕内容的功能不能用了,在询问客服后得到的解释是没有安装语音引擎,遂找到本工具然。

不能正常使用的具体表现为,打开控制面板-(类别模式下)轻松使用-语音识别-文本到语音转换中,无论选择哪种语音都提示无法使用,请切换设备。

在各种网站转了一圈之后,找到了个不错的解决方案,现搬运过来以便大家参考,原视频链接:How to add more TTS Voices in Windows 7/8.1/10 - YouTube

另外,在国内也看到了一篇文章也有类似的解决方案:部分阉割版Win7无法正常使用TTS语音的解决办法_静远的博客-CSDN博客,不过出于能在官网下载尽量在官网下载的原则,还是饶了一点远路。这里仅放出来供大家参考。

解决方法如下:

1.下载 Ms-Speech Runtime Platform 并安装

链接为:Download Microsoft Speech Platform - Runtime (Version 11) from Official Microsoft Download Center

需要注意的是,这个文件其实是分为32位和64位的,不知道为什么下载名称反而都一样了。可以通过文件大小来区分:2.6MB的是x64,2.2MB的是x86,至于那个rtf文件是不需要下载的。

2.下载需要的语音库文件并安装

链接为:Download Microsoft Speech Platform - Runtime Languages (Version 11) from Official Microsoft Download Center

经过我测试,能用的是文件名为MSSpeech_TTS_zh-CN_HuiHui.msi的语音库,大家也可以根据自己的需求选择不同的语音库。

3.调整注册表信息

安装好了之后并不能直接使用,需要在注册表中进行一下编辑,这一步稍微有点复杂,可以仔细看看。

①按下Win+R键,输入regedit并运行,打开注册表编辑器;

②打开到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\v11.0\Voices\Tokens路径下;

③找到刚才安装好了的语音库对应的文件夹,点击右键-导出,将文件保存在自己喜欢的位置;

④用记事本打开刚才保存好的reg格式的文件;

⑤在记事本的菜单栏点击编辑-替换

查找内容为\Speech Server\v11.0\,替换内容为\Speech\ ,随后点击全部替换即可;

⑥完成修改后,保存当前文件,双击运行。

⑦此时,再到控制面板中,选择新安装的语音库应该就可以使用啦。

相关文章
|
17天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
75 5
|
29天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
44 3
|
3月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
40 0
|
26天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第19天】本文介绍了Java编程中重要的数据结构——Map,通过问答形式讲解了Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的使用和性能优化技巧,适合初学者和进阶者学习。
44 4
|
3月前
|
存储 前端开发 JavaScript
【前端学java】一篇文章带你精通java 中的数组(10)
【8月更文挑战第10天】一篇文章带你精通java 中的数组
17 3
【前端学java】一篇文章带你精通java 中的数组(10)
|
3月前
|
JavaScript 前端开发 Java
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
【8月更文挑战第11天】java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
30 0
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
|
3月前
|
缓存 前端开发 JavaScript
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
【8月更文挑战第11天】一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
36 0
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
|
3月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!
35 0
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
|
3月前
|
Java
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
37 0
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
|
5月前
|
Java
一篇文章讲明白Java中内部类详解—匿名内部类
一篇文章讲明白Java中内部类详解—匿名内部类
91 2