• 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,考到系统盘:WindowsSystem32下面。

    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);
    	}
    	
    
    }
    
  • 相关阅读:
    生成指定规模大小的redis cluster对关系
    根据ip列表模拟输出redis cluster的主从对应关系
    获取redis实例绑定cpu的情况
    通过shell模拟redis-trib.rb info的输出
    又一种获取redis cluster slots分布的小脚本
    第3种方法获取redis cluster主从关系
    Lamada
    Linq笔记
    推荐博文
    SQL server 自带存储过程 sp_rename
  • 原文地址:https://www.cnblogs.com/a1111/p/12816190.html
Copyright © 2020-2023  润新知