类Jarvis的AI Python应用

0 投票
2 回答
2696 浏览
提问于 2025-04-17 19:49

大家都看过《钢铁侠》,对吧?我现在在做一个个人项目,想要创建一个像贾维斯那样的人工智能。其实我并不需要像贾维斯那样复杂的东西,这只是我能想到的最合适的描述。

我一开始是想研究对话式人工智能,也就是聊天机器人,但这并不是我需要的。我觉得这种方法处理用户输入的方式和我想要的差别很大,也很复杂。我只需要给人工智能一个指令,然后它能识别这个指令并执行相应的代码。

后来我发现了libdiff,但这并不能完全满足我的需求。根据我使用的情况,libdiff无法匹配那些词序不一样的字符串。至少我知道,要让libdiff匹配,两个字符串的词序必须完全相同。

举个例子:
用户输入:“现在几点了?”
这个输入和它应该匹配的指令:“现在的时间是什么?”是无法匹配的。

我并不是在请求现成的代码,但有没有人能给我指个方向?

2 个回答

2

你正在尝试建立一个专家系统

可以看看这本书《人工智能的Prolog编程 - 伊万·布拉特科》。在第14章,他讨论了专家系统的内容。

2

这个项目听起来很酷,我有一些初步的想法。首先,你需要把语音转换成文字,这样才能有效处理指令。然后,你可以在这个基础上应用更复杂的方法。有一个叫做 Dragonfly 的工具,但我觉得它对快速搞一个小项目来说有点复杂,而且主要支持Windows。不过,也许有其他人提供免费的相关服务,谷歌在这方面做得不错,这个链接可以了解更多,但我认为没有Python的接口。

接下来,你需要从文本中找出意思。这就需要一个解析器(NLTK),它可以分析像“什么”和“时间”这样的疑问词,或者进行某种词性标注。当然,在处理各种输入时,做到这一点是相当困难的。可能先实现一些内置命令会更简单,之后再逐步扩展到更复杂的功能。

如果你想实时处理,这就更具挑战性了,因为你需要将实时音频流进行分段,以确定一句话何时结束,何时开始另一句话。

假设你想先解决一个更简单的问题,比如通过麦克风识别一个单一的指令,比如“打开”,并执行一个动作。如果你愿意训练自己的声音,这个可以很容易做到。你可以参考这个 链接。你需要用到pyaudio、numpy、scipy,如果想看看用Python实现的代码,可以查看 这个链接

撰写回答