java 怎样调用windows的tts

java 怎样调用windows的tts,第1张

采用JNI调用Windows自带的(或者其他TTS引擎安装的)TTS,提供Java接口,方便其他Java程序调用系统TTS。

使用说明:

1)拷贝CamelTTSdll到你的java项目的lib目录,因为java程序引用这个dll的路径是“SystemloadLibrary("lib/CamelTTS");”。

2)拷贝CamelTTSjar到你的java项目的lib目录,当然要引入到classpath。

3)在你的程序里面call这个接口,例子如下:

public static void main(String args[])

{

DoSpeak doSpeak = new DoSpeak();

doSpeakspeakString("\u8BF7N002\u52301\u53F7\u67DC\u53F0");

}

4)最后的一步,安装你的Windows的TTS,比如:NeoSpeech,发音很标准,当然Windows缺省的也有,可以用这个方式决定启用哪个 TTS:“开始-设置-控制面板-语音-文字/语音转换”,选择LH Michael(男声),LH Michelle(女声)。

在java程序中如何调用linux的命令?如何调用shell脚本呢?

这里不得不提到java的process类了。

process这个类是一个抽象类,封装了一个进程(你在调用linux的命令或者shell脚本就是为了执行一个在linux下执行的程序,所以应该使用process类)。

process类提供了执行从进程输入,执行输出到进程,等待进程完成,检查进程的推出状态,以及shut down掉进程。

至于详细的process类的介绍放在以后介绍。

另外还要注意一个类:Runtime类,Runtime类是一个与JVM运行时环境有关的类,这个类是Singleton的。

这里用到的RuntimegetRuntime()方法是取得当前JVM的运行环境,也是java中唯一可以得到运行环境的方法。(另外,Runtime的大部分方法都是实例方法,也就是说每次运行调用的时候都需要调用到getRuntime方法)

下面说说Runtime的exec()方法,这里要注意的有一点,就是public Process exec(String [] cmdArray, String [] envp);这个方法中cmdArray是一个执行的命令和参数的字符串数组,数组的第一个元素是要执行的命令往后依次都是命令的参数,envp感觉应该和C中的execve中的环境变量是一样的,envp中使用的是name=value的方式。

下面说一下,如何使用process来调用shell脚本

例如,我需要在linux下实行linux命令:sh testsh,下面就是执行testsh命令的方法:

这个var参数就是日期这个201102包的名字。

JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。

简单介绍及应用如下:

一、JAVA中所需要做的工作

在JAVA程序中,首先需要在类中声明所调用的库名称,如下:

static {

SystemloadLibrary(“goodluck”);

}

在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。

还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具 体实现。如下:

public native static void set(int i);

public native static int get();

然后编译该JAVA程序文件,生成CLASS,再用JAVAH命令,JNI就会生成C/C++的头文件。

例如程序testdlljava,内容为:

public class testdll

{

static

{

SystemloadLibrary("goodluck");

}

public native static int get();

public native static void set(int i);

public static void main(String[] args)

{

testdll test = new testdll();

testset(10);

Systemoutprintln(testget());

}

}

用javac testdlljava编译它,会生成testdllclass。

再用javah testdll,则会在当前目录下生成testdllh文件,这个文件需要被C/C++程序调用来生成所需的库文件。

以上就是关于java 怎样调用windows的tts全部的内容,包括:java 怎样调用windows的tts、在windows系统中开发的java程序要调用linux下的shell脚本怎么办、Java怎么调用.net DLL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9717169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存