HTML、纯JS实现语音播放,实现定时刻播放

使用百度语音广播开放平台—免费生成语音

网址https://developer.baidu.com/vcast

HTML代码

<div id="bdtts_div_id">
    <audio id="tts_audio_id" autoplay="autoplay">
        <source id="tts_source_id" src="daohang.mp3" type="audio/mpeg">
        <embed id="tts_embed_id" height="0" width="0" src="daohang.wav" type="audio/wav">
    </audio>
</div>

JS代码

    function audioPlay(inst) {
        if (inst==-2){setCurEndTimeAndPlay(2.0,3.6)}
        else if (inst==2){setCurEndTimeAndPlay(3.8,5.1)}
        else if (inst==0){setCurEndTimeAndPlay(5.6,6.7)}
        else if (inst==4){setCurEndTimeAndPlay(7.0,9.1)}
        else {setCurEndTimeAndPlay(0.1,1.7)}
    }
    function setCurEndTimeAndPlay(startTime,endTime){
        // 设置当前时间
        ttsAudio.currentTime=startTime;
        // 播放
        ttsAudio.play();
        var pausing_function = function(){
            if(ttsAudio.currentTime >= endTime) {
                ttsAudio.pause();
                // remove the event listener after you paused the playback
                ttsAudio.removeEventListener("timeupdate",pausing_function);
            }
        };

        ttsAudio.addEventListener("timeupdate", pausing_function);
    }
    function stop() {
        ttsAudio.pause();
    }

另外加一个免费的在线文字转语音的JS接口

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>百度地图将文字转化为语音并播放</title>
    <!-- 这里调用的是百度文字转语音开放API -->

</head>
<body>
<div>
    <input type="text" id="ttsText">
    <input type="button" id="tts_btn" onclick="doTTS()" value="播放">
</div>
<div id="bdtts_div_id">
    <audio id="tts_audio_id" autoplay="autoplay">
        <source id="tts_source_id" src="" type="audio/mpeg">
        <embed id="tts_embed_id" height="0" width="0" src="">
    </audio>
</div>
<!--<audio controls="controls" height="100" width="100">
    <source src="song.mp3" type="audio/mp3" />
    <source src="song.ogg" type="audio/ogg" />
    <embed height="100" width="100" src="song.mp3" />
</audio>-->
</body>
<script>
    // var str="你好啊";
    // console.log(typeof str);
    function doTTS(ttsText) {
    var ttsDiv = document.getElementById('bdtts_div_id');
    var ttsAudio = document.getElementById('tts_audio_id');
    var ttsText= document.getElementById('ttsText').value;
    console.log(ttsText);
    // 文字转语音
    ttsDiv.removeChild(ttsAudio);
    var au1 = '<audio id="tts_audio_id" autoplay="autoplay">';
    var sss = '<source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&per=3&spd=5&text=' + ttsText + '" type="audio/mpeg">';
    var eee = '<embed id="tts_embed_id" height="0" width="0" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&per=3&spd=5&text=' + ttsText + '">';
    var au2 = '</audio>';
    ttsDiv.innerHTML = au1 + sss + eee + au2;
    ttsAudio = document.getElementById('tts_audio_id');
    ttsAudio.play();
    }
    /*
    代码中改变传参可更改配置:

    lan=zh(语言zh:中文;en:英文;fr:法文;)

    ie=UTF-8(字符集)

    per=3(每3个字符停顿)

    spd=5(语音播放速度,数字越大越快0-15)

    text=“”(需要转换的文字)*/
/*    var msg = new SpeechSynthesisUtterance("hello everyone");
    console.log(msg);
    window.speechSynthesis.speak(msg);*/

</script>
</html>

大概思路就是这些,如果需要自行加以更改即可使用。
记录一下。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太多.梦想.完成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值