我们都见过铁人对吧?作为一个个人项目,我正在尝试创建一个像jarvis一样的ai。无论如何,我不需要任何像jarvis这样复杂的东西,这只是我能想到的最好的描述。
我一开始研究的是对话式聊天机器人,但这不是我所需要的。我觉得这种方法处理用户输入的方式与我所要寻找的方式不同,也更加复杂。我所需要的只是给ai一个命令,并让ai匹配该命令并运行适当的代码。
所以我偶然发现了利布迪夫。但这不足以达到我的目的。libdiff,就我所能使用的,不会匹配字符串的措辞是不正常的。据我所知,至少在两个字符串中的措辞顺序必须是相同的,libdiff才能进行匹配。
例如:
用户输入:“几点了?”
不会与它应该匹配的命令匹配:“时间是什么时候?”
我不是要调羹代码,但谁能给我指明正确的方向?
发布于 2013-03-21 00:24:20
很酷的项目,这是我的第一个想法。我想你首先需要语音来发短信,这样你才能有效地处理命令。然后,您可以在此基础上应用更复杂的方法。有https://code.google.com/p/dragonfly/,但我发现它对快速项目黑客来说有点太过分了,我认为它主要支持windows。然而,也许有人为这类事情提供免费的rest服务,谷歌在这里做得很好,http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API,但我不认为有一个python绑定。
然后,下一个任务将是试图在文本中找到意义。因此,您需要一个解析器(http://nltk.org/index.html)来查看诸如“什么”和主题“时间”之类的疑问词,或者某种类型的词性标记。当然,在一般的设置中正确地做到这一点(任意输入要困难得多)。有一些内置的命令,然后在以后进行更高的通用性,可能要容易得多。
如果你想实时地做到这一点,那就更有挑战性了,因为你需要分割一个实时音频流来确定一个句子什么时候结束,什么时候开始。
假设,您想先解决一个简单得多的问题。比如说,只需在麦克风上识别一个命令,就像“打开”这个词,然后执行一个动作。如果你愿意训练你的声音,你可以很容易地做到这一点。受此seminar.pdf的激励。如果您希望看到在python中实现此功能的代码,请参阅https://gist.github.com/a-wild-tigger/5209781。
发布于 2013-03-20 23:37:58
您正在尝试构建一个专家系统。
看一看这本书人工智能的Prolog编程- Ivan Bratko。在第14章中,他谈到了专家系统。
https://stackoverflow.com/questions/15536618
复制相似问题