我正在寻找 Java 文本转语音 (TTS) 框架。在我的调查过程中,我发现JSAPI实现页面上列出了几个JSAPI1.0(部分)兼容的框架,以及一对似乎不遵循JSAPI规范的Java TTS框架(Mary,Say -现在)。我还注意到,目前 JSAPI 不存在参考实现。
我对 FreeTTS 所做的简短测试(JSAPI impls 页面中列出的第一个测试)表明它远不能阅读简单明了的单词(例如:ABC、黑板)。其他测试目前正在进行中。
问题来了(实际上是 6):
实际上我在 FreeTTS
上运气很好谷歌翻译有一个秘密的 tts api: https://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello%20World
其实没有什么太大的选择:
纯Java:
还有其他专有程序,例如:
如果您的软件仅限 Windows,则可以使用 Microsoft Speech API。
我以前使用过 Mary,她的声音质量给我留下了深刻的印象。不幸的是,我没有使用过其他的。
我使用过 AT&T Natural Voices,它提供了 JSAPI 和 MS SAPI 挂钩。它提供了优质的语音、良好的“通用”语音词典、多种发音控制以及多种语言。虽然有点贵,但是效果很好。
我用它在移动传感器应用程序中向驾驶员读取重要的传感器遥测数据。我们对语音质量没有任何抱怨。它对于科学术语的开箱即用准确率约为 75%,对于正常对话的准确率要高得多(也许 90% 以上)。通过使用标记,我们的准确率达到了 99% 以上(大多数错误是关于具有不寻常音素组合的科学术语)。
这对处理器来说有点困难(我们在 Pentium-III 同等机器上运行,它推动了 50%-75% 的 CPU 峰值)。它使用带有 Java 接口的本机语音引擎(兼容 Windows、Linux 和 Mac)。
有各种各样的声音和语言......
我使用了 FreeTTS,但在我的 MacbookPro 上运行 MBrola 语音时遇到了一个重大问题。我确实让 MBrola 声音在 Windows(痛苦地)和 Linux 上运行。我没能在 FreeTTS 上加载任何其他语音包,这很遗憾,因为在我看来,提供的语音很糟糕。除此之外,我在 Cloudgarden 上也取得了一些成功,但据我所知,它只能在 Windows 上运行。我很想听听其他人在语音引擎方面的成功/失败,因为此类工作特别具有挑战性。我也在玩弄 Sphinx4。我昨晚刚刚下载了 JVXML(它似乎是基于 Sphinx4 的),但由于某些奇怪的原因无法让它运行。
我为玛丽做出了贡献。我觉得如果有比我更聪明的人将 HMM 声音从核心中分离出来(这些声音不需要大数据集并且听起来不错),那么它就有潜力。我还尝试为 freetts 创建一个事件系统,以便在它说出单词时发送事件。我已经成功了,但是现在在linux下就坏了。 (可能是因为计时器错误)。
java -jar freetts.jar some-more-args-here
的形式运行,它比以 bin/Server.jar 和 bin/Client.jar 的方式执行时拼写的单词更少。