首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打个响指让房间灯光秒变撩妹粉,日本技术宅的机器学习助攻项目

大数据文摘出品

编译:andy,魏子敏

机器学习当然可以改变世界,但在此之前,我们也可以先用它来改善一下生活。

比如说,给房间的灯光换个情调,顺便为技术宅们的撩妹大业助攻一把。

前段时间,Twitter主上一位叫imajo的日本小哥就做了这样一个有点浪漫的机器学习项目,打个响指就让房间灯光变成粉色的视频,获得了很多赞和转发,广受好评!

之后,这位无私的技术同学在一篇博客中详细论述了这个A(liao)I(mei)项目,希望造福更多人。文摘菌调动日语技能,编译了这篇技术博客,希望各位在圣诞到来之前掌握新技能,俘获自己的男神女神。

当然,项目成功进行的前提是,把女神先带回家。

以下,enjoy~

荧光闪烁:响指如何连接电灯

首先我们需要了解这一系统的大致构成,打响指到底是怎么控制电泡的呢。

这就得先介绍一下我房里的灯泡了,我用的是飞利浦的 hue 灯泡。这是一种一般用于 IoT (物联网)的灯泡,所以可以很方便地从智能机或是智能音箱对它进行操作。相信一些喜欢捣鼓的童鞋,可能大都知道这款产品。

然后,敲黑板,这个灯泡是可以用程序进行操作的。

也就是说,我们也可以自己开发一些应用程序什么,对房间里的灯泡进行操作。

用稍微有点难的术语来说就是,只要对本地的灯泡的IP地址进行PUT操作就可以了。

这里的系统结构就是,通过自己写的响指检测程序,来对灯泡进行操作。

之后先来说明一下,是怎么检测出响指的吧。

pia!这就是响指!

识别单发音(分辨声音大小)

首先,要检测出响指,容易想到的当然就是检测出单发音。

什么是单发音,也就是一瞬间突然变大的声音,比如枪声,敲门声。相当于一个比较大的脉冲。

下图就是打响指时声音大小的图,我们会发现它很符合单发音的定义,只有一瞬间突然变大。

所以我们可以设计一个程序,检测到几个毫秒的突然响声时就做出反应,这个是响指声。

但是,这里有一个问题,可以再看看另一张图。

是不是觉得和之前那张图特别相似。

但这并不是打响指的声音,而是手敲击的声音。

于是这样子的话,我们的程序就会不光检测出打响指的声音,还会对打响指以外的声音也做出反应了,这并不是我们希望看到的。

那就来试试频谱分析吧(分辨声音种类)

因为这样下去的话,我们的程序就会对手敲击声也做出反应了,必须得想些对策才行。

首先作为人类,我们是可以很简单就分辨出声音不同的,比如说打响指和敲击声我们一下就能分辨出来。

即使两者的声音大小相同,但还是能够感觉到它们就是有点不同。

然后我们就会想,如果能将这个耳朵听出来的不同,用图表示的话该多好,那么就可以只检测出响指的声音了。

接下来,为了提取出这个不同,我就试着用到一种叫做频谱分析的技术来进行处理。

术语突然蹦出来了,听起来好像很高大上的样子。但是就连我自己在写这个响指检测程序之前,也只是“似乎好像大概在什么地方听过”的水平。

关于频谱分析的具体原理说明,因为涉及到各种各样看了让人头大的公式,就直接跳过了。

直接来看效果吧,我们分别对打响指和手敲击的声音进行频谱分析,然后进行对比。

于是见证奇迹的时刻到了。

我们会发现,刚才貌似一样的图,经过频谱分析处理后,看起来好像有很大的不同。而这个不同很可能就是我们人耳听着两种声音时,感觉到的不同。

用机器学习分辨出这个差异

好的,接下来,虽然也不是说不能手动地写一些规则来分辨出这些“好像哪里有点不同”,但在这里我们还是不要这样做吧,啊哈哈(别啰嗦了!)。

所以,时髦的我决定用机器学习来完成这个分辨工作。

虽然相信这里的大家基本上都知道机器学习了,但我还是粗略地介绍下吧。

机器学习就是,hmmmm,把数据告诉机器,然后让机器自己求得正确答案。(对于这个解释,熟悉机器学习的人可能会吐槽,但现在请先无视一下吧)

也就是说,让计算机记住频谱分析后的响指声音数据,让它每次听到都会回应“这就是响指声哦!”。 经过一些训练后,就让它实际上去听听响指和响指之外的声音,并看看效果。

下面这个就是,分辨响指和响指之外声音的视频。

连接电灯泡(hue)

于是乎,完成了响指的辨别后,我们就只需要想怎么用程序操作电灯泡了。

因为在开头就说了代码这些比较复杂的东西一概不写,所以感兴趣的大家可以去参考一下飞利浦官方关于 hue 电灯泡 API 的文档,网上也有很多相关教程的。

最后(未来展望?)

其实先想的是,用响指操作 Google 助手智能音响。

当时想,不用很麻烦地说“OK,Google”,只用很帅气地打个响指就启动谷歌助手。应用场景大概如下:

本产品请在将女生带回家的时候使用。

1、推开门,先打个响指

2、单发音频谱分析提取声音特征

3、机器学习对响指进行识别判断

4、然后智能音响启动

5、男生此时帅气地说到:“打开灯”

但是,没想到的是做成了这个东西。于是大概应用场景变成了这样。

本产品请在将女生带回家,进入暧昧气氛的时候使用。

1、正当俩人聊到无话可聊,气氛突然进入暧昧状态,打一个响指

2、单发音频谱分析提取声音特征

3、机器学习对响指进行识别判断

4、然后电灯泡从白色变成了暧昧粉色,送上助攻

5、之后骚年,就交给你自己发挥了

实际上可能感觉这就是一个没多大意义的东西。但是这样做一些好像没有什么意义的东西,享受制作过程也是攻城狮们的快乐之一啊。

相关报道:

https://qiita.com/imajoriri/items/0d1120917714bc4f3727

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181117A13SWY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券