windows-关于Java使用Sapi.SpVoice语音合成问题

问题描述

关于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

windows-关于Java使用Sapi.SpVoice语音合成问题的相关文章

C#中调用SAPI实现语音合成的2种方法

  这篇文章主要介绍了C#中调用SAPI实现语音合成的2种方法,本文直接给出示例代码,需要的朋友可以参考下 我们都知道现在的语音合成TTS是可以通过微软的SAPI实现的,好处我就不多说了,方便而已,因为在微软的操作系统里面就自带了这个玩意,主要的方式有两种: 1.使用COM组件技术,不管是C++,C#,Delphi都能玩的转,开发出来的东西在XP和WIN7都能跑.(要引入SpeechLib,好像在项目上点引用,然后选到系统COM吧,好久没弄,记不清楚了) 2.使用WIN7的windows api

windows下JAVA敏捷开发环境搭建步骤教程

  编程开发环境搭建还是挺重要的,第一步是先要搭建环境,有了环境才能开展工作.本文我们来看看windows下JAVA敏捷开发环境搭建步骤. 整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样的模式是多了第一个开发本地环境.这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发.对于mac和linux下直接使用软件并且开发的中国开发者还是少之又少,这套架构就这个现状做出来的.如下是环境搭建架构图: 从环境来说: 一.开发本地环境.开发集成服

Windows下Java File对象创建文件夹时的一个"坑"

import java.io.File; import java.io.IOException; public class DirCreate { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String dirStr="D:"; File dir=new File(dirStr); System.out.println("====

Windows下Java+MyBatis框架+MySQL的开发环境搭建教程_java

MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来. MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本.其维护团队也包含iBATIS的初创成员. 与其他的对象关系映射框架不同,MyBatis并没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联.MyBatis允许用户充分利用数据库的各种功能,例如存储过程.视图.各种复杂的查询以及某数据库的专有特性.如果要对遗留数据库.不规范的数据

windows下java环境变量的设置方法_java

windows xp下配置JDK环境变量:1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08: 2.安装完成后,右击"我的电脑",点击"属性": 3.选择"高级"选项卡,点击"环境变量": 4.在"系统变量"中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击

windows操作系统的java环境变量配置

  建议在安装jdk和jre是自定义安装目录: 我的jdk安装在:G:/0.1.develop-tools/Java/jdk1.7.0_07;jre安装在:G:/0.1.develop-tools/Java/jre7 环境变量配置: 一.计算机(右键)-属性-高级系统设置-环境变量 ①新建系统变量(JAVA_HOME) 变量名:JAVA_HOME 变量值:G:/0.1.develop-tools/Java/jdk1.7.0_07(该目录为JDK安装的路径,此路径下包括lib,bin,jre等文件

windows下java代码在linux下运行

问题描述 代码在win下面可以正常运行,一个eclipse插件,但在linux报错,如下Multiplemarkersatthisline-implementsjava.lang.Runnable.run-Themethodrun()oftypeConsoleSimulatormustoverrideasuperclassmethod代码大体如下:publicclassConsoleSimulatorimplementsRunnable{@Overridepublicvoidrun(){....

windows下,java读写U盘

问题描述 哪位兄弟用过libusb-win32读写U盘,要怎么读写U盘上指定的文件呢?下面代码是libusb的源代码中的一个测试类,只能进行数组操作?(而且在进行读操作时,老是报错.)怎么指定U盘的文件名呢?有没有其他的方法操作U盘的?/**Javalibusbwrapper*Copyright(c)2005-2006AndreasSchl�pfer<spandiatusers.sourceforge.net>**http://libusbjava.sourceforge.net*Thisli

Windows系统下Java连接SQL Server的方法简介_java

使用JDBC连接SQL Server 设置SQL Server服务器 我使用的是SQL Server 2005标准版SP2,这些都默认即可,一般不用配置.如果需要配置端口请看下面. 1."开始"→"程序"→"Microsoft SQL Server 2005"→"配置工具"→"SQL Server 配置管理器"→"SQL Server 2005 网络配置"→"MSSQLSERV