java文字转语音播报功能的实现方法
前言
本文主要给大家分享了关于java文字转语音播报的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
方法如下
一、pom.xml引入jar包依赖
com.hynnet jacob 1.18
二、把jacob-1.18-x64.dll文件复制到jdk安装位置的bin目录下。
https://files.cnblogs.com/files/w1441639547/jacob-1.18-x64.rar
三、把jacobtest.java类导入至项目中测试运行。
packagecom.Interface.util;
importcom.jacob.activeX.ActiveXComponent;
importcom.jacob.com.Dispatch;
importcom.jacob.com.Variant;
/**
*文字转语音测试jdkbin文件中需要导入jacob-1.17-M2-x64.dll
*
*@authorzk
*@date:2019年6月25日上午10:05:21
*/
publicclassjacobtest{
/**
*语音转文字并播放
*
*@paramtxt
*/
publicstaticvoidtextToSpeech(Stringtext){
ActiveXComponentax=null;
try{
ax=newActiveXComponent("Sapi.SpVoice");
//运行时输出语音内容
DispatchspVoice=ax.getObject();
//音量0-100
ax.setProperty("Volume",newVariant(100));
//语音朗读速度-10到+10
ax.setProperty("Rate",newVariant(-2));
//执行朗读
Dispatch.call(spVoice,"Speak",newVariant(text));
//下面是构建文件流把生成语音文件
ax=newActiveXComponent("Sapi.SpFileStream");
DispatchspFileStream=ax.getObject();
ax=newActiveXComponent("Sapi.SpAudioFormat");
DispatchspAudioFormat=ax.getObject();
//设置音频流格式
Dispatch.put(spAudioFormat,"Type",newVariant(22));
//设置文件输出流格式
Dispatch.putRef(spFileStream,"Format",spAudioFormat);
//调用输出文件流打开方法,创建一个.wav文件
Dispatch.call(spFileStream,"Open",newVariant("./text.wav"),newVariant(3),newVariant(true));
//设置声音对象的音频输出流为输出文件对象
Dispatch.putRef(spVoice,"AudioOutputStream",spFileStream);
//设置音量0到100
Dispatch.put(spVoice,"Volume",newVariant(100));
//设置朗读速度
Dispatch.put(spVoice,"Rate",newVariant(-2));
//开始朗读
Dispatch.call(spVoice,"Speak",newVariant(text));
//关闭输出文件
Dispatch.call(spFileStream,"Close");
Dispatch.putRef(spVoice,"AudioOutputStream",null);
spAudioFormat.safeRelease();
spFileStream.safeRelease();
spVoice.safeRelease();
ax.safeRelease();
}catch(Exceptione){
e.printStackTrace();
}
}
}
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。