java调用Windows语音调用不了

com.jacob.com.ComFailException: Invoke of: Speak
comfailexception
代码:
public class Dome1 {
public static void main(String[] args) throws IOException {

// 创建与微软应用程序的新连接。传入的参数是注册表中注册的程序的名称。
ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
try {
// 音量 0-100
sap.setProperty("Volume", new Variant(100));
// 语音朗读速度 -10 到 +10
sap.setProperty("Rate", new Variant(-2));
// 获取执行对象
Dispatch sapo = sap.getObject();
// 执行朗读
Dispatch.call(sapo, "Speak", new Variant("您好,很高兴认识您"));
// 关闭执行对象
sapo.safeRelease();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭应用程序连接
sap.safeRelease();
}
}
}
报错:
com.jacob.com.ComFailException: Invoke of: Speak Source: Description:
at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:858)
at com.jacob.com.Dispatch.callN(Dispatch.java:455)
at com.jacob.com.Dispatch.call(Dispatch.java:544)
at com.dome.Dome1.main(Dome1.java:23)

问题:这是怎么回事?怎样才能解决