Javascript 长文本语音合成问题

Javascript 长文本语音合成问题,javascript,text-to-speech,Javascript,Text To Speech,你好 我的语音合成在说长文本时出现了不一致的问题 我正在尝试用英语和普通话进行文本转换。当我指定outrance.lang='en-US';我发现我的英文文章一直读到写完。然而,当我使用outrance.lang='zh CN';我的英文和中文文本只能读到30个单词。我不知道编码或其他方面是否有问题 该条: 环果桉 环果肠杆菌,通常被称为瓜纳卡斯特、卡罗卡罗或 象耳树,是豌豆科开花树种。 原产于美洲热带地区的豆科植物 墨西哥中部,南至巴西北部(罗莱马)和委内瑞拉。它是 以其巨大的比例和膨胀的球形

你好

我的语音合成在说长文本时出现了不一致的问题

我正在尝试用英语和普通话进行文本转换。当我指定outrance.lang='en-US';我发现我的英文文章一直读到写完。然而,当我使用outrance.lang='zh CN';我的英文和中文文本只能读到30个单词。我不知道编码或其他方面是否有问题

该条:

环果桉

环果肠杆菌,通常被称为瓜纳卡斯特、卡罗卡罗或 象耳树,是豌豆科开花树种。 原产于美洲热带地区的豆科植物 墨西哥中部,南至巴西北部(罗莱马)和委内瑞拉。它是 以其巨大的比例和膨胀的球形冠而闻名, 还有形状奇特的豆荚。这棵树的丰饶, 尤其是在哥斯达黎加的瓜纳卡斯特省,它因 它在强烈的阳光下提供了阴凉的浮雕,再加上 广袤无垠,使它成为一个被广泛认可的物种。它是 哥斯达黎加的国家树种

这是一个好主意。最重要的是每14秒发布一份简历

对于您的代码,这意味着在“发言”之后添加以下内容:


你能分享一下你为制作这期杂志而测试的那篇文章吗?当然可以。我的文章是用php写的。但这是一篇文章“环果肠草,俗称瓜纳卡斯特树、卡罗树或象耳树,是豆科豆科开花树的一种,原产于墨西哥中部南部的美洲热带地区……”我的文章有点太长了。无法将所有内容粘贴到此处。我不知道为什么它只能读到30个字符。@SerraYara-你的问题是30个单词,这个评论是30个字符。我假设这是30个字对吗?对不起。实际上是30个单词。你使用的是什么浏览器/操作系统?大概是狩猎?谢谢!它起作用了。我还有一个小问题。当我把我的语言设置为中文“zn CH”时,它的英语读得很好,但当有一年的时候。为什么它仍然用中文阅读?如果有效,请将其标记为已接受的答案,并将链接为“解决方法”的问题向上投票。声音将尝试用自己的语言阅读,因此当它遇到数字时,没有任何东西阻止它这样做。你可以通过将数字改为其对应的单词来修改它,例如从1改为1,或者今年的“219”。
onload = function() {
    if ('speechSynthesis' in window) with(speechSynthesis) {

        var playEle = document.querySelector('#play');
        var pauseEle = document.querySelector('#pause');
        var stopEle = document.querySelector('#stop');
        var flag = false;

        playEle.addEventListener('click', onClickPlay);
        pauseEle.addEventListener('click', onClickPause);
        stopEle.addEventListener('click', onClickStop);

        function onClickPlay() {
            if(!flag){
                flag = true;
                utterance = new SpeechSynthesisUtterance(document.querySelector('article').textContent);
                utterance.lang = 'zh-CN';
                utterance.onend = function(){
                    flag = false; playEle.className = pauseEle.className = ''; stopEle.className = 'stopped';
                };
                playEle.className = 'played';
                stopEle.className = '';
                speak(utterance);
            }
             if (paused) { /* unpause/resume narration */
                playEle.className = 'played';
                pauseEle.className = '';
                resume();
            } 
        }

        function onClickPause() {
            if(speaking && !paused){ /* pause narration */
                pauseEle.className = 'paused';
                playEle.className = '';
                pause();
            }
        }

        function onClickStop() {
            if(speaking){ /* stop narration */
                /* for safari */
                stopEle.className = 'stopped';
                playEle.className = pauseEle.className = '';
                flag = false;
                cancel();

            }
        }
    }

    else { /* speech synthesis not supported */
        msg = document.createElement('h5');
        msg.textContent = "Detected no support for Speech Synthesis";
        msg.style.textAlign = 'center';
        msg.style.backgroundColor = 'red';
        msg.style.color = 'white';
        msg.style.marginTop = msg.style.marginBottom = 0;
        document.body.insertBefore(msg, document.querySelector('div'));
    }
}
let r = setInterval(() => {
  console.log(speechSynthesis.speaking);
  if (!speechSynthesis.speaking) {
    clearInterval(r);
  } else {
    speechSynthesis.resume();
  }
}, 14000);