先期准备工作:
安装微软speechsdk51,下载jacob开源组件(以上传)
工具方法:
package com.duduli.li;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class SpeechUtil {
// message 是需要转换的文本信息,volume是声音大小,rate是读取速度。
public void speakMessage(String message, int volume, int rate) {
ActiveXComponent sap = new ActiveXComponent("Sapi.SpVoice");
Dispatch sapo = sap.getObject();
try {
sap.setProperty("Volume", new Variant(volume));
sap.setProperty("Rate", new Variant(rate));
Dispatch.call(sapo, "Speak", new Object[]{message});
} catch (Exception e) {
e.printStackTrace();
} finally {
sapo.safeRelease();
sap.safeRelease();
}
}
}
测试通过即可试用文本读取
package com.duduli.li;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class FileToString {
StringBuilder sb = new StringBuilder();
public void fileToString() throws IOException{
File f=new File("D:\\test.txt");
//可以换成工程目录下的其他文本文件
SpeechUtil speechutil = new SpeechUtil();
/* BufferedReader br = new BufferedReader(new FileReader(f));
String data = br.readLine();//一次读入一行,直到读入null为文件结束
while( data!=null){
speechutil.speakMessage(data, 100, 0);
data = br.readLine(); //接着读下一行
}
br.close();*/
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(f)));
for (String line = br.readLine(); line != null; line = br.readLine()) {
// 100表示读取音量,0表示读取速度(-10,10之间)
speechutil.speakMessage(line, 100, 1);
}
br.close();
}
public static void main(String[] args) throws IOException {
FileToString f = new FileToString();
f.fileToString();
}
}
分享到:
相关推荐
此外,`MyReader`可能还包含了对用户输入的处理,例如从命令行读取文本或者从文件读取,以及可能的错误处理和日志记录。 为了进一步扩展TTS功能,还可以考虑以下方面: - **多语言支持**:根据需要,可以切换不同...
`SpVoice`对象提供了读取文本并将其转化为语音的能力。例如,`Speak`方法可以接受一个字符串参数,然后将其发音出来。以下是一个简单的示例代码: ```java import com.jacob.com.*; public class TextToSpeech { ...
6. **读取并播放文本**:最后,通过调用`Speak`方法读取并播放文本: ```java voice.invoke("Speak", new Variant("这是一段测试文本")); ``` 在提供的`TTSDEMO`压缩包中,可能包含了一个已经实现了以上步骤的...
SpVoice是SAPI中的一个核心对象,它负责读取文本并将其转化为可听见的语音。在Windows系统中,如果没有预装语音播报功能,可能是因为系统版本被精简或阉割,不包含这个组件。要解决这个问题,我们需要手动安装支持...
标题中的"SpeechSDK java 读中文"指的是使用微软Azure的语音服务SDK(Speech Service SDK)在Java平台上实现中文文本到语音(TTS,Text-to-Speech)的功能。这个功能允许开发者将文字转换成自然流畅的语音输出,尤其...
Jacob库利用Java Native Interface(JNI)技术,为Java程序员提供了访问COM组件的能力,从而使得在Java环境中调用Windows系统下的文本转语音引擎变得可能。 Jacob-1.17-M2版本是一个中期发布,相较于早期版本,它...
Java采用Jacob调用SAPI实现合成语音是一种在Java应用程序中集成语音合成技术的常见方法。Jacob(Java COM Bridge)是一个开源库,它为Java开发者提供了一个桥梁,让他们能够使用Microsoft的COM(Component Object ...
18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
这个库包含SpeechSynthesizer类,提供了读取文本并生成语音的功能。 - **设置语音属性**:通过设置Voice属性,可以选择不同的发音人和语音速度;通过SetOutputToWaveFile方法,可以将生成的语音保存为.wav文件。 -...
开发人员可能使用Java或Kotlin(Google推荐的Android开发语言)编写Android客户端应用,利用WebAPI提供的服务来实现图像识别、翻译和语音合成的功能。 - **ASP.NET**:微软的全栈开发框架,用于构建Web应用程序和...
"交流论坛--在一个文件中读写数据 asp操作.htm"讲解了如何使用ASP进行文件I/O操作,这是ASP中非常基础但又重要的技能,包括读取文本文件、写入数据以及更新现有文件内容。 "交流论坛--漫谈Java中的中文问题[转帖]....
修改文本语音转换支持库,增加“机读文本.重新创建并初始化()”方法。 8. 修改应用接口支持库,增强“取快捷方式目标”命令功能,可以获取目标、参数、启始位置、图标、运行方式、快捷键、备注等信息。 9. 修改...