所以我们都见过钢铁侠,对吧?作为一个个人项目,我正在尝试创建一个像jarvis一样的ai。我不需要任何像jarvis那样复杂的东西;这只是我能提出的最佳描述。
我开始研究会话式的ai - 聊天机器人 - 但这不是我需要的。我觉得这种方法以一种与我正在寻找的方式截然不同且更复杂的方式处理用户输入。我需要的是给ai一个命令,让ai匹配该命令并运行相应的代码。所以我偶然发现了libdiff。但这并不足以满足我的目的。 libdiff,就我能够使用它而言,不会匹配字符串不正确的字符串。据我所知,至少,两个字符串中的措辞顺序必须与libdiff相同才能进行匹配。
例如:
用户输入:“几点了?”
将与 匹配的命令不匹配:“现在是什么时候?”
我不是要求使用勺子代码,但任何人都可以指出我正确的方向吗?
答案 0 :(得分:2)
您正在尝试构建Expert System。
看一下这本书Prolog Programming for Artificial Intelligence - Ivan Bratko。在第14章中,他谈到了专家系统。
答案 1 :(得分:2)
酷项目,这是我的第一个想法。我想首先你需要语音文本,所以你可以有效地处理命令。然后,您可以在其上应用更复杂的方法。有https://code.google.com/p/dragonfly/,但我发现对于快速攻击项目有点太多了,我认为主要支持windows。然而,也许有人为这类事提供免费休息服务,谷歌在这里做得很好http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API,但我认为没有python绑定。
然后,下一个任务是尝试在文本中找到意义。因此,您需要一个解析器(http://nltk.org/index.html)来查看问题单词,如“what”和主题“time”,或某种类型的词性标注。当然,在一般设置中正确地执行此操作(任意输入更加困难)。使用一些内置命令可能要容易得多,然后再进行更高的通用性。
如果您想要实时执行此操作,则更具挑战性,因为您需要对实时音频流进行分段,以确定句子何时结束以及何时开始。
假设您希望首先解决一个更简单的问题。假设只识别麦克风上的单个命令,例如单词“open”,并执行操作。如果你愿意训练自己的声音,你可以很容易地做到这一点。受此http://xa.yimg.com/kq/groups/24321415/1523383180/name/Speech_Recognition_seminar.pdf的启发。你需要pyaudio,numpy,scipy,如果你想在python中看到实现它的代码,请参阅https://gist.github.com/a-wild-tigger/5209781