我目前正在为学校制作一个项目,我将在其中制作一个教孩子如何阅读的程序。我对该程序的基本想法是生成句子,然后让 Windows Anna 说出它。我的问题是,如何通过 Java 访问 Winodws Anna?有没有更好的方法呢?
谢谢
我目前正在为学校制作一个项目,我将在其中制作一个教孩子如何阅读的程序。我对该程序的基本想法是生成句子,然后让 Windows Anna 说出它。我的问题是,如何通过 Java 访问 Winodws Anna?有没有更好的方法呢?
谢谢
如果让程序访问互联网是可以接受的,那么您可以使用iSpeech。
您可以使用他们的API,但问题是它仅限于每天 200 次使用。
iSpeech 的声音听起来不错,通常比我厌倦的其他 TTS 引擎(如espeak或FreeTTS )更优美,因为它实际上更流利地发音。当然,它可能发音为“风”,与空气有关,作为“风”,与扭曲有关,但除此之外,它说得很好。
此外,虽然我之前没有任何经验,但我发现一篇文章向您展示了如何使用命令行访问 MS Speech(显然可以通过 Java 进行命令[如果您不知道如何,这里有一个很好的文章])。它位于这里。在命令行中,您只需输入“SayDynamic.exe* 要说的文本”。
*或 SayStatic,页面上提供的其他下载。
这种方法在速度和不依赖互联网访问方面似乎更好,但它绝对不会像 iSpeech 那样发音。我想您的程序最理想的做法是在联机时使用 iSpeech,并在脱机时使用 Say*.exe。
该网站还提供了该程序的源代码。您可能会注意到,这不是 Microsoft Anna 的声音,但您可以在源代码中指定并重新编译它。
希望我有所帮助!
您可以使用命令行实用程序NirCmd ,它使用安装在 Windows 上的文本转语音 API。
因此,将此实用程序与您的 java 应用程序一起提供并使用适当的命令行运行它。
你可以试试FreeTTS:一个用 java 写的语音合成器。
您可以尝试调用 Microsoft Speech API (SAPI),但我不知道如何在 java 中调用。
你能告诉我们你是如何调用 NirCmd 的吗?作为 NirCmd 的替代方案,您可以在 C# 中构建自己的工具来读取文本。文本可以在 txt 中,并且您的工具使用该 txt 的路径作为参数调用。您可以轻松地调整这样的演示项目:http: //www.codeproject.com/Articles/19334/Text-to-Speech-using-Windows-SAPI
有 Windows 的 Speech 平台 http://www.microsoft.com/en-us/download/details.aspx?id=27226
语音运行时 http://www.microsoft.com/en-us/download/details.aspx?id=27225
您可以使用 JNA(不是 JNI)与来自 java https://github.com/twall/jna的 dll 进行交互