java语音播报案例

举报
穆雄雄 发表于 2022/12/17 11:21:50 2022/12/17
【摘要】 ​>大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 在做项目的过程中,我们往往会用到语音播报——把文字转换成语音播放出来,自动识别语言进行播报,那么我们现在来看看怎么操作:1.下载jacob.jar,下载地址:这里     2.32位操作系统下载:jacob-1.17-M2-x32.dll,64位操作系统下载:jacob-1.17-M2-x64.dll,下载地址:这里3.将jacob....

​>大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。

在这里插入图片描述

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

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

}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。