首页 > 编程语言 >java文本转语音

java文本转语音

时间:2022-10-11 09:33:28浏览次数:122  
标签:sap java Speech 语音 jacob new 文本 com

    1. 下载jar包https://github.com/freemansoft/jacob-project/releases

       

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

       

  1. 创建项目,导入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);
}
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));
} 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)
可观看: https://zhuanlan.zhihu.com/p/551588942
引用https://zhuanlan.zhihu.com/p/551588942

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

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

 

在各种网站转了一圈之后,找到了个不错的解决方案,现搬运过来以便大家参考,原视频链接: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\ ,随后点击全部替换即可;

 

 

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

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

标签:sap,java,Speech,语音,jacob,new,文本,com
From: https://www.cnblogs.com/luozili/p/16778142.html

相关文章

  • Java集合
    集合集合的概念对象的的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能和数组的区别:数组长度固定,集合长度不固定数组可以存储基本数据类型和引用......
  • Java Web 004
    DML:对数据进行增删改添加:insertinto表名(列名1,列名2...)values(值1,值2...);--给指定列添加数据insertinto表名values(值1,...值n);--给所有列添加数据......
  • java 算法
    一、集合与数组的转换1、初始化一个固定大小的List:List<Integer>ali=Arrays.asList(1,2,3,4,5);该ali内容可以修改,但是大小不可变  如果要创建一个可变大小的Li......
  • 1.12 安装java环境
    如何在在Linux文字界面安装java环境连接xshellLinux系统中联网后(ipa)命令查看地址进入xshell填写地址与用户连接先上传软件包jdk、hadoop两种方式上传......
  • JavaScript数组(Array)方法大全
    <script>/**链接:https://www.jianshu.com/p/7e160067a06c二、数组方法概括方法名对应版本功能原数组是否改变concat()ES5-......
  • Java环境变量配置
    pathpath是一个常见的环境变量,它告诉系统除了在当前目录下寻找程序外,还可以到path指定的目录中寻找。在末尾加上:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\binclasspathJDK1.5......
  • Java微服务实战 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1ZY5h9JMF13DCijtWdHksug点击这里获取提取码 ......
  • 实战Java虚拟机 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1JF-kB-TyJRnwZQ1HeXqxyQ点击这里获取提取码 ......
  • 20_Java中的异常
    Java中的异常一、异常的概述1、异常:就是程序出现了不正常的情况2、异常体系:​ ThrowableError Exception​ RuntimeException ......
  • Java Web 03
    DDL:操作表查询:showtables;显示所有表desc表名;查询结构信息,用来显示表的状态,包括列名(columnname),各个列的类型(Type),各个列的值类型,主外键(Key),默认值,......