在为Android开发时,最可靠的TTS(文本到语音)引擎是什么?

时间:2016-09-29 18:50:03

标签: android api text-to-speech

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

有没有一种可靠的方法来了解声音是否无法说话?

我已经使用了一个完整的听众来处理某些场景,但是当TTS根本没有输出语音时,这没有任何区别。这就像声音"思考"它说,但我们从来没有听到过。

是否有一个我们可以捕获的事件,当TTS引擎试图说出某些内容但是失败时会被触发?

1 个答案:

答案 0 :(得分:0)

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

很遗憾TTS引擎会相信它已经正确地说出了话语,但却没有。

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

这两项检查使我能够在遇到问题时向用户致敬 - 假设您正在与盲人打交道,您显然必须找到另一种方式来传达问题!也许一系列多次小振动一般可以表示一个问题?

希望有所帮助。