6

我目前正在为学校制作一个项目,我将在其中制作一个教孩子如何阅读的程序。我对该程序的基本想法是生成句子,然后让 Windows Anna 说出它。我的问题是,如何通过 Java 访问 Winodws Anna?有没有更好的方法呢?

谢谢

4

4 回答 4

3

如果让程序访问互联网是可以接受的,那么您可以使用iSpeech

您可以使用他们的API,但问题是它仅限于每天 200 次使用。

iSpeech 的声音听起来不错,通常比我厌倦的其他 TTS 引擎(如espeakFreeTTS )更优美,因为它实际上更流利地发音。当然,它可能发音为“风”,与空气有关,作为“风”,与扭曲有关,但除此之外,它说得很好。

此外,虽然我之前没有任何经验,但我发现一篇文章向您展示了如何使用命令行访问 MS Speech(显然可以通过 Java 进行命令[如果您不知道如何,这里有一个很好的文章])。它位于这里。在命令行中,您只需输入“SayDynamic.exe* 要说的文本”。

*或 SayStatic,页面上提供的其他下载。

这种方法在速度和不依赖互联网访问方面似乎更好,但它绝对不会像 iSpeech 那样发音。我想您的程序最理想的做法是在联机时使用 iSpeech,并在脱机时使用 Say*.exe。

该网站还提供了该程序的源代码。您可能会注意到,这不是 Microsoft Anna 的声音,但您可以在源代码中指定并重新编译它。

希望我有所帮助!

于 2012-05-17T16:10:37.217 回答
1

您可以使用命令行实用程序NirCmd ,它使用安装在 Windows 上的文本转语音 API。

因此,将此实用程序与您的 java 应用程序一起提供并使用适当的命令行运行它。

于 2012-04-17T10:50:29.893 回答
0

你可以试试FreeTTS:一个用 java 写的语音合成器。

您可以尝试调用 Microsoft Speech API (SAPI),但我不知道如何在 java 中调用。

你能告诉我们你是如何调用 NirCmd 的吗?作为 NirCmd 的替代方案,您可以在 C# 中构建自己的工具来读取文本。文本可以在 txt 中,并且您的工具使用该 txt 的路径作为参数调用。您可以轻松地调整这样的演示项目:http: //www.codeproject.com/Articles/19334/Text-to-Speech-using-Windows-SAPI

于 2012-05-14T12:40:45.600 回答