Java:文本到语音引擎概述

我现在正在寻找Java文本到语音(TTS)框架。 在调查过程中,我发现JSAPI实现页面上列出了几个JSAPI1.0-(部分)兼容的框架,以及一对似乎不遵循JSAPI规范的Java TTS框架( Mary , Say-It-Now ) 。 我也注意到目前没有JSAPI的参考实现。

我为FreeTTS(JSAPI impls页面中列出的第一个)所做的简短testing表明,阅读简单而明显的单词(例如:ABC,黑板)还远远不够。 其他testing目前正在进行中。

在这里,问题(实际上是6):

  1. 你使用了哪个基于Java的TTS框架?
  2. 你认为哪些是能够读取最大的词库?
  3. 他们的声音质量呢?
  4. 他们的performance呢?
  5. 哪些具有Java绑定的非Java框架在场景中?
  6. 你会推荐哪一个?

预先感谢您的意见和build议。

我已经有了与FreeTTS相当好的运气

Google翻译有一个秘密的答案: https ://translate.google.com/translate_tts ? ie = utf-8 & tl = en & q = Hello%20World

之前我曾经使用过玛丽,并且对于声音的质量印象非常深刻。 不幸的是,我没有使用任何其他的。

我使用AT&T自然语音提供JSAPI和MS SAPI钩子。 它提供了优质的声音,好的“通用”语音词典,对发音的多种控制,以及多种语言。 这有点贵,但工作得很好。

我用它来读取移动传感器应用中的驱动程序的重要传感器遥测。 我们对语音质量没有抱怨。 它拥有75%的开箱即用的准确性和科学条件,而且正常对话的准确率要高得多(可能达到90%以上)。 我们通过使用标记(大多数错误是用不同寻常的音素组合的科学术语)得到了高达约99 +%的准确度。

处理器有点困难(我们在Pentium-III等效的机器上运行,并且正在推动峰值CPU的50%-75%)。 这使用与Java接口的本地语音引擎(兼容Windows,Linux和Mac)。

有各种各样的声音和语言…

其实没有什么大的select:

  • 节日,最古老。 用C ++编写,但绑定到Java。
  • eSpeak,qucik和简单的,由谷歌翻译使用
  • mbrola

纯Java:

  • FreeTTS,代码从Festival移植,然后开源,停止开发。
  • MaryTTS – 更强大,看起来生产准备。

还有其他专有的程序,如:

  • 阿卡贝拉
  • Nuance Vocalizer

如果您的软件仅适用于Windows,则可以使用Microsoft Speech API。

我使用FreeTTS,但有一个主要的问题,让MBrola的声音在我的MacbookPro上运行。 我确实让MBrola的声音在Windows(痛苦地)和Linux上运行。 我没有运气加载FreeTTS上的任何其他语音包,这是一个耻辱,因为提供的声音是可怕的国际海事组织。 除此之外,我还在Cloudgarden上取得了一些成功,但只能在Windows AFAIK上运行。 我有兴趣听到其他人与语音引擎的成功/失败,因为这类工作是特别具有挑战性的。 我也玩Sphinx4。 我昨晚拉下了JVXML(它看起来是基于Sphinx4的),但由于某种奇怪的原因无法运行。

我已经对玛丽做出了贡献。 我觉得如果有人比我更聪明的话,把HMM的声音从核心中分离出来(这些声音不需要大的数据集,声音也没问题)。 我也试图做一个事件系统来自由地发送事件,当它说一个字。 我已经取得了成功,但是现在已经在Linux中被破坏了。 (可能是因为一个定时器错误)。

非常感谢大家,诀窍在FreeTTS的来源。 简而言之,如果以java -jar freetts.jar some-more-args-here运行java -jar freetts.jar some-more-args-here ,它会比以bin / Server.jar和bin / Client.jar的方式执行更less的单词。

您可以使用

 免费的TTS 

将文本转换为语音。 这很容易使用。 要将语音转换为文本,您可以使用

 狮身人面像4 

。 这两个都是用Java编写的。 您可以在链接中下载免费的TTS: https : //sourceforge.net/projects/freetts/和Sphinx 4: https : //sourceforge.net/projects/cmusphinx/? source =directory