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);
  }
  
}

 

 

 

 

 

目录
相关文章
|
2天前
|
存储 Java
java用base64编码案例
Java Base64编码示例:导入`java.util.Base64`,设置字符串`originalString`,使用`Base64.getEncoder().encodeToString()`编码并存储到`encodedString`,打印编码后字符串。解码用`Base64.getDecoder().decode()`。
21 0
|
2天前
|
安全 Java API
精通 Java 后台开发:案例分析与实践
【4月更文挑战第5天】本文旨在帮助读者掌握 Java 后台开发,通过电子商务系统案例探讨数据库设计、RESTful API、安全性和性能优化。使用 Spring 框架简化开发,Spring Security 保障安全,缓存技术提升性能。实践部分强调版本控制、单元测试、CI/CD 和代码规范的重要性,助力开发者提升技能,应对挑战。
|
2天前
使用ueditor实现多图片上传案例——实体类(Shopping.java)
使用ueditor实现多图片上传案例——实体类(Shopping.java)
20 0
|
2天前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
29 1
|
2天前
|
SQL 设计模式 安全
Java单例模式几种写法以及代码案例拿来直接使用
Java单例模式几种写法以及代码案例拿来直接使用
36 0
|
2天前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
20 1
|
2天前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——实体层(User.java)
mybatis简单案例源码详细【注释全面】——实体层(User.java)
14 0
|
2天前
|
设计模式 消息中间件 安全
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
11 0
|
2天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
2天前
|
Java
【专栏】Java 8 的 Streams 提供了一种处理数据集合的新方式,增强了代码的可读性和可维护性
【4月更文挑战第28天】Java 8 的 Streams 提供了一种处理数据集合的新方式,增强了代码的可读性和可维护性。本文介绍了 Streams 的基本概念,如从数据源创建 Stream,以及中间和终端操作。通过过滤、映射、归并、排序、分组等案例,展示了 Streams 的使用,包括并行 Streams 提高效率。学习 Streams 可以提升代码质量和效率,文章鼓励读者在实际开发中探索更多 Streams 功能。