类似Jarvis的人工智能Python应用程序

我们都看过《钢铁侠》,对吧?作为一个个人项目,我正在尝试创建一个类似Jarvis的人工智能。我并不需要像Jarvis那样复杂的东西;这只是我能想到的最好的描述方式。

我开始研究对话式人工智能——聊天机器人——但那不是我需要的。我觉得那种方法处理用户输入的方式与我所寻找的完全不同且更加复杂。我只需要给人工智能一个命令,然后人工智能匹配该命令并运行相应的代码。

然后我偶然发现了libdiff。但这并不能充分满足我的需求。据我所知,libdiff无法匹配词序不同的字符串。至少就我所知,两条字符串中的词序必须相同,libdiff才能进行匹配。

例如:
用户输入:“现在几点?”
不会与它应该匹配的命令“现在是什么时间?”匹配。

我不是在要求直接给出代码,但有人能指引我正确的方向吗?


回答:

很酷的项目,以下是我初步的想法。我猜你首先需要语音转文本,这样你才能有效地处理命令。然后你可以在其上应用更复杂的方法。有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)来查看像“什么”这样的疑问词和“时间”这样的主语,或者某种词性标注。当然,在一般情况下(任意输入)正确地做到这一点要困难得多。可能一开始有一些内置命令,然后再逐步提高通用性会更容易些。

如果你想实时做到这一点,挑战就更大了,因为你需要分割实时音频流来确定一个句子何时结束,另一个句子何时开始。

假设,你想先解决一个简单得多的问题。比如,只通过麦克风识别一个单一命令,比如“打开”,然后执行一个动作。如果你愿意训练你的声音,你可以很容易地做到这一点。受此启发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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注