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

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

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

看出什么蹊跷了吗?

再来看一个视频:

视频内容

演示网址和代码见文末

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

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

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

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

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

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

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

接下来的一些计划:

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

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

另外昨天还顺手拿人脸融合的接口做了个在线换装小工具,支持50种模板,想要体验的朋友,点击文末 阅读原文 可进入。

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

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

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

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

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

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

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

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

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2018-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯NEXT学位

NEXT讲坛丨《Web安全从零说起之XSS世界的冲突》公开课

2948
来自专栏牛客网

2019届网易JAVA实习2面经历

2085
来自专栏流媒体人生

[H265/HEVC]开源项目

source url: https://bitbucket.org/multicoreware/x265

1374
来自专栏程序员的SOD蜜

3篇有代表性的文章,有关存储过程的是是非非

这个问题争论很久了,用不用存储过程,有时甚至到了个人信仰的程度,我们还是来看看在知名技术社区前人对此的激烈讨论吧,顺便说说相关的东西。 1, “使用存储过程的好...

2419
来自专栏java一日一条

Java 消亡了?不!原因在这…

年复一年,关于”Java消亡了?”的疑问频繁涌现,然而,通过所有外部表现来看,Java仍活着,并且在发展。尽管许多新语言各领风骚,开发语言排行榜(TIOBE)上...

682
来自专栏Java社区

这也许是史上最有趣的破解软件合集

2852
来自专栏前沿技墅

架构设计考古:Bob大叔的整洁之道

The Clean Coder、Clean Code等名著作者Bob大叔,从1970年起编程至今。他是cleancoders.com和UncleBob Cons...

2082
来自专栏python+iOS学习交流

iOS程序员请改掉影响你升职加薪的36个坏习惯!

IT行业的科技公司们一直苦苦追寻传说中以一当十的超级程序员,最新的研究表明确实存在这样一小撮效率奇高的“程序金刚”,但是一位普通程序猿如何能够蜕变成代码金刚呢?

1210
来自专栏飞雪无情的博客

飞雪无情的博客Go语言、Android相关的十大热门文章

对于很多人来说,可能不明白我为什么写博客,写博客对于我来说,可能就像大家看电影一样,有时间就看看(写写)。对于我自己也是一些东西的总结,有时候通过写,才能加深理...

1021
来自专栏互联网杂技

如何辨别一个程序员水平的高低?

问题:如何辨别一个程序员水平的高低? 工作3-5年,大家都做过点什么?但是有的程序员只是技术迁移、完全没解决问题的能力啊?大家盘点下,在你眼中,高工作年限的程序...

4909

扫码关注云+社区

领取腾讯云代金券