问题描述
- 关于Java使用Sapi.SpVoice语音合成问题
-
ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
Dispatch sapo = sap.getObject();try { sap.setProperty("Volume", new Variant(volume)); sap.setProperty("Rate", new Variant(rate)); 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(message)); } catch (Exception e) { e.printStackTrace(); } finally { sapo.safeRelease(); sap.safeRelease(); }
使用以上代码可以实现将文字转换成语音朗读,但只是调用windows系统设置的默认语音库,想要换语音库还要进控制面板-语音进行语音库选择。求如何实现在代码中调用不同语音库进行朗读。
或者提供能完成以上功能的其他方式的源码也可以。
解决方案
你好,请问以上代码直接写在main方法里运行就有效果吗?
new Variant(message)中的message是朗读的文本吗?
解决方案二:
你好,请问以上代码直接写在main方法里运行就有效果吗?
new Variant(message)中的message是朗读的文本吗?
解决方案三:
你好,请问这个可以可以直接在64位的windows上运行吗?我要实现一个java语音播报功能,但是用jboc总是出错。可以给一份源码我吗?谢了
解决方案四:
你好,我的机器运行这个会报错。Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid;
请问你知道哪里出错了吗?求解答,谢谢了
解决方案五:
我在win7 64位上运行成功了,需要装微软SAPI的语音引擎(Microsoft Speech API 好像默认就有)。楼下两位的情况感觉是引擎没装上或者是jacob.dll没放好吧,确认放到system32或WOW64下了么?
另外我在找用JNA调用sapi的代码,一致没找到啊,谁能提供些信息。
解决方案六:
楼主你好,我的是win7笔记本,在自己电脑上,一切都正常,把同样的dll文件拷到台式机上,就是没声音,是怎么回事啊
时间: 2024-09-20 00:19:20