• このエントリーをはてなブックマークに追加

前回、karotzがなかなか使えない子なことがわかりました。

ぼくらの家にkarotzがやってきた | Futurismo

そこで、調教します!ヽ(`Д´)ノ

karotz API を利用

karotzを操作するためのAPIが提供されています。これを利用すると、

  • 耳を動かす
  • きく
  • はなす
  • 光る
  • 見る(WebCam)

などなど、いろんなことを指示できるみたい。

REST,JavaScriptがAPIとして用意されている。詳しくは以下。

  • http://dev.karotz.com/api/

どっちのAPIも使いこなせそうになかったが、APIをrubyでラッパーしたgemを見つけたので、今回はRubyを利用してkarotzを操作することにした。

とりあえず、Hello Worldさせてみた

まず初めの一歩はHello Worldからと決まっているので、こんにちはを喋らせた。

以下の記事を参考に使ってみる。

Karotz + Ruby = Love | ☠ nofail

Interactive Keyの取得方法

karotzを操作するためには、Interactive Keyという番号が必要。これは操作するたびに取得が必要。(15分のみ有効らしい)Ineractive keyの取得のためには、以下の3つの情報が必要。

  • API Key
  • Security Key
  • Install Key

以下のページをサイトに設定する。

  • http://dev.karotz.com/dev/register_app.html

Key取得方法

  • サイトにアクセスして右上のLabを選択する。
  • Resister an applicationを選択
  • アプリケーションを登録するための情報を入れてSave。適当に埋めれば良いが、Application Nameだけ、あとから変更ができないため注意すること!
    + API KeyとSecurity Keyが画面に表示されるので、メモする。
  • Update Codeを選択して、zip形式に圧縮したdescriptor.xmlをアップロードする。このdescriptor.xmlがアプリの基本情報のようなもの。メモ帳かなんかに作成して、圧縮すればよい。詳しい意味は、公式Docを。

    <descriptor>
      <version>0.0.1</version>
      <accesses>
        <access>tts</access>
        <access>ears</access>
        <access>led</access>
        <access>multimedia</access>
      </accesses>
      <deployment>external</deployment>
      <parameters>
        <parameter key="showInstallUuid" value="true"/>
      </parameters>
    </descriptor>
    

  • Make Privateを選択して非公開に。
  • Test!を選択。画面が遷移して、InstallIDが表示される。メモする。

Rubyスクリプトの作成

Ruby gemを取得。

gem install karotz

スクリプトはこんな感じ。

require 'karotz'

Karotz::Configuration.configure do |config|
  config.install_id = '**********************'
  config.api_key    = '**********************'
  config.secret     = '**********************'
end

Karotz::Client.session do |karotz|
  karotz.ears
  karotz.led
  karotz.say
end

動作させると、耳を回して、testと話す。

しかし、test!としか喋れないことが発覚!Σ(゚Д゚ )

しかたがないので、githubからソースをcloneしていじることにした。それにしても、ライセンスはビールをおごることらしい(THE BEER-WARE LICENSE)。さすがはドイツ人。

git clone https://github.com/phoet/karotz.git

これで、指定した言葉を喋れるようになった。CygwinでRubyを動作させると、実行速度に難点が。。。