javascript - 文本转语音库(暂停问题)

标签 javascript text-to-speech google-text-to-speech

我在互联网上进行了大量的窥探。

现在我正在使用 ResponsiveVoice 库,每月支付约 25 美元。 https://code.responsivevoice.org/responsivevoice.js

问题在于它似乎在文本中插入了长中断。文本是用户生成的,因此它超出了我的控制范围(我无法优化句子结构以使其听起来不错)。

我假设这是 ResponsieVoice 的问题。他们承认了这个问题,但表示他们对此无能为力。这就是文本到语音的行为方式。

以下是一些导致问题的文本示例(插入暂停)。

  • 采取跨文化方法的心理学家可能会考虑 以下哪一个|暂停|会产生影响?
  • 以下谁最先使用科学研究方法进行调查 react |暂停|次?
  • 一种研究思维过程和|暂停|头脑的方法
  • self 间接并无意识地|暂停|使用防御机制。

我不确定文本转语音是否必须插入随机停顿,这些网站似乎能够处理文本转语音而没有“奇怪”的停顿。

我无法插入他们的链接...因为我的声誉很差。

  • 自然读者
  • 阿卡佩拉盒子
  • 奇怪的节目
  • ttsreader
  • 伊沃纳
  • ispeech

这也可能是一个实现问题,但 ResponsiveVoice 支持人员表示,出现这些长时间的停顿是正常的。

这是控制台的屏幕截图,其中显示了导致暂停的“中断”。

screenshot of console in chrome

如果能从你们(他们更了解这项技术)那里获得一些见解,那就太好了。

最佳答案

我遇到了完全相同的问题,并在我的案例中找到了原因。在我们的网站上,要读出的文本是由 jQuery 生成的,如下所示:

$('#text-to-read').text().trim().replace(/(?:\r\n|\r|\n)/g, '');

最后的正则表达式实际上创建了制表符和空格。我只需调整正则表达式:

$('#text-to-read').text().trim().replace(/\s\s+/g, ' ');

我知道这可能是一个非常罕见的原因,但它可能会帮助其他人!

关于javascript - 文本转语音库(暂停问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795103/

相关文章:

android - 有没有办法将 Google TTS 用作外部库?

javascript - 带有专用网络 worker 的 BreezeJs

javascript - 丑化定义未定义

javascript - 即使音频上下文处于运行状态,音频元素的播放 promise 也会被拒绝

iPhone 语音转文本和返回语音 API

google-text-to-speech - 不同的 <prosody> ssml 值在 Google Text to Speech 中生成相同的音频

javascript - 超时淡入淡出时div闪烁

Android TTS - ACTION_CHECK_TTS_DATA 默认引擎

Android - TTS 没有声音出来

android - Chrome TTS、Google TTS、Cloud Speech API 和 Android TTS 之间有什么区别?