Java:文本到语音引擎概述 [关闭]
Posted
技术标签:
【中文标题】Java:文本到语音引擎概述 [关闭]【英文标题】:Java: Text to Speech engines overview [closed] 【发布时间】:2010-09-13 16:34:57 【问题描述】:我现在正在寻找 Java 文本转语音 (TTS) 框架。在我的调查中,我发现JSAPI Implementations page 上列出了几个 JSAPI1.0(部分)兼容的框架,以及一对似乎不遵循 JSAPI 规范的 Java TTS 框架(Mary,Say-It-Now) .我还注意到目前不存在 JSAPI 的参考实现。
我为 FreeTTS(JSAPI impls 页面中列出的第一个)所做的简要测试表明,它远非阅读简单明了的单词(例如:ABC、黑板)。其他测试目前正在进行中。
问题来了(实际上是 6 个):
-
您使用过哪些基于 Java 的 TTS 框架?
您认为哪些能够阅读最大的词库?
他们的语音质量怎么样?
他们的表现如何?
目前有哪些具有 Java 绑定的非 Java 框架?
您会推荐其中哪些?
提前感谢您的 cmets 和建议。
【问题讨论】:
参见 Oracle 网站上的 this JSAPI FAQ and list of implementations。 【参考方案1】:实际上我在FreeTTS 上运气不错
【讨论】:
我没有。它遇到了 Linux Java 声音错误,此处描述为 ***.com/questions/2486985/freetts-problem-in-java 截至 2014 年,FreeTTS 似乎已死。(en.wikipedia.org/wiki/FreeTTS) FreeTTS 无法注册除美国以外的任何 MBROLA 语音,即使他们在其页面上提供了其他语音。完全失败,完全不推荐。 死了....................... 项目已死,但我在 Windows 上也没有声音【参考方案2】:谷歌翻译有一个秘密的 tts api: https://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello%20World
【讨论】:
但我怀疑这是否有用 我收到 403 错误。【参考方案3】:其实也没什么大不了的:
节日,最古老。用 C++ 编写,但绑定到 Java。 eSpeak,快速简单,由 Google 翻译使用 mbrola纯Java:
FreeTTS,该代码是从 Festival 移植的,后来开源了,开发停止了。 MaryTTS - 功能更强大,看起来可以投入生产。还有其他专有程序,例如:
无伴奏合唱 Nuance 发声器如果您的软件仅适用于 Windows,则可以使用 Microsoft Speech API。
【讨论】:
【参考方案4】:我以前用过 Mary,声音的质量给我留下了深刻的印象。不幸的是,我没有使用过其他的任何一个。
【讨论】:
玛丽不好用。它的文档记录很差,安装过程很糟糕(目录名称中的空格,这会阻止在基于 Unix 的系统上找到类文件)。 我尝试了不同的 TTS 解决方案并最终坚持使用 MaryTTS。它工作得很好,使用 Maven 的设置并不难。可以推荐一下。【参考方案5】:我使用了AT&T Natural Voices,它提供了 JSAPI 和 MS SAPI 挂钩。它提供优质的声音、良好的“通用”语音词典、对发音的许多控制以及多种语言。它有点贵,但效果很好。
我用它在移动传感器应用程序中向驾驶员读取重要的传感器遥测数据。我们对语音质量没有任何抱怨。对于科学术语,它的开箱即用准确率约为 75%,而对于正常对话,它的准确率要高得多(可能 90% 以上)。通过使用标记,我们将其准确率提高到了 99% 以上(大多数错误是关于具有不寻常音素组合的科学术语)。
处理器有点困难(我们在 Pentium-III 等效机器上运行,它正在推动 50%-75% 的峰值 CPU)。它使用带有 Java 接口的本机语音引擎(Windows、Linux 和 Mac 兼容)。
有各种各样的声音和语言......
【讨论】:
【参考方案6】:我使用了 FreeTTS,但在让 MBrola 声音在 My MacbookPro 上运行时遇到了一个大问题。我确实让 MBrola 声音在 Windows(痛苦地)和 Linux 上运行。我没有运气在 FreeTTS 上加载任何其他语音包,这是一种耻辱,因为提供的声音是可怕的 IMO。除此之外,我在 Cloudgarden 上也取得了一些成功,但它只在 Windows AFAIK 上运行。我很想听听其他人使用语音引擎的成功/失败,因为这类工作特别具有挑战性。我也在玩弄Sphinx4。昨晚我刚刚下载了 JVXML(它似乎基于 Sphinx4),但由于某种奇怪的原因无法运行。
【讨论】:
【参考方案7】:我为玛丽做出了贡献。如果有人比我聪明,我觉得它有潜力将 HMM 声音从核心中分离出来(这些声音不需要大型数据集并且听起来不错)。我也在尝试为 freetts 做一个事件系统,以便在它说一个词时发送事件。我已经成功了,但是现在在 linux 中它被打破了。 (可能是因为计时器错误)。
【讨论】:
【参考方案8】:非常感谢大家,诀窍在于 FreeTTS 源代码。简而言之:如果以java -jar freetts.jar some-more-args-here
运行,它的拼写比以bin/Server.jar和bin/Client.jar的方式执行时要少。
【讨论】:
【参考方案9】:我觉得MarryTTS 不太舒服,它有多种语言和清晰的声音可以理解。
T 将语音转换为文本,更好的选项是sphinx4-5prealpha。 我给一个大拇指,因为它具有可调节、灵活和可修改的识别器和语法。
【讨论】:
以上是关于Java:文本到语音引擎概述 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章