一、准备工作

1、因为调用的是windows64的自带的语音系统,所以我们需要下载语音驱动,一个以dll结尾的文件,
文件放到网盘里了
链接:https://pan.baidu.com/s/1KCNSjRwXvP3jkPTj07UkUQ
提取码:81bh

文件放置位置可以有两个地方:
地方一:计算机上的安装的jdk下的bin目录下

地方二:c盘下的windows下的system

在这里我推荐是放到地方二,放到地方一的话,当你打一个war包的时候,通过tomcat启动,可能本地的tomcat用的并不是你配置的jdk,就要再次重新配置这个dll文件,放到地方二则不用再次配置

2、导入所需的依赖

     <dependency><groupId>com.hynnet</groupId><artifactId>jacob</artifactId><version>1.18</version></dependency>

二、具体代码实现

package com.huayun.common.utils;import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComFailException;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import org.apache.log4j.Logger;/*** @Author: lh* @Date: 2022-04-16 10:55*/
public class VoicePlayUtil {private static Logger logger = Logger.getLogger(VoicePlayUtil.class);/*** 语音转文字并播放** @param text 要播放的文字* @throws Exception 异常捕捉*/public static void textToSpeech(String text) {ActiveXComponent ax = null;try {ax = new ActiveXComponent("Sapi.SpVoice");// 运行时输出语音内容Dispatch spVoice = ax.getObject();// 音量 0-100ax.setProperty("Volume", new Variant(100));// 语音朗读速度 -10 到 +10(-10语速最慢,10语速最快)ax.setProperty("Rate", new Variant(1));/*  执行朗读,默认调用系统中的TTS语音播放引擎,若本机没有语音设备可能会抛出异常(com.jacob.com.ComFailException: Invoke of: Speak) */logger.info("开始语音播报");Dispatch.call(spVoice, "Speak", new Variant(text));logger.info("语音播报完成");// 下面是构建文件流生成语音文件ax = new ActiveXComponent("Sapi.SpFileStream");Dispatch spFileStream = ax.getObject();ax = new ActiveXComponent("Sapi.SpAudioFormat");Dispatch spAudioFormat = ax.getObject();// 设置音频流格式Dispatch.put(spAudioFormat, "Type", new Variant(22));// 设置文件输出流格式Dispatch.putRef(spFileStream, "Format", spAudioFormat);// 调用输出 文件流打开方法,创建一个.wav文件Dispatch.call(spFileStream, "Open", new Variant("./warn.wav"),new Variant(3), new Variant(true));// 设置声音对象的音频输出流为输出文件对象Dispatch.putRef(spVoice, "AudioOutputStream", spFileStream);// 设置音量 0到100Dispatch.put(spVoice, "Volume", new Variant(100));// 设置朗读速度Dispatch.put(spVoice, "Rate", new Variant(-2));// 开始朗读Dispatch.call(spVoice, "Speak", new Variant(text));// 关闭输出文件Dispatch.call(spFileStream, "Close");Dispatch.putRef(spVoice, "AudioOutputStream", null);spAudioFormat.safeRelease();spFileStream.safeRelease();spVoice.safeRelease();ax.safeRelease();} catch (ComFailException e) {e.printStackTrace();logger.error("没有可用的音频,请连接外接设备(耳机或音箱播放)");} catch (Exception e) {e.printStackTrace();logger.error("语音播放错误:" + e.getMessage());}}}

Java实现在windows系统下文字转语音并播报相关推荐

  1. Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行——怎么将Unix/Mac系统下的文件转换到Windows系统下

    先交代一下遇到的问题: 本人用的是Windows系统.在学习Triangle Mesh时,想将bunny.ply等经典的PLY文件导入程序中. 但是,文件被读入程序后,所有的内容变成了一行.从而,现成 ...

  2. 在Windows系统下如何将桌面图标下的文字隐藏

    在Windows系统下如何将桌面图标下的文字隐藏 第一步:你需要一台电脑(Windows系统的电脑哈!原谅我放屁哈!) 进入正题: 首先,win+R键打开运行窗口,输入"charmap&qu ...

  3. 【辅助驾驶】Python在Windows系统下实现TTS(文字转语音)

    一.目的 python语言,在Windows系统下实现语音转文字. 二.代码 通过win32com调用的windows的SAPI,所以本脚本只适应于windows平台 #coding:utf-8 im ...

  4. Java windows系统下JDK开发环境配置和环境变量配置

    一.JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.Ecli ...

  5. windows系统下jenkins环境搭建与基本使用

    一. windows 系统下搭建jenkins环境 1.1 jenkins环境搭建和构建job流程图 1.2 安装jdk JDK下载地址:  http://www.oracle.com/technet ...

  6. windows系统下安装JDK8的教程图解

    这篇文章主要介绍了windows系统下安装JDK8的教程图解,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下 一.下载: http://www.oracle.com/technetw ...

  7. Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略

    Windows系统下使用protobuf:protobuf的简介.安装.使用方法之详细攻略 目录 protobuf的简介 protobuf的安装 protobuf的使用方法 protobuf的简介 P ...

  8. Weblogic 10.3.5在64位Windows系统下的安装和配置

    2011-08-23 Weblogic 10.3.5在64位Windows系统下的安装和配置 作者: BeanSoft 日期: 2011-8-23 今天, 笔者将向大家介绍Oracle Weblogi ...

  9. 解决qt5在windows系统下中文乱码的问题的简单方法

    解决qt5在windows系统下中文乱码的问题的简单方法 解决方法 以utf-8格式为代表进行修改. 首先,确定自己需要的文字编码格式,并在qt的项目-编辑器里面定义 接下来,选择出现乱码的文件里面的 ...

最新文章

  1. linux简单目录,Linux下各目录简单整理
  2. Spring JdbcTemplate方法详解
  3. 在Silverlight中绘制贝塞尔曲线
  4. 记一次T-SQL查询优化 索引的重要性
  5. 【iOS】Quartz2D图片剪切
  6. jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国
  7. 嵌入式linux面试题解析(四)——逻辑推理一
  8. “云时代架构”经典文章阅读感想八
  9. [导入]基于Spring+zk的WebDisk系统研究.pdf(462.84 KB)
  10. Silverlight实现强壮、可复用的拖放行为
  11. LIstView和TreeView相关联
  12. oracle分析函数汇总
  13. 恒力弹簧设计及寿命预测
  14. 传智播客黑马程序员之JAVA基础深入浅出精华版
  15. MATLAB快速排序算法
  16. BMC远程管理服务器
  17. matlab几何形状面积计算,小学数学几何图形计算公式总结
  18. 软件测试中的正交缺陷分析总结,正交缺陷分类(ODC)流程简介及应用经验分享(上)...
  19. 【PTA】斐波那契数列第n项
  20. C/C++的左值和右值

热门文章

  1. 高空抛物检测方案设计(使用SOM进行轨迹分类)
  2. WebVR简介和常用资源链接
  3. day08作业---函数
  4. excel求指数最大回撤
  5. 无人驾驶出租车实行免费制是天上掉馅饼?No, 天下一定没有免费的午餐
  6. 要成为一个牛逼程序猿,你要勇于尝试这10种姿势
  7. 《计算机世界》抛出了‘板砖’;引出了业界的‘美玉’
  8. android ios av tv,iOS AVPlayerItem
  9. 2021年度“中国存储市场影响力排行榜”榜单揭晓
  10. 指定程序使用独立显卡