【问题标题】:What is the most reliable TTS (Text-to-Speech) engine to use when developing for Android?在为 Android 开发时,最可靠的 TTS(文本到语音)引擎是什么?
【发布时间】:2016-09-29 18:50:03
【问题描述】:

我们公司正在为盲人开发一款功能齐全的应用程序,这意味着它在很大程度上依赖于文本转语音 (TTS)。我们注意到 TTS 语音只是随机停止说话。它通常工作正常,我们在语音方面没有问题,但是一旦在蓝月亮中,我们就没有语音输出,应用程序也不知道其他情况,所以它继续像往常一样工作,但没有任何声音。用户在大多数情况下仍然可以使用该应用,但在重新启动应用并重置所有内容之前,他们将不再听到语音。

是否有可靠的方法可以知道声音是否无法说出某些内容?

我已经使用了一个完整的语音侦听器来处理某些场景,但当 TTS 根本不输出语音时,这并没有什么区别。就好像那个声音“认为”了它说的那样,但我们从未听到它。

当 TTS 引擎试图说些什么但失败时,我们是否可以捕获一个事件?

【问题讨论】:

  • Danieboy,发布 IVONA TTS 的链接不是我要的。我不是要求推荐的语音引擎(我们过去已经使用过并确定它不适用于我们的使用)。我正在寻求一种方法来判断应该说的短语是否失败。
  • 谁否决了我的问题,出于什么原因?
  • 不是我,但我想这不是一个足够具体的问题。没有要更正的代码。

标签: android api text-to-speech


【解决方案1】:

根据我的经验,在撰写本文时,最可靠的 TTS 引擎是 Google 自己的。当然,这是一个见仁见智的问题,而不是 Stackoverflow 鼓励的事情。目前,Google TTS 是唯一正确使用最新的Voice API 的,而其他引擎崩溃、失败或只是错误地报告。

不幸的是,TTS 引擎会相信它已经正确说出了话语,但事实并非如此。

为了解决这个问题,当我请求演讲时,我设置了一个 Runnable,它检查 onDone() 是否在相对于演讲长度的一段时间内未能被调用。我还检查了onDone() 没有被调用太快,这表明语音失败,除非请求是故意的沉默之一。

如果出现问题,这两项检查使我能够向用户敬酒 - 鉴于您正在与盲人打交道,您显然必须找到另一种方式来传达问题!也许一连串的多次小振动通常可以表示一个问题?

希望对您有所帮助。

【讨论】:

  • 感谢您的洞察力。我还认为 Google TTS 引擎将是最好的选择,这也是我们目前使用的。这是一个奇怪的,不经常发生,但令人沮丧。不过,您建议的解决此问题的方法可能不适用于我们的情况,主要是因为我们允许用户控制语音的音调和速度,因此尝试确定说出某件事需要多长时间将是一个挑战,因为根据当前的速度设置,说话的快慢可能会有所不同。
  • @Sites-For-Less.com 如果请求不是针对无声的话语,onDone() 的大多数失败将在 150 毫秒内。听起来像一个随意的数字,但来自多年的头痛.....
猜你喜欢
  • 2011-03-30
  • 2014-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 2012-10-14
  • 1970-01-01
相关资源
最近更新 更多