<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 () =&gt; {
  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', () =&gt; {
  textarea.value = '';
  output.innerText = '';
});
</code></pre>
  </script>
</body>
<p>在代码中使用了第三方库text-to-speech-js来计算文本转语音的时间长度,但是没有先引入该库。需要将第三方库的引入放在代码块前面,即将以下代码:</p>
<pre><code class="language-html">&lt;script&gt;
  const textarea = document.querySelector('.textarea');
  const checkBtn = document.querySelector('.check-btn');
  const clearBtn = document.querySelector('.clear-btn');
  const output = document.querySelector('.output');

  //...
&lt;/script&gt;
</code></pre>
<p>改为:</p>
<pre><code class="language-html">&lt;script src='https://cdn.jsdelivr.net/npm/text-to-speech-js/dist/text-to-speech.min.js'&gt;&lt;/script&gt;
&lt;script&gt;
  const textarea = document.querySelector('.textarea');
  const checkBtn = document.querySelector('.check-btn');
  const clearBtn = document.querySelector('.clear-btn');
  const output = document.querySelector('.output');

  //...
&lt;/script&gt;
</code></pre>
JS代码报错:文本转语音时间计算错误

原文地址: https://www.cveoy.top/t/topic/mPao 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录