作为一名新晋奶爸和程序员,我在新身份中最常思考的问题就是“照料婴儿的工作真的无法自动化吗?”当然,这也许能够实现,就算有给孩子换尿布的机器人(假设有足够多的父母同意在自己蹒跚学步的孩子身上测试这样的设备),愿意自动化照料婴儿的父母还真为数不多。作为父亲,我首先意识到的事情是:婴儿很多时候都会在哭,即使我在家,也不可能总是能听到孩子的哭声。
通常,商用婴儿监视器可以填补这一空白,它们充当对讲机,让你在另一个房间也能听到婴儿的哭声。
但我很快意识到:商用婴儿监视器没有我想象中的理想设备智能:它们只能充当一个传声筒:把声音从源头带到扬声器,却无法发现孩子哭声的含义;当家长要去到另一个房间里时,相应要把扬声器带到另一个房间,无法在任何其他现有的音频设备上播放声音;扬声器通常是低功率扬声器,无法连接到外部扬声器,这意味着,如果我在另一个房间播放音乐,我可能会听不到孩子的哭声,即便监控器和我在同一个房间也无法听到;大多数扬声器都是在低功率无线电波上工作的,这意味着如果婴儿在他/她的房间里,而你必须走到楼下,它们才能工作。
因此,我萌生了自制一个更好用的“智能婴儿监视器”的想法。说干就干,我先给这个“智能婴儿监视器”定义了一些需要的功能。它可以运行于价廉物美的树莓派(RaspberryPI)与USB麦克风。当孩子开始/停止哭泣时,它应该检测到孩子的哭声,并通知我(理想情况下是在我的手机上),或者跟踪我仪表板上的数据点,或者运行相应的任务。它不应该是一个单纯的对讲器,简单地将声音从一个源传递到另一个兼容的设备。
它能够在扬声器,智能手机,电脑等设备上传输音频。它不受源和扬声器之间距离的影响,无需在整个房子里将扬声器移来移去。它还应该有一个摄像头,可以利用摄像头对孩子实时监控,当他一开始哭,我便可以抓拍到图片或婴儿床的短视频,以检查有什么不对劲。来看看一个新晋奶爸如何使用工程师的大脑和开源工具来完成这项任务吧。
首先,购买一块树莓派(RaspberryPi),在SD卡上烧录好Linux操作系统(建议使用RaspberryPI3或更高版本),运行Tensorflow模型。还可以购买一个与树莓派兼容的USB麦克风。
然后安装需要的相关项:[sudo] apt-get install ffmpeg lame libatlas-base-dev alsa-utils [sudo] pip3 install tensorflow。第一步,必须记录足够的音频样本,婴儿在什么时候哭,在什么时候不哭。稍后将利用这些样本来训练音频检测模型。