网页文字阅读和java实现阅读

4 篇文章 0 订阅

 自己写代码,通过阅读文字。由于很多文章不必在即眼睛看文字,只听就可以了。

<html>
<head>
<meta charset="UTF-8">
<title>语音测试</title>
<script> 
var speaker = new window.SpeechSynthesisUtterance();
var speakTimer,
    stopTimer;

// 开始朗读
function speakText() {
	var context = document.getElementById('ttsText');
    clearTimeout(speakTimer);
    window.speechSynthesis.cancel();
    speakTimer = setTimeout(function () {
    	speaker.volume = 0.9
        speaker.text = context.innerHTML;
        window.speechSynthesis.speak(speaker);
    }, 200);
}

// 停止朗读
function stopSpeak() {
    clearTimeout(stopTimer);
    clearTimeout(speakTimer);
    stopTimer = setTimeout(function () {
        window.speechSynthesis.cancel();
    }, 20);
}
</script>
</head>
<body>
	<p id="ttsText">2020年的“五一”,注定是一个不平凡的节日。<br>新冠肺炎疫情突如其来,14亿人守望相助,交出全球战“疫”的“中国答卷”。<br>此时,春回大地,万物复苏。疫情的阴霾逐渐散去,田间地头、工厂车间,复工复产正在不断推进……<br>“五一”国际劳动节到来之际,让我们在这个春天,追寻奋斗者的脚步,聆听奋斗者的声音。</p>
	<div>
		<input type="button" id="start_btn" onclick="speakText()" value="播放">
		<input type="button" id="cancel_btn" onclick="stopSpeak()" value="取消">
	</div>
</body>
</html>

如果想在java端实现文字阅读呢?

可以使用jacob工具。

下载后需要将jacob-1.18-M2-x64.dll或者jacob-1.18-M2-x86.dll文件放在jdk的bin路径下。

在工程中引用jar包

<dependency>
     <groupId>com.hynnet</groupId>
     <artifactId>jacob</artifactId>
     <version>1.18</version><!--版本根据dll的版本来-->
</dependency>

测试类如下

public class Test {

    @org.junit.Test
    public void test01() throws InterruptedException {
        while (true) {
            SoundUtils.textToSound("岳阳楼,位于湖南省岳阳市岳阳楼区洞庭北路,地处岳阳古城西门城墙之上,紧靠洞庭湖畔,下瞰洞庭,前望君山;始建于东汉建安二十年(215年),历代屡加重修,现存建筑沿袭清光绪六年(1880年)重建时的形制与格局", 100,3);
        }
    }
}
public class SoundUtils {

    /**
     * 文字转语音
     *
     * @param text 输入文字转为语音
     */
    public static Boolean textToSound(String text) {
        return textToSound(text, 100, 0);
    }

    /**
     * 文字转语音
     *
     * @param text 输入文字转为语音
     */
    public static Boolean textToSound(String text, int volume, int voiceRate) {
        if (volume < 0 || volume > 100) {
            volume = 100;
        }
        try {
            ActiveXComponent ax = new ActiveXComponent("Sapi.SpVoice");
            // 音量 0-100
            ax.setProperty("Volume", new Variant(volume));
            // 语音朗读速度没有限制
            ax.setProperty("Rate", new Variant(voiceRate));
            // 运行时输出语音内容
            Dispatch spVoice = ax.getObject();
            // 执行朗读
            Dispatch.call(spVoice, "Speak", new Variant(text));
            spVoice.safeRelease();
            ax.safeRelease();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
        return false;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值