js 实现浏览器文字转语音播放并且自动下载音频文件

js 实现文字转语音播放并且自动下载音频文件

js 实现浏览器文字转语音播放并且自动下载音频文件

今天我们来分享一个好的文字转语音接口,百度语音接口

接口地址:http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=你要转换的文字

参数介绍:

lan=zh:语言是中文,如果改为lan=en,则语言是英文。

ie=UTF-8:文字格式。

spd=2:语速,可以是1-9的数字,数字越大,语速越快。

text=**:这个就是你要转换的文字。

下面是示例,调用filesaver直接下载,非常方便,可直接在线

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>BFW NEW PAGE</title>
    <script id="bfwone" data="dep=jquery.17&err=0" type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/bfwone.js"></script>
    <script type="text/javascript">

        function sayit() {
            var val = document.getElementById("val").value;
            var zhText = val;
            zhText = encodeURI(zhText);
            document.getElementById("audio").src = "//tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=4&text="+ zhText;
        }
        var downloadAudio = function() {
            var val = document.getElementById("val").value;
            var zhText = val;
            zhText = encodeURI(zhText);
            loadAduioToBlob("//tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=4&text="+ zhText, function(blobFile) {
                if (!blobFile) return false;
                document.getElementById("audio").src = window.URL.createObjectURL(blobFile);
                //生成二进制流
                use(['FileSaver.min'], function() {
                    saveAs(blobFile, val+".mp3");
                });
            });
        };
        var loadAduioToBlob = function(url, callback) {
            if (!url || !callback) return false;
            var xhr = new XMLHttpRequest();
            xhr.open('get', url, true);
            xhr.responseType = 'blob';
            xhr.onload = function() {
                // 注意这里的this.response 是一个blob对象 就是文件对象
                callback(this.status == 200 ? this.response: false);
            }
            xhr.send();
            return true;
        };

       bready(function() {
            $("#sayit").click(function() {
                sayit();
            })
            $("#downit").click(function() {
                downloadAudio();
            })
        })

    </script>
</head>
<body>
    <form action="" method="post">
        <textarea id='val' style="width:100%;height:200px;"></textarea>
        <input type="button" value="文字转语音 " id="sayit">
        <input type="button" value="文字转语音下载" id="downit">
    </form>
    <audio src="" id="audio" preload="auto" autoplay="true"></audio>
    <div id="result"></div>
</body>
</html>

{{collectdata}}

网友评论0