java实现tts_TTS开发技术--Java

本文介绍了如何使用Java的Jacob库来实现文本转语音(TTS),并详细阐述了解决32位JDK环境、DLL文件放置问题以及微软语音引擎在部分系统上缺失的错误。提供了修复微软引擎的下载链接,并给出了测试代码示例。然而,文章指出微软的合成语音效果不佳,提出了如何更换为更自然的真人语音库作为后续探讨的重点。
摘要由CSDN通过智能技术生成

使用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系统属于阉割版,语音引擎这个模块被删除,知道问题所在那么就好解决了,修复微软引擎就可以了。

6611afd454a9271b316e18d5ca27a46d.png

解决办法:下载链接中的文件,依次运行安装就可以了。

链接:https://pan.baidu.com/s/13jeAp8PAmm8WDyqHw1NCAQ

提取码:ip64

测试代码:

ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");Dispatch sapo = sap.getObject();try {​// 音量 0-100sap.setProperty("Volume", new Variant(100));// 语音朗读速度 -10 到 +10sap.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();}}

​重点的问题是微软引擎的合成语音听起来比较生硬,怎么改变微软语音库使用其他真人语音库?这是一个问题!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值