TTS开发技术--Java

Posted 风中点球

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TTS开发技术--Java相关的知识,希望对你有一定的参考价值。

   使用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();    }  }

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

    ?

以上是关于TTS开发技术--Java的主要内容,如果未能解决你的问题,请参考以下文章

开源tts代码 flite-1.4 文本转语音的开发

TTS C++程序只能在开发PC上运行

rootView上的Android片段空指针异常[关闭]

java将文本转换成语音

创建片段而不从 java 代码实例化它

delphi下调用微软的TTS语音