java语音播报案例

在做项目的过程中,我们往往会用到语音播报——把文字转换成语音播放出来,自动识别语言进行播报,那么我们现在来看看怎么操作:

1.下载jacob.jar,下载地址:这里     

2.32位操作系统下载:jacob-1.17-M2-x32.dll,64位操作系统下载:jacob-1.17-M2-x64.dll,下载地址:这里

3.将jacob.jar考到项目中进行构建路径。

4.将jacob-1.17-M2-x32.dll或者jacob-1.17-M2-x64.dll,考到系统盘:\Windows\System32\下面。

5.将jacob-1.17-M2-x32.dll或者jacob-1.17-M2-x64.dll,考到JDK安装目录的bin下面。

然后写个test方法测试一下即可,测试代码如下:

 

 /**  
* @Title: Voice.java
* @Package org.util
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-7-3 下午9:03:45
* @version V1.0  
*/
package cn.bdqn.bdqn.utils;import org.junit.Test;import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;/**   *    * 项目名称:avoice   * 类名称:Voice   * 类描述:   语音播报工具类* 创建人:Mu Xiongxiong  * 创建时间:2017-7-3 下午9:03:45   * 修改人:Mu Xiongxiong   * 修改时间:2017-7-3 下午9:03:45   * 修改备注:   * @version    *    */
public class Voice {/*** * @Title: strat* @Description: 该方法的主要作用:朗读* @param  @param content* @param  @param type 设定文件   0:开始,1停止* @return  返回类型:void   * @throws*/public void strat(String content, int type) {// ?? 这个Sapi.SpVoice是需要安装什么东西吗,感觉平白无故就来了ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");// Dispatch是做什么的?Dispatch sapo = sap.getObject();if (type == 0) {try {// 音量 0-100sap.setProperty("Volume", new Variant(100));// 语音朗读速度 -10 到 +10sap.setProperty("Rate", new Variant(1.3));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(content));} catch (Exception e) {e.printStackTrace();} finally {sapo.safeRelease();sap.safeRelease();}} else {// 停止try {Dispatch.call(sapo, "Speak", new Variant(content), new Variant(2));} catch (Exception e) {System.out.println(e.getMessage());e.printStackTrace();}}}/*** * @Title: test* @Description: 该方法的主要作用:执行朗读内容* @param   设定文件  * @return  返回类型:void   * @throws*/@Testpublic void test(){strat("语音朗读的内容", 0);}}

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转SpringBoot之定时任务详解

玩转SpringBoot之定时任务详解 https://www.cnblogs.com/mmzs/p/10161936.html 玩转SpringBoot之定时任务详解 阅读目录: 序言一、静态:基于注解二、动态:基于接口三、多线程定时任务阅读正文: 回到顶部 序言 使用SpringBoot创…

Java开发人员必知必会的20种常用类库和API

转载自 Java开发人员必知必会的20种常用类库和API 一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车。《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。在本文中,我将分享一些Java开发人员应…

sql server操作案例

今天没事做,总结了下sql server的些知识: --创建表 CREATE TABLE users (id INT ,name VARCHAR(50),age INT )--添加数据 SELECT * FROM users INSERT INTO users VALUES(2,张三1,13); INSERT INTO users VALUES(4,王五,12,山西省吕梁市,DEFAULT); --默…

左耳朵耗子:不灌鸡汤,说真的年龄渐长,技术人的发展之路该怎么走

技术圈中的很多人,最初都坚定地认为coding能改变世界。然而三五年过去后,还能不忘初心的人,少之又少。随着年龄的增长,梦想已被束之高阁,面包慢慢占据生活的大部分。对于个人发展,很多成功学者会给你灌各种…

集合中重写equals方法删除new的对象

COPYOverride public boolean equals(Object obj) {//1.是否为同一对象if (thisobj) {return true;}//2.判断是否为空if (objnull) {return false;}//3.判断是否是Student类型if (obj instanceof Student) {Student student(Student) obj;//4.比较属性if(this.name.equals(stud…

Java开发必须掌握的5种加密策略

转载自 Java开发必须掌握的5种加密策略 本文总结自《大型电商分布式系统实践——第四课》。文末给出获取全套PPT及视频的方式。 一、数字摘要 数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash函数对消息进行计算而产生。如果消息在传…

Java String格式日期加1秒(分钟或小时) java时间减一分钟,并且进行比较-时间相关的处理

https://blog.csdn.net/java0311/article/details/78047878 Java String格式日期加1秒(分钟或小时) chuan9966 2017-09-21 09:15:07 17101 收藏 6 文章标签: String格式日期加1秒 data日期加1秒 日期加1秒 版权 需求: 将如下…

sql server案例总结

--通过insert select 插入数据到已存在的表中 create table grade1 ( id int , name varchar(50) )insert into grade1 select * from grade select * from grade1--通过select into 语句将现有表中的数据添加到新表中,执行两边的话(数据库中已存在名为…

聊下JVM内存模型

转载自 聊下JVM内存模型 1. JVM内存模型 2. 程序计数器(PC) 每个线程都会有自己私有的程序计数器(PC)。可以看作是当前线程所执行的字节码的行号指示器。 也可以理解为下一条将要执行的指令的地址或者行号。字节码解释器就是通过改变这个计数器的值来选取下一条需要执行的字节码…

泛型集合

作用 它是一个泛型类,而之前使用的时候并没有传递,说明java语法是允许的,这个时候传递的类型是Object类,虽然它是所有类的父类,可以存储任意的类型,但是在遍历、获取元素时需要原来的类型就要进行强制转换。…

ASP.NET Core + Angular 2 Template for Visual Studio

多个月以来,我和多个Github上的社区贡献者一起建立支持库、包,我们最终的目的是希望完成这样一个作为起点的模板,也就是基于把Typescript代码和Angular2宿主在ASP.NET Core项目中,这个模板包含一下这些方面: 服务端预加…

MyBatis中if - else if - else 的使用

http://www.leftso.com/blog/765.html 不过有他的替代 choose,写法如下&#xff1a; <choose><when test"params!null">right JOIN</when><otherwise>LEFT JOIN</otherwise></choose> 复制 <choose><when test…

Servlet使用适配器模式进行增删改查案例(Emp.java)

package org.entity;/*** * * 项目名称&#xff1a;test_BaseDao * 类名称&#xff1a;Emp * 类描述&#xff1a; 员工实体类 * 创建人&#xff1a;Mu Xiongxiong * 创建时间&#xff1a;2017-9-13 上午8:45:47 * 修改人&#xff1a;Mu Xiongxiong * 修改…

java发送http的get、post请求

转载自 java发送http的get、post请求 Http请求类 package wzh.Http;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.Li…

C#高性能TCP服务的多种实现方式

☆ 哎~~ 想想大部分园友应该对 "高性能" 字样更感兴趣&#xff0c;为了吸引眼球所以标题中一定要突出&#xff0c;其实我更喜欢的标题是《猴赛雷&#xff0c;C#编写TCP服务的花样姿势&#xff01;》。 本篇文章的主旨是使用 .NET/C# 实现 TCP 高性能服务的不同方式&a…

mysql中 where in 用法详解

https://blog.csdn.net/haibo0668/article/details/52584307 sssss mysql中 where in 用法详解 我是高手高手高高手 2016-09-19 11:33:29 102915 收藏 14 分类专栏&#xff1a; php MY SQL &#xfeff;&#xfeff; 这里分两种情况来介绍 WHERE column IN (value1,valu…

Servlet使用适配器模式进行增删改查案例(Dept.java)

package org.entity;/*** * * 项目名称&#xff1a;test_BaseDao * 类名称&#xff1a;Dept * 类描述&#xff1a; 部门表的实体类 * 创建人&#xff1a;Mu Xiongxiong * 创建时间&#xff1a;2017-9-13 上午8:44:37 * 修改人&#xff1a;Mu Xiongxiong *…

HashSet的存储方式

存储结构 存储过程

使用org.apache.commons.io.FileUtils,IOUtils工具类操作文件

转载自 使用org.apache.commons.io.FileUtils,IOUtils;工具类操作文件 File src new File("G:/2012/portal/login.jsp"); File tar new File("G:/2012/portal/loginZs.jsp"); File tarDir new File("G:/2012/portal/center/"); FileUti…

写给新手的WebAPI实践

此篇是写给新手的Demo&#xff0c;用于参考和借鉴&#xff0c;用于发散思路。老鸟可以忽略了。 自己经常有这种情况&#xff0c;遇到一个新东西或难题&#xff0c;在了解和解决之前总是说“等搞定了一定要写篇文章记录下来”&#xff0c;但是当掌握了之后&#xff0c;就感觉好简…