4个步骤实现Java版的TTS(文字转语音)

TTS是Text To Speech的缩写,即“从文本到语音”,让机器能够说话。


微软自带TTS(Text To Speech) 语音引擎,可以将文本转换成语音播报。
现在通过Java程序(jacob包),利用Windows自带的TTS实现语言的播报。

详细步骤如下:

  • 下载jacob jar包和dll文件
  • 将dll放置到相应的文件目录中
  • 将 jar包加入到工程中
  • 执行测试代码

第一步:下载jacob jar包和dll文件。
从github的 jacob页面连接 下载 jacob-1.20.zip,并解压。
解压后得到如下三个关键文件:
在这里插入图片描述
第二步:将 dll 放置到相应的文件目录中
将 文件jacob-1.20-x64.dll、jacob-1.20-x86.dll 拷贝到 C:\Windows\System32 目录下。

第三步:将 jar包 加入到工程中。

第四步:执行测试代码。
代码如下:

package com.lakala.zf.bs.iot.virtual.tts;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class TTSmain {
    public static void main(String[] args) {
        //调用windowsApi 的 com组件,Sapi.spVoice是 windows com组件名称
        ActiveXComponent activeXComponent = new ActiveXComponent("Sapi.SpVoice");
        //从com组件中获得调度目标
        Dispatch dis = activeXComponent.getObject();
        try {
            //设置语言组件属性
            activeXComponent.setProperty("Volume", new Variant(100));
            activeXComponent.setProperty("Rate", new Variant(-1));
            Dispatch.call(dis, "Speak", new Variant("今天天气不错,风和日丽的。"));
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            dis.safeRelease();
            activeXComponent.safeRelease();
        }

    }

}


以上就是本文全部内容,感谢耐心阅读。

你可能感兴趣的:(java,TTS)