Fork me on GitHub

jacob实现语音朗读一段文本

概念

jacob官方的解释是Java COM Bridge,即java和com组件间的桥梁。

使用

1、下载解压jacob-1.19,下载地址

2、向工程里导入jacob.jar

3、将 jacob-1.19-x64.dll拷贝到jdk的bin目录或windows/SysWOW64目录

    public static void main(String[] args) throws IOException {
        playSound("Hello Jacob");
    }
    
    /**
     * 播放声音方法
     * TODO
     * @param content 播放内容
     */
    public static void playSound(String content){
        // 创建与微软应用程序的新连接.传入的参数是注册表中注册的程序的名称
        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));
            // 执行朗读
            Dispatch.call(sapo, "Speak", new Object[] { new Variant(content)});
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭执行对象
            sapo.safeRelease();
            // 关闭连接
            sap.safeRelease();
        }
    }

出现问题

no jacob-1.19-x64 in java.library.path

把dll文件放在%JAVA_HOME%\bin下(注意系统是32位还是64位),也可以放在C:\Windows\System32下,如果是64位应该放在C:\Windows\SysWOW64 下。建议放在jdk的bin目录下。

posted @ 2020-06-30 06:09  秋夜雨巷  阅读(713)  评论(0编辑  收藏  举报