「java语音控制」如何实现语音控制
本篇文章给大家谈谈java语音控制,以及如何实现语音控制对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何用java控制window系统音量
- 2、如何实现用软件控制现实中的电路,java可以
- 3、java 接入微软tts(语音合成) 文本内容是怎么传值的 最好有demo
- 4、JAVA下如何实现语音通信的功能 新手求教 谢谢
- 5、java使用freeTTS,怎么能让机器输出中文语言
如何用java控制window系统音量
java控制window系统音量有两种办法,一是JNA或者JNI调用,二是执行VBS脚本。
这里推荐使用第二种方式,它比较灵活,控制可以放在程序内,也可以将控制文件独立出来,便于后期维护更改。
核心代码如下:
public static void main(String[] args){
File file = File.createTempFile("ylkz_vba",".vbs");
file.deleteOnExit();
FileWriter fw = new FileWriter(file);
String vbs ="'以下命令实现音量减(用循环可以实现一直减):\n" +
"Set WshShell = CreateObject(\"WScript.Shell\")\n" +
"WshShell.SendKeys(chr(hAE))\n" +
"'音量增(用循环可以实现一直增):\n" +
"Set WshShell = CreateObject(\"WScript.Shell\")\n" +
"WshShell.SendKeys(chr(hAF))";
fw.write(vbs);
fw.close();
Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();
如何实现用软件控制现实中的电路,java可以
JAVA可以干很多事情,自然也可以进行电路控制,下面是我实现的用JAVA控制8盏LED灯,能控制LED灯,自然也就能控制其它电器一类的东西了,只要把LED灯换成其它的电器或者自己想要控制的外设就行了。
上位机,与下位机都是JAVA,它们之间通过无线通信进行联结,联结后,只要在DOS屏下手工控制,比如输入"open1",则第一个灯亮,输入"open5"则第五个灯亮,输入"close1"则把第一个关掉最。
能控制LED灯,自然也就能控制其它电器了,到时候与”安琪儿智能程序"一连接,就可以进行语音控制电路了,呼呼~~
java 接入微软tts(语音合成) 文本内容是怎么传值的 最好有demo
修改LogWriter类的静态域即可随意切换输出了。main方法中代码不用改变。
代码如下:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class WriteOut {
public static void main(String[] args) throws IOException {
LogWriter.log("log info...");
}
}
class LogWriter {
// 可以写作配置:true写文件; false输出控制台
private static boolean fileLog = true;
private static String logFileName = "/tmp/log.log";
public static void log(String info) throws IOException {
OutputStream out = getOutputStream();
out.write(info.getBytes("utf-8"));
}
public static OutputStream getOutputStream() throws IOException {
if (fileLog) {
File file = new File(logFileName);
if (!file.exists())
file.createNewFile();
return new FileOutputStream(file);
} else {
return System.out;
}
}
}
JAVA下如何实现语音通信的功能 新手求教 谢谢
我做过SIP的开发.sip是一种类似http的协议,比H323简单多了.特别适合JAVA开发.
准备工具:java环境,开发工具eclipse等,测试工具ethereal必要的.
SIP:会话初始化协议(Session Initiation Protocol)
会话初始化协议(SIP)是一种应用层控制协议,它可用来创建、修改或终止多媒体会话,如因特网电话呼叫。 SIP 能够邀请参与者加入已存在的会话,如组播会议。现有的会话中可以添加或删除媒体。 SIP 支持名称映射和重定向服务,其支持用户移动性。不管用户网络位置在哪,用户只需维持单一外部可视标识符。
SIP 在五个方面支持创建和终止多媒体通信:
用户定位:决定用于通信的终端系统的确定;
用户可用性:决定被叫方是否愿意加入通信;
用户能力:媒体和媒体参数的确定;
呼叫建立:“响铃“,主叫方和被叫方的会话参数的建立;
呼叫管理:包括传输和终止会话、修改呼叫参数和调用服务。
SIP 可以结合其它 IETF 协议来建立完善的多媒体结构,如提供实时数据传输和服务质量(QOS)反馈的实时传输协议(RTP)、提供流媒体发送控制的实时流协议(RTSP)、为公用交换电话网络(PSTN)提供网关控制的媒体网关控制协议(MEGACO),以及描述多媒体会话的会话描述协议(SDP)。因此, SIP 需要与其它协议协同作用来为用户提供完善的服务。然而 SIP 的基本功能和操作并不依赖于这些协议。
SIP 提供了一组安全服务,包括防止拒绝服务攻击、认证(用户对用户和代理对用户)、完整性保护和加密及隐私服务。
SIP 同时支持 IPv4 and IPv6 。关于因特网电话会话, SIP 做如下工作:
通过 SIP 地址识别主叫方和被叫方。当建立一个 SIP 呼叫时,主叫方首先定位适合的服务器,然后发出一个 SIP 请求。最通常的 SIP 行为是邀请。 SIP 请求会被代理重定向或者触发一系列的新 SIP 请求,而不是直接到达目的被叫方。用户可以通过 SIP 服务器注册他们的位置。 SIP 地址 (URL) 可以嵌入到网页中,因此只要点击一下就可以和对方建立呼叫会话。
java使用freeTTS,怎么能让机器输出中文语言
FreeTTS可以输出中文语言过程:
①导入Java 语音API包
②为语音合成器声明实例变量
③语音合成器的初始化
初始化是FreeTTS应用中关键的部分。首先需要建立一个SynthesizerModeDesc 对象,该对象用于指明语音合成器的属性,包括语音引擎的的名称、语音引擎的操作模式、支持的语言、语音引擎的运行状态以及其发音能力等。
④创建语音合成器
创建语言合成器时需要用到Cen t ral 类, 其作用是提供用来访问所有语音输入和输出的能力, 同时也可以定为语言引擎, 根据描述符所定义的属性集合选择匹配的引擎, 从而创建语音识别器和语音合成器。语音合成器的创建需使用Central类的createSynthesizer方法,该方法接受一个SynthesizerModeDesc描述符并返回同描述符中所指定属性相匹配的一个Synthesizer对象,用以实现语音合成。
⑤准备用于朗读的Synthesizer 对象
该部分通过Synthesizer对象的allocate和resume方法分配语音引擎所需要的资源并取得可用于朗读的语音合成器。实现较为简单:speechSynthesizer1allocate();speechSynthesizer1resume();
⑥设置Syn thesizer 对象的属性
利用getSynthesizerProperties 方法可以获得Synthesizer对象的属性,其返回值是与语音合成器相关联的SynthesizerProperties对象,该对象包含语音合成器的多种属性, 每种属性可以通过setProperties方法设置。例如: setSpeakingRate方法可设置speakingRate属性,实现每分钟朗读单词速率的控制。
⑦事件处理程序设计
speak ingRate 属性, 实现每分钟朗读单词速率的控制。完成应用程序界面中JButton“读出号码”的事件程序设计, 首先通过JComboBox(选择人名的下拉列表)取得人名(namesArray)的一个索引,该索引与电话号码索引(numbersArray)保持对应,然后调用Synthesizer对象speakingPlainText方法朗读整理后的电话号码字符串。
java语音控制的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何实现语音控制、java语音控制的信息别忘了在本站进行查找喔。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。