如何用java实现语音播报?

时间:2024-03-06 11:56:11

1.用Java实现语音播报,分为四步①音响;②调节语速;③调节音量;④执行对象;⑤执行朗读;

package net.yuying;
/**
 * 一个用java代码实现 语音播报示例
 * 
 */

import com.jacob.activeX.ActiveXComponent;//如此处报错,可能是jar的问题  可能要到网上下一个jacob试试
import com.jacob.com.Dispatch;//如此处报错,可能是jar的问题  可能要到网上下一个 jacob试试
import com.jacob.com.Variant;//如此处报错,可能是jar的问题  可能要到网上下一个 jacob试试
import java.io.*;

public class Test1 {

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

        }
    }

    public static void voice() 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();
        }

    }

}

 注意:如果导入前3行错误,应该是jar的问题,可能要到网上下一个 jacob安装可解决!(https://mvnrepository.com/artifact/com.jacob/jacob/1.10)附上下载地址

 

相关文章