【发布时间】:2019-08-27 03:32:28
【问题描述】:
美好的一天。
我在朗读长文本时遇到了语音合成不一致的问题。
我正在尝试用英语和普通话进行文字转语音。当我指定 utterance.lang = 'en-US';我发现我的英文文章一直读到读完。但是,当我使用 utterance.lang = 'zh-CN';我的英文和普通话只能读到30个字。不知道是不是编码有问题还是什么的。
文章:
E.仙人掌
Enterolobium cyclocarpum,俗称guanacaste、caro caro,或 象耳树,是豌豆科开花乔木的一种。 豆科植物原产于美洲热带地区, 墨西哥中部南至巴西北部(罗赖马)和委内瑞拉。这是 以其大比例、宽大的、通常为球形的冠部而闻名, 以及它形状奇特的种荚。这棵树的丰盈, 尤其是在哥斯达黎加瓜纳卡斯特省 它从强烈的阳光中提供了阴凉的缓解,再加上它的 广袤无垠,使其成为广为人知的物种。它是 哥斯达黎加的国树。
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'));
}
}
【问题讨论】:
-
您能否分享您正在测试以产生此问题的文章?
-
当然。我的文章在 php.ini 中。但这是文章“Enterolobium cyclocarpum,俗称guanacaste、caro caro或象耳树,是豆科豆科开花树的一种,原产于美洲热带地区,来自墨西哥中部南部...”我的文章有点太长了。无法在此处粘贴所有内容。我不知道为什么它只能读出 30 个字符。
-
@SerraYara - 您的问题包含 30 个单词,而此评论包含 30 个字符。我假设它是 30 个字是正确的吗?
-
对不起。实际上是 30 个字。
-
您使用的是什么浏览器/操作系统?大概是 Safari?