JS代码报错:文本转语音时间计算错误
<body>
<h1>汉字检测器</h1>
<div class='input-box'>
<textarea class='textarea' placeholder='请输入需要检测的汉字'></textarea>
<div class='btn-wrap'>
<button class='btn check-btn'>检测</button>
<button class='btn clear-btn'>清空</button>
</div>
</div>
<div class='output'></div>
<script src='https://cdn.jsdelivr.net/npm/text-to-speech-js/dist/text-to-speech.min.js'></script>
<script>
const textarea = document.querySelector('.textarea');
const checkBtn = document.querySelector('.check-btn');
const clearBtn = document.querySelector('.clear-btn');
const output = document.querySelector('.output');
<pre><code>checkBtn.addEventListener('click', async () => {
const content = textarea.value.trim();
const reg = /[一-龥]/g;
const result = (content.match(reg) || []).length;
output.innerText = `输入的文本中共包含 ${result} 个汉字`;
// 计算时间长度
const options = {
rate: 0.8, // 语速
text: content,
};
const speech = new TextToSpeechJS();
const { duration } = await speech.getDuration(options);
const time = duration.toFixed(2);
output.innerText += `
</code></pre>
<p>如果配音,大概需要 ${time} 分钟`;
});</p>
<pre><code>clearBtn.addEventListener('click', () => {
textarea.value = '';
output.innerText = '';
});
</code></pre>
</script>
</body>
<p>在代码中使用了第三方库text-to-speech-js来计算文本转语音的时间长度,但是没有先引入该库。需要将第三方库的引入放在代码块前面,即将以下代码:</p>
<pre><code class="language-html"><script>
const textarea = document.querySelector('.textarea');
const checkBtn = document.querySelector('.check-btn');
const clearBtn = document.querySelector('.clear-btn');
const output = document.querySelector('.output');
//...
</script>
</code></pre>
<p>改为:</p>
<pre><code class="language-html"><script src='https://cdn.jsdelivr.net/npm/text-to-speech-js/dist/text-to-speech.min.js'></script>
<script>
const textarea = document.querySelector('.textarea');
const checkBtn = document.querySelector('.check-btn');
const clearBtn = document.querySelector('.clear-btn');
const output = document.querySelector('.output');
//...
</script>
</code></pre>
原文地址: https://www.cveoy.top/t/topic/mPao 著作权归作者所有。请勿转载和采集!