我目前正在为学校制作一个项目,我将在那里制作一个教孩子们如何阅读的程序。我对该程序的基本想法是产生句子,然后让Windows Anna说出来。我的问题是,如何通过Java访问Winodws Anna?还有更好的方法吗?
由于
答案 0 :(得分:3)
如果可以使用程序访问互联网,则可以使用iSpeech。
您可以使用他们的API,但问题在于它每天限制为200次使用。
iSpeech声音听起来不错,通常比我感觉像espeak或FreeTTS这样的其他TTS引擎更加精致,因为它实际上更能说明这些词语。当然,它可能会发出与风有关的“风”,如“风”,与扭曲相关,但除此之外,它说的很好。此外,虽然我之前没有任何经验,但我找到了一篇文章,向您展示如何使用命令行访问MS Speech(显然可以通过Java命令[如果你不知道怎么做,这里是一个很好的article])。它位于here。在命令行中,您只需输入“SayDynamic.exe *您要说的文字”。
*或SayStatic,页面上提供的其他下载。
这种方法在速度方面似乎更好,而不依赖于互联网访问,但它绝对不会像iSpeech那样发音。我想你的程序理想的是在线时使用iSpeech,并在离线时使用Say * .exe。
该站点还提供了该程序的源代码。您可能会注意到,它不是Microsoft Anna的声音,但您可以在源中指定它并重新编译它。
希望我帮忙!
答案 1 :(得分:1)
您可以使用使用Windows上安装的文字转语音API的命令行优先级NirCmd。
因此,请将此实用程序与您的java应用程序一起提供,并使用适当的命令行运行它。
答案 2 :(得分: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
答案 3 :(得分:0)
有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中的dll进行交互 https://github.com/twall/jna