如果你还不知道量化自身,那么建议你看看Quantified Self。量化自身对于我来说,就是希望在我比较短的生命预期内,能尽量留下我的数据,从而在身体死掉前,用算法创建出一个IO近似于我的“个体”。

“我TM说啥了?”

这是两三年前就在做的一件事情,时断时续的我用一些12小时的录音笔记录了一天我周围的声音(当然也包括我自己的)。最简单的目的就是希望能知道我之前说了啥(我记性比较差...)。但当时找了一些voice recognition的SDK来分析记录下来的语音信息。结果都特别不如意,基本没有能用的。
直到最近买了一个Narrative Clip,我又开始重燃QS的热情了。Rekognition - 借我借我一双慧眼吧文章中,我第一次把narrative里的部分数据拿来分析,得到的结果意外的好。这坚定了我之前的想法:

如果有一个一开始设计好的idea的api flow的blueprint,让机器能帮你在发展的过程中不断紧盯这些API能不能满足需求,直到某一天,这个pipeline通了。丫就告诉你,爷,你丫的idea跑通了。

Clarify

好啦,BB这么多的目的是介绍一个不那么牛逼的服务,Clarify。Clarify号称自己做三件事儿:Capture,Analyze,Discover。简单的说就是把语音视频数据扔给它,它帮你做信号处理(估计就是降噪),语音识别和自然语言处理。当然这也是收费的,音频每小时3刀,每5000个搜索一刀。

听着很简单,但当我看到这个服务的时候,我知道这就是我想要的~不用装SDK,不用运行在我的server上。我只需要把媒体数据扔到一个像七牛的地方,拿到URL,扔给Clarify。稍等就可以问它“我前天这时候说下周去哪聚会来着?”。好吧,至少能做到,搜索,上周这时候,有“聚会”的这段音频。

API

丫居然用PHP来做tutorial...好吧,不发表言论...创建一个App,拿到AppKey。找到nodejs SDK,翻翻tutorial,猜一猜就写个测试程序出来。

var clarifyio = require('clarifyio');
var client = new clarifyio.Client("api.clarify.io", "[key]")

var bundleId;
var data = {
    name: "qwerty bundle " + Math.random(),
    media_url: "https://s3-us-west-2.amazonaws.com/op3nvoice/harvard-sentences-1.wav"
};
client.createBundle(data, function (err, res) {
    if (err) return done(err);
    bundleId = res.id;
    client.search({query: "fire", query_fields: "*"}, function (err, res) {
        if (err) return done(err);
        console.log('search');
        console.dir(res);
        client.removeBundle(bundleId, function (err) {
            if (err) return done(err);
            client.removeBundle(bundleId);
        });
    });
});

就是这句 client.search({query: "fire", query_fields: "*"},...)。执行结果也很简单。

{ total: 1,
  limit: 10,
  search_terms: [ { term: 'fire' } ],
  item_results: [ { score: 1, term_results: [Object] } ],
  _class: 'SearchCollection',
  _links:
   { self: { href: '/v1/search?query=fire&query_fields=*' },
     items: [ [Object] ],
     first: { href: '/v1/search?query=fire&query_fields=*&iterator=S10a47fbc8ef' } } }

它就是告诉你某个bundle里(bundle就是一个media的集合)有没有这个字出现。所以具体在哪里出现,似乎也还是得很多人工介入的。

无论如何,Clarify让我能用十几行代码就能分析一个我之前的录音(这个就不放出来了~)。虽然结果不理想,但我相信不久的将来我一定能等到那个"test全部通过"的API的~

另外,介绍一个全球第一个虚拟Hackathon。是之前提到的Koding举办的。https://koding.com/Hackathon
在一个WebIDE里,和一群全世界的hacker们玩一次hackathon,一定很酷!

哎,最近精力有限,水点儿请见谅...


fxp
462 声望59 粉丝

coder in action


引用和评论

0 条评论