`

【java】调用微软语音系统读取文本

    博客分类:
  • java
 
阅读更多
先期准备工作:
    安装微软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();
	}
}
分享到:
评论
4 楼 duduli 2015-01-14  
raosenlin1223 写道
您知道这个调用jacob时,如果返回一个语音流吗

不知道。  但是你可以使用讯飞语音进行处理。他会生成一个pcm文件。 然后你封装成wav格式进行播放就可以了。
3 楼 raosenlin1223 2015-01-09  
您知道这个调用jacob时,如果返回一个语音流吗
2 楼 duduli 2014-08-08  
56526925 写道
你知道这个怎么设置语音库吗


这个不需要设置语音库,微软使用合成语音的。
1 楼 56526925 2014-07-26  
你知道这个怎么设置语音库吗

相关推荐

    java语音朗读实例。TTS调用实例

    此外,`MyReader`可能还包含了对用户输入的处理,例如从命令行读取文本或者从文件读取,以及可能的错误处理和日志记录。 为了进一步扩展TTS功能,还可以考虑以下方面: - **多语言支持**:根据需要,可以切换不同...

    Jacob实现文字转换语音

    `SpVoice`对象提供了读取文本并将其转化为语音的能力。例如,`Speak`方法可以接受一个字符串参数,然后将其发音出来。以下是一个简单的示例代码: ```java import com.jacob.com.*; public class TextToSpeech { ...

    java实现TTS程序

    6. **读取并播放文本**:最后,通过调用`Speak`方法读取并播放文本: ```java voice.invoke("Speak", new Variant("这是一段测试文本")); ``` 在提供的`TTSDEMO`压缩包中,可能包含了一个已经实现了以上步骤的...

    解决电脑无语音播报问题.zip

    SpVoice是SAPI中的一个核心对象,它负责读取文本并将其转化为可听见的语音。在Windows系统中,如果没有预装语音播报功能,可能是因为系统版本被精简或阉割,不包含这个组件。要解决这个问题,我们需要手动安装支持...

    SpeechSDK java 读中文

    标题中的"SpeechSDK java 读中文"指的是使用微软Azure的语音服务SDK(Speech Service SDK)在Java平台上实现中文文本到语音(TTS,Text-to-Speech)的功能。这个功能允许开发者将文字转换成自然流畅的语音输出,尤其...

    jacob-1.17-M2

    Jacob库利用Java Native Interface(JNI)技术,为Java程序员提供了访问COM组件的能力,从而使得在Java环境中调用Windows系统下的文本转语音引擎变得可能。 Jacob-1.17-M2版本是一个中期发布,相较于早期版本,它...

    jacob-1.19.zip

    Java采用Jacob调用SAPI实现合成语音是一种在Java应用程序中集成语音合成技术的常见方法。Jacob(Java COM Bridge)是一个开源库,它为Java开发者提供了一个桥梁,让他们能够使用Microsoft的COM(Component Object ...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    Demo_C#_DEMO_

    这个库包含SpeechSynthesizer类,提供了读取文本并生成语音的功能。 - **设置语音属性**:通过设置Voice属性,可以选择不同的发音人和语音速度;通过SetOutputToWaveFile方法,可以将生成的语音保存为.wav文件。 -...

    图像识别,翻译和语音合成-3合1 Web API

    开发人员可能使用Java或Kotlin(Google推荐的Android开发语言)编写Android客户端应用,利用WebAPI提供的服务来实现图像识别、翻译和语音合成的功能。 - **ASP.NET**:微软的全栈开发框架,用于构建Web应用程序和...

    ASP学习资料(HTML格式)

    "交流论坛--在一个文件中读写数据 asp操作.htm"讲解了如何使用ASP进行文件I/O操作,这是ASP中非常基础但又重要的技能,包括读取文本文件、写入数据以及更新现有文件内容。 "交流论坛--漫谈Java中的中文问题[转帖]....

    易语言程序免安装版下载

    修改文本语音转换支持库,增加“机读文本.重新创建并初始化()”方法。 8. 修改应用接口支持库,增强“取快捷方式目标”命令功能,可以获取目标、参数、启始位置、图标、运行方式、快捷键、备注等信息。 9. 修改...

Global site tag (gtag.js) - Google Analytics