在Java中怎么说speak / read而不是println / system.in

时间:2014-03-25 03:03:44

标签: java android

很想知道我的java程序具有人性能力需要什么。目前要显示我使用System.out.println的消息并阅读用户的输入,我可能会使用类似System.in的内容。想知道我是否有办法说System.out.speak()和System.hear();

如果Java不可能,我可以学习其他语言,请帮助。

2 个答案:

答案 0 :(得分:2)

  

想知道我是否有办法说System.out.speak()和System.hear();

从字面上看,没有。

  1. System.outPrintWriter,没有speak()方法。
  2. 没有System.hear()方法。
  3. 添加此类方法会导致对标准系统类进行黑客攻击...使得结果库“非Java(tm)”。
  4. 此外,Java库中没有用于文本到语音或语音到文本的标准API。 (而且我不知道任何其他语言将此功能作为标准功能。)

    但是,我确信,如果你看起来足够努力,你可以找到第三方工具来实现这一点,可以通过这种方式与Java集成。

    <强>更新

    事实上,您已经找到了标准的Android(与Java不同)API:


    从设计的角度来看,我认为在操作系统的用户界面框架(用户可以控制它)中支持这种事情更好,而不是将其嵌入到单独的应用程序中。

答案 1 :(得分:0)

所以听起来这就是你想要的:

&#34; System.out.speak()&#34; - 如你所知,这不是真实的事情。我想我可以提出一个高级别的临时解决方案。

听起来您只是希望在到达代码中的某个部分时收到通知。也许你可以录制一个自己的wav或mp3,说出你想听到的任何警告,然后将wav / mp3导入你的项目目录。请参阅此文章以了解如何播放该音频:     Playing .mp3 and .wav in Java?

您可以简单地创建一个静态方法,该方法接收表示所需音频播放的字符串,然后按照上面的链接建议。

如果你想让它接收一个字符串,然后让某种计算机语音(例如微软Sam)说出那个字符串,那就复杂得多了。哈哈,我不知道怎么做。但我猜测它并不像你对#34; System.in.hear()&#34;

的想法那么难。

&#34; System.in.hear()&#34; - 这绝对不是一件事。这需要语音到文本(STT)领域的知识。这基本上是Siri或Google Now如何解析你对他们说的话。我确定你可以找到这样做的图书馆,但是我懒得找你:(

我希望这会有所帮助。我现在正在STT做一些研究,我看到你的问题弹出来了。我在该领域不是很了解,但我希望你能想出一种获得音频反馈的方法,而不必将println放在任何地方。你应该弄明白并重复使用它。

快乐的节目!