LUISをPythonから使う

MicrosoftのCognitiveServiceの一つであるLUISはPythonのSDKが用意されているのでそれを利用すればかんたんにLUISの構築済みモデルにPythonからアクセスできます。 ここでは構築済みLUISモデルをPythonから使う例を解説するので予めLUISでモデルをつくってpublishしておいてください。 まずSDKをインストールします。おそらくPyPIに公開されていないのでgitリポジトリからインストールします。 pip install git+https://github.com/Microsoft/Cognitive-LUIS-Python.git あとはこのようなコードでテキストを分類し、最も高いスコアをつけたインテントを取得できます。 from luis_sdk import LUISClient appid = “{app id}” appkey = “{app key}” text = “あああ” client = LUISClient(appid,appkey,True) res = client.predict(text) top = res.get_top_intent() top_name = top.get_name() top_score = top.get_score()  

soxの録音でデバイスをalsa経由で指定する

soxで録音するとき、デバイス指定がなかなかうまく行かなかったのでメモ こんな感じでtオプションにalsaと書いてalsaのデバイス指定形式で指定すればデバイスを指定できる。 sox -t alsa plughw:1,0 test.wav  

Raspberry pi3にRaspbianをMac経由で書き込む(2017年8月版)

ラズパイにRaspbianを書き込む方法はいろんな方がたくさん解説をかかれているかとは思いますがRaspbianが2017年版になっていろいろ躓いたのでメモ Raspbianのダウンロード 公式サイトからダウンロードすると時間がかかるので日本のミラーサイトを利用する SDカードを確認する MicroSDカードをMacに差し込む diskutilのlistコマンドでSDカードを確認する。自分のSDカードの容量と同じぐらいの容量のディスクの番号/dev/dev*みたいなのを覚えておく。 sudo diskutil list 普通にディスクが1つしかないMacで外付けディスクとかをつけてなければ/dev/disk2になっていると思う。 フォーマットする この作業は必要かわからないけど一度フォーマットしとくと良さそう。 sudo diskutil eraseDisk FAT32 RPI /dev/disk2 SDカードに書き込む まずアンマウントする diskutil umountDisk /dev/disk2 続いてddコマンドでOSを書き込む。この時注意しなければいけないのはRaspbianが2017年版だとRaspbianを起動したあとapt-getでdpkgが壊れてしまうのでconv=syncオプションをつける ofオプションではディスク名の前にrをつけると高速化する。 sudo dd bs=1m if=2017-07-05-raspbian-jessie.img of=/dev/rdisk2 conv=sync Raspbian2017-05以降のイメージはddコマンドで書き込む時に追加のオプションが必要 ddコマンドは通常、進捗を出力してくれないがCtrl+Tを押すとどれぐらい書き込めているかがわかる。   以上の作業でRaspbianをインストールできるはず。

HackU Nagoya 2017にゲームを作って出場して最優秀賞とHappyHacking賞のダブル受賞をしました

就活も終えて学生時代最後の思い出づくりにハッカソンに出場したらまさかの最優秀賞を勝ち取ってしまいました。 HackU Nagoya2017で最優秀賞とHappyHacking賞をダブル受賞しました!!やったぜ pic.twitter.com/JZ2x14vaI5 — garicchi (@garicchi) 2017年8月21日 「最高の夏にするぞ!」とか冗談半分で集まって開発をしていたメンバーでしたが本当に最高の学生時代最後の夏になってしまったので感無量です。 何を作ったのか 今回出場したハッカソンはHackU Nagoya 2017大会です。 今大会のテーマとして「UPDATE夏休み 〜ながい夏休みをもっとエキサイティングに〜」というものが設定されていました。 夏休みをエキサイティングにする方法にとても悩みましたが美少女と海で水をかけあうことができるゲームをつくることにしました。 ※上図およびゲーム内で使用させていただいた3Dモデルは株式会社ドワンゴ様が提供されているニコニコ立体ちゃん(Alica)です(かわいい)。 どういうゲームかは発表プレゼン動画をみていただければわかると思います。 ゲームのコンセプトとして 自分からは相手が必ず美少女に見える空間で遊べるリアルタイムみずかけゲーム 相手に水をかけられると霧吹きから水が噴射し、自分に実際に水がかかる という2つを中心に夏休みをエキサイティングにアップデートしたものとなっています。 プレゼンではデモをする予定でしたが、発表前並んでいるときに電源である電池ボックスを落として破損してしまい、プレゼン時はデモができませんでした。 準備に時間をかけてしまって、HackU主催者様には大変ご迷惑をおかけしてしまい申し訳ありませんでした。 それでもプレゼン中に動画をたくさん入れていたのでわかりやすく伝えれたのではないかなと思います。 その後にあったブース展示では大変多くの方々(特にYahoo Japan社員様)に楽しんで遊んでいただき、さらに「ゲームの完成度が高い」と評価をうけ、クライアントゲームをUnityで担当した私としても非常に嬉しく過ごすことができました。 開発 ハッカソン出場を決定したとき、最初に浮かんだ構想がハードウエアと連携したリアルタイムオンラインゲームでした。 今思えば「エキサイティングにUPDATE」というテーマにとてもあった技術構想だったと思います。 チームメンバーは3人でJavaScript、Railsが得意なメンバーがそれぞれいたので私もかねてより勉強をしたかったUnityを担当しました。 ゲームの構成は下図のようになっています。UnityからRailsバックエンドへつなぎ、ゲームのリアルタイム処理はNodeJSのWebSocketを使用する。という感じでなるべく今のソーシャルゲームがつかっているような構成を目指しました。(今のソシャゲバックエンドはPHPが主流ですが) 難しかったところはUnityで使う3Dモデルにアニメーションをつけるところでした。   ✅最高の夏を過ごすためには努力を惜しまない pic.twitter.com/4zpf28oEp8 — garicchi (@garicchi) 2017年8月11日 アニメーションにはBlenderという無料のソフトを利用しましたがBlenderがとても使いづらく、なれるまでとても時間がかかりました。 Mayaも調べはしましたが、学生でなくなったときの値段をみると手がだせませんでした。 それでも今回のハッカソンでMayaをつかっているチームがいてビビりましたが.. モーション作成にはこの記事を大変参考にさせてもらいました。 それでも3Dキャラが自分の考えた動きをしてくれたときの嬉しさは言葉にはできないものがありました。   ✅最高の夏は、いつだって僕を裏切らない pic.twitter.com/ysNKnOX3U7 — garicchi (@garicchi) 2017年8月12日 砂浜の再現にはUnity標準の地形エディタであるTerrainの利用と、Beach WavesというUnityの有償アセット(1000円ぐらい)を利用しました。 水かけの表現はBeach…

日経Linux 2017年9月号で特集を執筆しました

  8月8日発売の日経Linuxで特集を執筆しました。 私の執筆部分は8,9ページ目、2ページ分になります。 内容はMicrosoftの機械学習ライブラリELLをUbuntuで使って画像識別をした内容となります。 ぜひお買い求めください。 http://amzn.asia/0nVZf6T