var Reader = (function() {
    let reader = window.speechSynthesis;
    let current_position = 0;
    let original_position = 0;
    let to_speak = "";
    let current_rate = 1; // 添加这一行,设置默认速率为 1

    function makeUtterance(str, rate) {
        let msg = new SpeechSynthesisUtterance(str);
        msg.rate = rate;
        msg.lang = "en-US";
        msg.onboundary = ev => {
            if (ev.name === "word") {
                current_position = ev.charIndex;
            }
        }
        return msg;
    }

    function read(s, rate) {
        to_speak = s.toString();
        original_position = 0;
        current_position = 0;
        let msg = makeUtterance(to_speak, rate);
        reader.speak(msg);
    }

    function updateRate(rate) {
        // 停止当前的朗读
        stopRead();

        // 更新当前速率
        current_rate = rate;

        // 重新开始朗读
        read(to_speak, current_rate);
    }

    function stopRead() {
        reader.cancel();
    }

    return {
        read: read,
        stopRead: stopRead,
        updateRate: updateRate // 添加这一行,将 updateRate 方法暴露出去
    };
}) ();