java语音播报案例

简介: 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-100
        sap.setProperty("Volume", new Variant(100));
        // 语音朗读速度 -10 到 +10
        sap.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
   */
  @Test
  public void test()
  {
    strat("语音朗读的内容", 0);
  }
}
相关文章
|
17天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
48 3
|
19天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
36 2
|
20天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
13 2
|
25天前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
16 1
|
1月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
46 15
|
1月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
35 5
|
1月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
43 2
|
1月前
|
Java C#
Java的监听处理事件--小球移动案例
Java的监听处理事件--小球移动案例
13 0
|
3月前
|
人工智能 Java 定位技术
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
这篇文章通过一个使用ChatGPT实现的Java扫雷小游戏案例,展示了ChatGPT在编程领域的应用能力。文章中包含了扫雷游戏的Java代码实现,代码中初始化了雷区地图,随机放置雷,计算每个格子周围雷的数量,并提供了一个简单的文本界面与用户交互进行游戏。游戏通过控制台输入接受玩家的指令,并给出相应的反馈。
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
|
3月前
|
监控 算法 安全
Java并发编程案例分析:死锁的检测与解决
Java并发编程案例分析:死锁的检测与解决
38 2