调教属于你的“贾维斯”(给自己挖了一个很大的坑)

1,508 阅读5分钟

今天玩一下现在很火的人工智能

废话不多说,先来看几张图:

看出什么蹊跷了吗?

再来看一个视频:

https://www.zhihu.com/video/1002567561061511168

演示网址和代码见文末
人工智能离我们有多远?你觉得只有战胜柯杰的阿尔法狗才算是人工智能吗?看看周围:你的美颜相机、你刷的抖音推荐、你手机上的语音助手……甚至包括给你送外卖的小哥分配,现在都少不了人工智能的参与。

《钢铁侠》中的智能管家贾维斯,如今看起来也不算那么“科幻”了。不少厂家最近都推出了智能音箱产品,可以语音聊天及控制家里的智能家居设备。

不过,我想要一个自己的“贾维斯”。

这个想法由来已久。现在看来,实现的可能性越来越高了。因为各种AI平台智能硬件都已成熟,而 Python 这个胶水语言又可以很方便地把各种模块拼接起来。

最近正好瞥见了一个有意思的新“玩具”--腾讯AI开放平台ai.qq.com),本来只是想简单给大家分享一下。结果我自己写得停不下来,借此机会开启我的调教之旅。(这回一定是一个深坑)

这次用到了AI平台的语音识别智能闲聊语音合成,把这三个功能串起来,实现了语音智能应答的功能。

目前功能可以说是十分初级,不过总要有个开始嘛,反正我有的是时间去打造她。

接下来的一些计划:

  • 增加摄像头,实现人脸识别和场景定位
  • 接上一个机械臂。之后所以无脑操作类的手机游戏,你们就别想跟我一起冲排名了
  • 安上轮子
  • 连接无人机
  • 当然,肯定还少不了树莓派

虽然还没想清楚最终会做出个什么东西,但这不重要,对我来说过程已经够有趣了。(应该整不出一个奥创来)

另外昨天还顺手拿人脸融合的接口做了个在线换装小工具,支持50种模板,想要体验的朋友,由此进入>>> 人脸融合 - Crossin 的编程实验室

昨天夜里把这个功能上线,朋友圈发了一下,很快就有几百人访问。现在文章推送出去,不知道我那小破服务器能不能顶得住。虽然已经对图片传输做了压缩优化,但还是很危险。如果请求失败,请稍晚些再来体验,或者自己下载代码运行。


外行看热闹,内行看门道。前面的热闹说完了,如果你还想了解更多,我们接下来就说点有信息量的门道。

这次代码用到的腾讯AI开放平台,现在功能已经不少,主要是自然语言处理计算机视觉智能语音三大方向。这次案例的代码,三个方向都涉及到了。

平台文档还算得上详细,也提供了在线功能演示,建议自己上去捣鼓一下。现在只要注册就能申请使用,不收费,作为学习来说也几乎没有限制。比较可惜的是我没看到有Python 示例,所以你可以参考我的代码来写。(尤其是计算签名的部分,可以直接用我的代码。)

单看独立的 API 并不复杂,简单来说就是一个网络请求,你按要求提供了正确的参数,平台就会返回给你相应的结果。但如果你是刚接触这类接口,我相信你会被坑得鼻青脸肿,因为我也是过来人。

比较明显的坑大约有三个:

  1. 签名。这是开放 API 验证来源身份的标志,也是 API 新手必经的坎。你要了解 md5 的概念(之前文章有提及过【每周一坑】校验文件哈希),并且按照 API 的要求生成正确的签名。除了开始时理解上的困难,在开发调试时,因为最终输出只有一串字符,所以出错时很难 debug,只能一遍遍地仔细检查。
  2. 参数。参数看起来都给你规定好了,但实际用时才发现会有各种问题。比较常见的错误可能是编码。同样,因为缺少调试信息,即使是很低级的错误,也可能让你耗费很长时间。再加上有些你没注意到的文档细节(比如字符长度限制)和错误(语音合成里的请求方法是 POST 但文档上写的是 GET),这个步骤也会让你抓狂。
  3. 返回值。当你排除万难,终于拿到结果的时候,或许会一脸懵逼……因为除了自然语言接口外,图像和声音的返回值大多是经 base64 编码后的数据。你需要自己对这些数据进行处理、存储或展示。而如果你像我一样要把几个接口的功能串联起来,那么等待你的将是各种数据、文件类型的转换。好在 Python 在这方面还算方便,不然真的会痛不欲生。

所以,看起来只是简单的接口调用,对于经验不多的开发者来说,也不是容易的事。但这些光靠看是看不出来的,你必须亲手写过才能体会。写了之后就会发现,一些坑我早就给过预警。不用太过纠结于哪个教程更好,自己动起手来才是最好。


示例代码里包括语音智能聊天和换装的代码、以及一个简版的换装页面(基于django)。获取代码地址请在公众号(Crossin的编程教室)里回复 人工智能

如果有搞不定的问题,欢迎加入我的知识星球来跟我讨论,话题不限于示例代码。

人脸融合 - Crossin 的编程实验室 欢迎体验及转发。


════

其他文章及回答:

如何自学Python|新手引导|精选Python问答|Python单词表|区块链|人工智能|双11|嘻哈|爬虫|排序算法|我用Python|高考|世界杯|竞猜|requests

欢迎搜索及关注:Crossin的编程教室