使用jacob库进行开发,链接:
链接:https://pan.baidu.com/s/15yh1fbDYdoLi1spghmCN3Q
提取码:ul2d
导入Jacob库,需要注意几点:
1、推荐使用32位java的jdk(好像使用64位jdk是失败的,记不太清了。)
2、将jacob-1.17-M2-x86.dll文件复制至jdk --> bin文件中以及C盘Windows --> System32文件中。
在使用微软的语音引擎时,会出现如下错误,网上大部分都是没有给出解决方法,那么就需要分析问题的原因所在,最后得知由于大部分微软ghost系统属于阉割版,语音引擎这个模块被删除,知道问题所在那么就好解决了,修复微软引擎就可以了。
解决办法:下载链接中的文件,依次运行安装就可以了。
链接:https://pan.baidu.com/s/13jeAp8PAmm8WDyqHw1NCAQ
提取码:ip64
测试代码:
ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
Dispatch sapo = sap.getObject();
try {
// 音量 0-100
sap.setProperty("Volume", new Variant(100));
// 语音朗读速度 -10 到 +10
sap.setProperty("Rate", new Variant(-2));
Variant defalutVoice = sap.getProperty("Voice");
Dispatch dispdefaultVoice = defalutVoice.toDispatch();
Variant allVoices = Dispatch.call(sapo, "GetVoices");
Dispatch dispVoices = allVoices.toDispatch();
Dispatch setvoice = Dispatch.call(dispVoices, "Item",
new Variant(1)).toDispatch();
ActiveXComponent voiceActivex = new ActiveXComponent(
dispdefaultVoice);
ActiveXComponent setvoiceActivex = new ActiveXComponent(setvoice);
Variant item = Dispatch.call(setvoiceActivex, "GetDescription");
// 执行朗读
Dispatch.call(sapo, "Speak", new Variant("波比贼帅的帅"));
} catch (Exception e) {
e.printStackTrace();
} finally {
sapo.safeRelease();
sap.safeRelease();
}
}
重点的问题是微软引擎的合成语音听起来比较生硬,怎么改变微软语音库使用其他真人语音库?这是一个问题!