我目前正在为学校制作一个项目,在那里我将制作一个教孩子们如何阅读的程序。我对这个程序的基本想法是产生句子,然后让Windows Anna说出来。我的问题是,我如何通过Java访问Winodws Anna?有没有更好的方法呢?
谢谢
发布于 2012-05-18 00:10:37
如果让程序访问互联网是可以接受的,那么您可以使用iSpeech。
你可以使用他们的API,但问题是它每天只能使用200次。
iSpeech的声音听起来很不错,通常比我试过的其他espeak或FreeTTS引擎更精致,因为它实际上发音更流利。当然,它可能会读“Wind”,与空气有关,与“Wind”有关,与扭曲有关,但除此之外,它说得很好。
此外,虽然我以前没有任何经验,但我找到了一篇文章,向您展示了如何使用命令行访问MS Speech (显然可以通过Javaif you do not know how, here is a good [article]进行命令)。它位于here。在命令行中,你所要做的就是输入'SayDynamic.exe* the text you to to‘。
*或SayStatic,这是页面上提供的另一个下载。
这种方法在速度上似乎更好,而且不依赖于互联网接入,但它肯定不像iSpeech那样发音好。我想对你的程序来说,最理想的做法是在联机时使用iSpeech,在脱机时使用Say*.exe。
该网站还提供了该程序的源代码。正如您可能注意到的,它不是Microsoft Anna的声音,但您可以在源代码中指定它并重新编译它。
希望我能帮上忙!
发布于 2012-04-17 18:50:30
您可以使用命令行实用程序API,它使用安装在Windows上的文本到语音NirCmd。
因此,请将此实用程序与您的java应用程序一起提供,并使用适当的命令行运行它。
发布于 2012-05-14 20:40:46
你可以试试FreeTTS:一个用java编写的语音合成器。
您可以尝试调用Microsoft Speech API (SAPI),但我不知道如何在java中执行此操作。
您能告诉我们如何调用NirCmd吗?除了NirCmd之外,您还可以在C#中构建自己的工具来读取文本。文本可以在txt中,并且您的工具可以使用该txt的路径作为参数来调用。您可以很容易地改编一个像这样的演示项目:http://www.codeproject.com/Articles/19334/Text-to-Speech-using-Windows-SAPI
https://stackoverflow.com/questions/10189512
复制相似问题