使用java实现语音播报

JAVA语音播报 在Java语言中实现播报功能,通常涉及到文本到语音(Text-to-Speech,简称TTS)的转换。Java自身并不直接提供这样的功能,但你可以使用第三方库或API来实现。 阅读详情

转载:https://blog.youkuaiyun.com/xichengqc/article/details/78709724


准备工作:

下载jar包,链接:https://pan.baidu.com/s/1qXPgCzy 密码:xigv

解压jar包,将jacob.jar复制到工程目录,右键该文件→Build Path→Add to...

将jacob-1.17-M2-x86.dll添加到JDK的bin目录和Windows的system32目录(64位系统添加jacob-1.17-M2-x64.dll)

代码实现如下:

  1. import com.jacob.activeX.ActiveXComponent;
  2. import com.jacob.com.Dispatch;
  3. import com.jacob.com.Variant;
  4. public class Test04 {
  5. public static void main(String[] args) {
  6. ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
  7. try {
  8. // 音量 0-100
  9. sap.setProperty("Volume", new Variant(100));
  10. // 语音朗读速度 -10 到 +10
  11. sap.setProperty("Rate", new Variant(-2));
  12. // 获取执行对象
  13. Dispatch sapo = sap.getObject();
  14. // 执行朗读
  15. Dispatch.call(sapo, "Speak", new Variant("你好,很高兴见到你。"));
  16. // 关闭执行对象
  17. sapo.safeRelease();
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. } finally {
  21. // 关闭应用程序连接
  22. sap.safeRelease();
  23. }
  24. }
  25. }
进一步,我们可以朗读文件内容,代码实现如下:
  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. import com.jacob.activeX.ActiveXComponent;
  6. import com.jacob.com.Dispatch;
  7. import com.jacob.com.Variant;
  8. public class Test05 {
  9. public static void main(String[] args) throws IOException {
  10. ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
  11. //输入文件
  12. File srcFile = new File("E:/tmp/testvoice.txt");
  13. //使用包装字符流读取文件
  14. BufferedReader br = new BufferedReader(new FileReader(srcFile));
  15. String content = br.readLine();
  16. try {
  17. // 音量 0-100
  18. sap.setProperty("Volume", new Variant(100));
  19. // 语音朗读速度 -10 到 +10
  20. sap.setProperty("Rate", new Variant(-2));
  21. // 获取执行对象
  22. Dispatch sapo = sap.getObject();
  23. // 执行朗读
  24. while (content != null) {
  25. Dispatch.call(sapo, "Speak", new Variant(content));
  26. content = br.readLine();
  27. }
  28. // 关闭执行对象
  29. sapo.safeRelease();
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. } finally {
  33. br.close();
  34. // 关闭应用程序连接
  35. sap.safeRelease();
  36. }
  37. }
  38. }

代码分析:具体代码实现如上,代码内容本人也不理解,后续会加更代码解释;如果文件读取过程中出现错误,请检查文件编码格式,默认读取的是UTF-8的文本内容
Java播放本地声音,实现系统报警 Java播放本地声音,我实现的是系统报警,把声音文件放在了D盘,只要改一下代码中的路径就好了,播放本地机器的声音都可以,但必须是wav格式的哦 立即下载

相关推荐

MaryTTS_demo

MaryTTS_demo 开源库使用java进行语音合成的使用案例

JAVA 实现语音播报

转载:https://blog.youkuaiyun.com/xichengqc/article/details/78709724 或 https://pan.baidu.com/s/1Fd5d3dvJ8IGeqxuU-vcN3Q   准备工作: 下载jar包,链接:https://pan.baidu.com/s/1qXPgCzy 密码:xigv 解压jar包,将jacob.jar复制到工程目录,右键...

时光与召的博客 8086

java调用window操作系统文本转语音并生成播放文件

java调用window操作系统文本转语音并生成播放文件

海康车牌识别一体机语音播报、led显示(java版)

LED显示和语音播报需要用到命令穿透、直接调接口不好实现、返回状态是成功实际没有相应, 穿透命令的接口路径特别坑,路径中间必须加一个空格, 不加空格一直提示参数有误 调用示例: //PUT后边必须带空格、要不然会失败(特别坑的是海康的文档里也不说明) //语音播报 //参数说明: 穿透命令接口路径,车牌识别机IP, 要发送的语音内容 yyXMLConfig("PUT /ISAPI/Parking/channels/1/voiceBroadcastInfo", ip,yybb); //L..

許先生的博客 5732

Java中使用Jacob实现Windows下语音合成并生成音频文件示例代码.rar

Java中使用Jacob实现Windows下语音合成并生成音频文件示例代码.rar

SPSS实战:5步搞定多指标联合诊断的ROC曲线分析(附Logistic回归教程)

本文详细介绍了如何使用SPSS软件进行多指标联合诊断的ROC曲线分析。通过5个实战步骤,从数据准备、二元Logistic回归建模生成综合预测概率,到绘制并比较单指标与联合模型的ROC曲线,帮助临床研究者有效整合多个诊断指标,提升模型判别能力(AUC),实现诊断效能的优化。

mqtt6iot的博客 1422

Java实现文字转语音(TTS)和指定路径播放音频文件

背景 使用Java实现:输入文本或指定播放文件路径,实现循环播放、停止、放入多个播放队列依次播放;这里我使用的是Springboot。 实现步骤: 1、Java要实现语音,需要引入文件jacob-1.18-x64.dll到jdk安装目录的bin目录下,文件下载地址,下载后记得解压: 链接:https://pan.baidu.com/s/1mRT0r-KF8o1Q56a_HgLQ-Q 提取...

dinghongyu520的博客 8889

科研绘图神器Origin中文版安装后还是英文?手把手教你三步搞定界面汉化

本文详细介绍了Origin软件安装后界面仍显示英文的解决方案,包括基础语言切换、注册表修改和序列号破解三种方法。通过逐步指导,帮助用户快速实现界面汉化,提升科研绘图效率。特别针对教育版用户提供了有效的语言锁定解除方案。

weixin_42524708的博客 1141

java - 网络编程TCP/IP

概述 TCP:类似于打电话这种,接通后双方开始通话。 UDP:类似于发短信这种,一方发送一方接收。 计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络编程的目的 传播交流信息,数据交换,通信。 网络编程中方的主要问题 如何准确定位到网络上的一台或多台主机 找到主机之后如何通信 网络通信的要素 IP和端口号 网络通信协议 TCP/IP参考模型 IP

猪老三的碎碎念 604

SOLIDWORKS转CAD字体终极选择:TrueType vs SHX,哪个才是你图纸协作的“安全牌”?

本文深入探讨SOLIDWORKS转CAD工程图中的字体选择问题,对比TrueType与SHX字体在DWG文件协作中的表现。通过真实案例揭示字体映射的兼容性陷阱,提供企业级字体管理方案,帮助工程师规避版本差异、系统依赖和法律风险,确保图纸协作的稳定性。

weixin_34233974的博客 266

YOLOv9改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制

这篇文章带来一个经典注意力模块的汇总,虽然有些模块已经发布很久了,但后续的注意力模块也都是在此基础之上进行改进的,对于初学者来说还是有必要去学习了解一下,以加深对模块,模型的理解。

Limiiiing的博客 2894

java监听某端口和ip_Java 通过Socket监听指定服务器(IP)的指定端口,及向指定服务器的指定端口发送信息...

客户端:向指定端口发送信息package com.jszc.lottery.modules.longpay.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;i...

weixin_42171132的博客 3332

windows 10 等保3级配置核查与加固(附自动化加固脚本)

关闭注册表编辑器,然后重新启动计算机。\\r\\n 对于OPC通讯站(server\\\\client),【密码最长存留期】需要设置为0,即密码不过期。‌445端口‌:修改注册表禁用。打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略\\\\计算机配置\\\\Windows设置\\\\安全设置\\\\本地策略\\\\安全选项”,在右边窗格中找到“Microsoft网络客户端:将未加密的密码发送到第三方SMB服务器”,双击,配置为“已禁用”,确定。

悦分享 160

使用Java实现语音播报+jacob使用

遇到一个需求,当界面刚加载时,播报异常报警信息。记录一下SpringBoot+vue2语音播报功能的实现。环境需要的一种语言文件:jacob-1.18-x64.dll文件:链接:https://pan.baidu.com/s/1ET0pmOYyVQDubWfWM2_GbQ提取码:ae86抛砖引玉记录自己的解决过的问题,如有见解评论区讨论。

weixin_49279142的博客 1606

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

WW、forever的博客 555

【ESP32设备通信】-LoRa通信

在本文中,我们将使用 Arduino IDE 将 ESP32 与 LoRa SX1278 (Ra-02) 模块连接起来。 我们将创建一个真实的示例项目,通过 LoRa 无线打开/关闭 LED 进行演示。

视觉与物联智能 1891

【JAVA语音播报】使用Jacob.jar包实现TTS

微软自带TTS(Text To Speech) 语音引擎,可以将文本转换成语音。现在通过Java程序(jacob包),利用Windows自带的TTS实现语言的播报。请注意,JACOB是一个针对Windows平台的库,因此它只能在Windows上运行。

J_R___的博客 1349

系统架构设计(以飞控系统、航电系统、机电管理系统、电子电气架构为例)

系统架构涉及对系统的结构和行为进行高层次的描述。它包括系统的组成部分、这些部分之间的关系、与外部环境的交互方式,以及满足特定功能和非功能性需求的方法。系统架构定义了系统的总体设计蓝图,指导系统的开发、集成、部署和维护。系统架构设计的目的是通过合理的结构和设计原则,确保系统能够高效、稳定、安全地运行,满足当前和未来的需求,同时具备良好的维护性、扩展性和可持续性。良好的系统架构不仅能够提高系统的开发效率和运行性能,还能降低长期的维护和运营成本,支持系统的持续演进和技术更新。

qq_41854911的博客 3056

java 调用 tts,Android使用系统SystemTTS简单实现语音播报

/*** 系统播报类,部分手机不支持中文播报*/@SuppressLint("NewApi")public class SystemTTS extends UtteranceProgressListener implements TTS, OnUtteranceCompletedListener {private Context mContext;private static SystemTTS ...

weixin_30280259的博客 499

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

如何用Java语言实现远程语音播报

如何用Java语言实现远程语音播报呢? 本文描述了使用Java语言调用HTTP接口,实现远程语音播报,通过发送文本信息,来实现远程语音播报、语音提醒、语音警报等。下面以每款产品为例,用Java语言编程实现远程语音播报:远程语音播报、语音提醒、语音通知、语音警报; 广泛应用于各种线下服务的订单提醒、线下流程的语音提醒等; 无需上传录音、无需后台设置; 直接通过HTTP接口推送文本,即可实时远程语音播报; 真人发声、语调自然柔和,支持男、女音色; 双发声单元、音量大; 支持远程音量、音色、语调、语速设置; 支

tyanzhiqi的专栏 940

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

功能案例----java实现语音播报功能

功能案例----java实现语音播报功能 根据自己最近的写的项目,总结整理了关于java语音播报功能的方法,可分为两种形式 一种是通过自己写出一个语音播报方法的工具类,然后从前端获取文本数据,最后跳到控制层进行语音播报方法的调用,但是这种方式需要外部导入jacob这个jar包以及dll文件的位置设置,主要是通过java工具类来实现;(但是这种导入Jacob包的方法只适合在window的开发环境使用,因为里面的dll文件只支持在Windows环境下的com组件运行,而Linux系统不适用) 另一种就是通过

weixin_38359768的博客 7059

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

怎样用Java语言实现语音播报

怎样用Java语言实现语音播报呢?本文描述了使用Java语言调用HTTP接口,实现语音播报,。

tyanzhiqi的专栏 964

Java实现语音播报功能

今天开发用到语音播报功能,在网上找到资料实现了此功能,写博客记录一下。 本人用的开发环境:IDEA 2019 准备工作下载对应的依赖包:jacob.jar 下载链接: https://pan.baidu.com/s/1qXPgCzy 密码 xigv 解压下载的jar包,复制 jacob.jar 到项目的 lib 目录下,右键 add as libraries 添加为依赖 将 jacob-1.17-M2-x86.dll(32位系统)/ jacob-1.17-M2-x64.dll(64位系统)添加到 JD

weixin_44001878的博客 1594

怎样通过Java语言实现TTS语音播报

怎样通过Java语言实现TTS语音播报呢?本文描述了使用Java语言调用HTTP接口,实现TTS语音播报,。

tyanzhiqi的专栏 1320

怎样通过Java语言实现自动语音播报设备

怎样通过Java语言实现自动语音播报设备呢?本文描述了使用Java语言调用HTTP接口,实现自动语音播报设备,。

tyanzhiqi的专栏 643
上一篇: java生成验证码,且前台进行调用展示
下一篇: spring websocket 教程,spring websocket 实现聊天室功能
Yuwen_forJava
博客等级 码龄9年 28粉丝 90原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值