xj584201 发表于 2019-3-29 15:45

分享一个用java代码实现 语音播报的源码

package com.xj;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import java.io.*;

/*

1 音响
2 调节语速
3 调节音量
4 执行对象
5 执行朗读

*/
public class VioceTest {
         // 程序入口
    public static void main(String[] args) {
      try {
            voice();
      } catch (IOException e) {

      }
    }
    publicstaticvoidvoice() throws IOException {
      //拿到音响
      ActiveXComponent sap = new ActiveXComponent("sapi.SpVoice");
      //找到本地要朗读的文件
      try {
      File srcFile = new File("E:/b.txt");
            //获取文本文档的内容
            FileReader flie = new FileReader(srcFile);

            //从缓存区拿到数据
            BufferedReader bf = new BufferedReader(flie);

            //拿到缓冲区的数据
            String content=bf.readLine();
         // 测试一下 有没有拿到数据
            System.out.println(content);

            //调节语速 音量大小
            sap.setProperty("Volume",new Variant(100));
            sap.setProperty("Rate",new Variant(0));

         
            Dispatch xj = sap.getObject();
            //执行朗读没有读完就继续读
            while (content!=null){
                Dispatch.call(xj,"Speak",new Variant(content));
            }
            
            xj.safeRelease();
            bf.close();
      } catch (FileNotFoundException e) {
            e.printStackTrace();
            sap.safeRelease();
      }

    }

}

大山GZ 发表于 2019-4-19 11:50

Deeplylovel 发表于 2019-3-30 20:57
哥哥你那前三行怎么搞到的...导入报错啊

要去找到相关的jar包,在src下创建一个lib目录,将jar包复制到lib目录下,右键build path 就不会报错了

Deeplylovel 发表于 2019-3-30 20:57

哥哥你那前三行怎么搞到的...导入报错啊

xj584201 发表于 2019-4-2 13:43

可能是jar的问题你去网上下一个 jacob试试

xj584201 发表于 2019-4-5 15:47

Deeplylovel 发表于 2019-3-30 20:57
哥哥你那前三行怎么搞到的...导入报错啊


可能是jar的问题你去网上下一个 jacob试试

童子tz 发表于 2019-5-11 18:56

java初级结束了
页: [1]
查看完整版本: 分享一个用java代码实现 语音播报的源码