Bluemix で LINE Bot するときに詰まったところ

UIの評判が高いLINE。クラウドと組み合わせることで様々なアプリが期待できます。

と、いうわけで、今回はベース部分を作ってみました。

AWSが人気ですが、今回はあえてBluemixでチャレンジします。理由はありません、私が天邪鬼なだけです。ちなみにいずれも無料枠の範囲内で作れます。

今回はベース部分だけを作るので、話しかけると定型文を返すだけのBotです。


開発用LINEアカウント取得

LINE Bot 制作前に、コチラの記事を参考にアカウントを取得してください。

 


つまったところ1

Access to this API denied due to the following reason: Your ip address [***.***.***.***] is not allowed to access this API. Please add your IP to the IP whitelist in the developer center.

対策:
LINEアカウント側でWhiteListの設定をしてください。

 


つまったところ2

“message”:”The request body has 1 error(s)”,
“details”:[{“message”:”May not be empty”,”property”:”messages”}]}”

対策
POSTするときのpayloadでMessagesを配列形式で定義してください


NodeRED用のソース。

クリップボードに以下を張り付けて、トークンだけご自身のアカウントのものに差し替えればOKです。

 

以上

未来志向は『So what?』、5W1Hでは思考が止まる

ビジネスを進めるときに5H1Wという思考を用いますが、これらは現在または過去に考えをはせるための思考法です。

未来を考えるには『So if ?(もし~ならば)』という思考が適切。

 

となると、酒を飲みながら無邪気に妄想したり、仮定の元で議論するというのは非常に良いのではないかと思った。

以前に『情報は光の速度でしか届かない。それが問題になるシーンは?』というタイトルで遊びの議論をしたことがある。こういうのが重要・・・なのかもしれな。

 

以上、簡易メモでした

電力事業とIT技術

最近、とある学会誌で電気事業とIT技術による将来像をまとめた記事を読んだ。面白かったのでメモしておく。


国内エネルギー消費量が減少する

消費エネルギー量
= 人口
× 1人あたりのGDP
× GDPあたりのエネルギー消費量

この3項のうち、人口が減少していくのは間違いない。2050年までには現在の70%程度まで人口減少するという予測もある。

そして、GDPあたりの消費量も省エネ技術の進歩によって減少の一途をたどる。これらを踏まえて、トータルで消費エネルギーは少なくなっていく。つまり「日本はそんなにエネルギーを使わない」という状況に徐々になっていく。


IT技術による電力システムの自由化と分散化

太陽光発電や蓄電池の技術普及によって、一般ユーザも電力利用をコントロールしやすくなった。ここから活躍するのがIT技術。

1つ目はデータ分析による最適化。本日の発電量、消費量、余剰電力を事前のデータ分析によって予想すれば、不足分だけ必要最低限に購入したり、余剰分を売買することが可能になり、『無駄な電力』がどんどんなくなる。

2つ目は市場形成。高セキュリティな電力売買取引の実現や、売り手と買い手の最適マッチングである。

これによって、それぞれのユーザが分散的に発電&蓄積して、電力を自由に売買するようになる。


おわりに

電力のやり取りが、まるで農村地域の「畑の野菜が沢山とれたからおすそわけ」といった感覚でやり取りされるようになれば、生活にかかる費用がグッと下がる。

田んぼや畑があれば食料には困らない。初期投資は重いけど、発電設備(太陽光パネルなど)と蓄電池があればエネルギーにも困らない。あとは家さえあれば、地域で助け合うことで暮らしていける、そんな時代に戻るかもしれない。

日本声優統計学会の公開データを使って声優さんの声認識

日本声優統計学会より無償利用可能な発話データが公開されたので分析してみました。

(ソースはGitHubで公開中 https://github.com/roadroller2da/sound-recognition )




日本声優統計学会より

プロの女性声優 3 名が 3 パターンの感情で音素バランス文を読み上げたファイルです.48kHz / 16bit の WAV ファイルであり,総長約 2 時間,総ファイルサイズ 720 MB です.

この音声ファイルは主に個人での研究・分析目的でのみ無償で利用可能です.
再配布や公序良俗に反する利用などの,実演家の著作隣接権を侵害する行為は禁止します.

http://voice-statistics.github.io/


MFCC抽出

音認識でポピュラーなのはやはりMFCCということで抽出します。

scikits.talkbox.featuresを使えば簡単に特徴量抽出できるらしいのですが、今回はあえてlibrosaを使ってみました。

下2つは異なる声優さんの発話データから抽出したMFCCですが、ぶっちゃけあまり違いが分かりません。一見、色が濃い位置がほぼ一致してしまって区別困難に思えますが。。。。

ソースコード(GitHub)
https://github.com/roadroller2da/sound-recognition/blob/master/GetMFCC_librosa.py


主成分分析(PCA)

「ほんとに声だけで人を区別できるの??」と思ったので、ためしに主成分分析(PCA)で3次元に圧縮して可視化。さっきのMFCCからは想像つきませんでしたが、こうしてみると音特徴によって発話者を分離できていることがわかります。

3次元に圧縮した主成分だけでここまで分離できているので、13次元だったり26次元だったりあるMFCCならもっと正確に分離できそうな期待が持てます。

ソースコード(GitHub)
https://github.com/roadroller2da/sound-recognition/blob/master/PCA_mfcc.py


SVMによる認識

SVMで認識実行。3人の声優さんの発話データが100個ずつの計300データがあるので、半分を学習データ、残りの半分をテストデータとしました。

えっ、ちょ、認識率100%いけたやん。。。(プログラムのバグではない)

ノイズも無いしはっきりと発話しているデータなので問題設定としてEasyだったんでしょうね、きっと。言い換えると、発話者の特徴について境界線が引きやすかったのかと。


極端に少ない学習データでSVM認識

それぞれの声優さんの発話データをたった3つしか使わないで認識器構築した場合にどうなるか実験しました。深層学習と違ってSVMは学習データ量が少なくてもそこそこ動くといわれているので検証です。

結果、下記のように少ない学習データ量でも精度がそこそこ出ました。対角成分が正解で、右上や右下に色がついているのは誤った部分です。1つめと2つめのクラスは10~20%くらいの誤りが、クラス3は50%に近い誤りがありました。

 

今回は認識データがクリアな音声で、3クラス分類というEasyな問題設定だったのでうまくいきました。これだけでSVMは学習データが少なくても動くと結論付けるのは軽率ですが、一応それっぽい傾向の確認が出来たということで。


深層学習で認識する

流行りの深層学習(ディープラーニング)も使ってみました。音は時系列データなのでRNNやLSTMを用いるのが適切なんでしょうけど、今回は実装が慣れているシンプルなDNNを用いて、MFCCを抽出した上述の画像をINPUTとしています。

そんないい加減な実装でも9割手前くらいは達成できました。

 

実写映画『ジョジョの奇妙な冒険 ダイヤモンドは砕けない 第一章』の感想(ネタバレなし)

実写映画『ジョジョの奇妙な冒険 ダイヤモンドは砕けない 第一章』を見てきました

https://warnerbros.co.jp/movie/jojo/index.html


というか今更ネタバレも何もないですけど、映画オリジナル展開も混ぜられてるのでそこは控えめにしつつ感想を綴ります。。。

ストーリー再現度:☆★★

仗助のじいちゃんがどんな人柄か、息子にどんな影響を与えたのか、それを引き継いだ仗助の姿、そのあたりが特に時間をかけて丁寧に描かれていました。

アンジェロや虹村兄弟との戦闘シーンはわりと原作通りで省略部分はあまりなし。省略が多かったのは主に戦闘以外の部分ですね。

「おまえは一枚のCDを聞き終わったら キチッとケースにしまってから次のCD を聞くだろう? 誰だってそーする おれもそーする.」これがちゃんと再現されたのは個人的に嬉しい。

キャラクター再現度:★★★

良かったのは山岸由花子と虹村形兆。ふつうに可愛いしカッコイいし違和感も少ない。

まぁ、冷静に考えれば億泰や仗助に比べて髪型が比較的普通なので再現しやすかっただけかもしれませんが。

逆にイマイチだったのは承太郎さん。ガタイと迫力が不足、そしてもう少し若くてもよくない?という違和感がわいてしまった。(俳優さんごめんなさい)

スタンド再現度:☆☆★

そりゃCGだから再限度は高いですよね。よくできてました。

クレイジーダイヤモンドvsバッドカンパニーの戦闘が、ゴジラVS自衛隊の怪獣映画みたいでした(※けなしてる)

映画オリジナル要素の量:☆☆★

時間の都合で変更点がちらほら。時間の都合で仕方ないよね。

初登場のヤンキーに絡まれるシーンで、亀のくだりがカットされていたのは個人的に残念でした。

映画オリジナル要素の良さ:☆★★

仗助のじいちゃんが町を守ってるという描写に、原作よりも重きを置いていていました。高校生の仗助がこれから戦っていく決意をする理由として必要な要素ということもあり、このあたりの描写は良かった。

学校で仗助がひたすら女の子に「ジョジョ先輩♪」って呼ばれてるのには笑ってしまいました。

 

結論: おもしろくないので別にみなくて良いと思います。

京丹後の歴史と伝統が詰まった京都駅の駅弁

おはようございます、ロードローラーです。本日は私が愛してやまない京都駅の駅弁を紹介します。

その名も、京丹後地方の『ばらずし』


このお寿司は京丹後地方に古くから伝わる独特のお寿司で、鯖をポロポロになるまで炒めたおぼろが特徴です。

「鯖のおぼろ」加えて、椎茸・干瓢(かんぴょう)・たけのこ・錦糸玉子・かまぼこを用います。

丹後ばらずしは2段のものが多く、下記順番で折に盛り付けします。その仕上がりはまるで芸術作品のようです。

  • すし飯
  • 鯖のおぼろ、干瓢
  • すし飯
  • 鯖のおぼろ、干瓢、たけのこ、錦糸玉子、椎茸、かまぼこ、青豆、生姜

京丹後のばらずしは長い伝統から京都大学で研究対象にもされたようです
http://ci.nii.ac.jp/naid/10030774997
https://www.jstage.jst.go.jp/article/arfe/48/1/48_90/_pdf

京都駅の新幹線改札を入ったところで購入可能。夕方には売り切れることが多いので要注意。

ぜひお出かけの際には京丹後の伝統を味わっていってください。

ブロックチェーンの処理速度の計算式

こんにちは、ロードローラーです。本日はブロックチェーンの弱点といわれている処理速度についてまとめました。





現在のブロックチェーン仕様では最大7tps(取引/秒)

まず、ブロックチェーンのキラーコンテンツであるビットコイン仕様では最大7tps(取引/秒)とされています。これはどのようにして計算されているのでしょうか?

ポイントは以下3点です
・ブロック承認時間
・最大ブロックサイズ
・トランザクションの平均サイズ

ブロック承認時間
採掘者たちによってブロックが生成されるまでの経過時間。

採掘と呼ばれるブロック生成作業は、Nonce値を総当たりで変更しながらハッシュ計算を繰り返して、条件を満たすハッシュ値を見つけ出すというマシン処理性能にモノを言わせた単純作業です。そのため条件設定によって難易度を調節できます(例:ハッシュ値の先頭にゼロがX桁並ぶなど)。こうしてブロック承認時間を設定します。

ブロック承認時間は長すぎると取引がいつまでも完了しません。かといって早すぎると同時に採掘完了するユーザが大量発生してしまい、ブロックの正当性確認や合意形成のプロセスに時間がかかり過ぎてしまいます。これらの背景からバランスが重要と言われています。

最大ブロックサイズ
1つのブロックに格納できる取引データ量。

ブロック承認時間が10分だった場合に、10分間に最大ブロックサイズを超える量の取引が発生すると、ブロックに格納しきれず後回しにされてなかなか完了できない取引が出てきます。実際にブロックサイズ問題はビットコインで顕在化しており、ブロックサイズを大きくするための議論が何度もされています。

トランザクションの平均サイズ
1取引あたりのデータ量。これは特に説明不要ですね。


というわけで、現在仕様と照らし合わせてこれらを基に計算すると
・ブロック承認時間:600秒
・最大ブロックサイズ:1MB
・トランザクションの平均サイズ:250Byte
 
1,024 × 1,024(バイト)/(250(バイト)× 600(秒))≒ 6.99(取引/秒)
 
ただしトランザクションの平均サイズが300Byteとも言われていて、計算しなおすと
 
1,024 × 1,024(バイト)/(300(バイト)× 600(秒))≒ 5.83(取引/秒)
 

…………遅っ!!!

※ちなみにVISAカードの性能は最大45,000tpsと言われていて、このことからもブロックチェーンが比較的に遅いのがよくわかります。

 

ブロックチェーンの活用案として、開発用にユーザ情報やセンサ情報を取引するといったことが提案されていますが、そのためにはプライベートブロックチェーンにして仕様変更しないと難しいのかもしれませんね。。。

※ここでいう仕様変更とは
(1)最大ブロックサイズを増やす
(2)トランザクションのサイズを削減する
(3)ブロック承認時間を短くする

過去のブロックチェーン記事

Kabylake+Z270搭載ボードでUbuntuを立ち上げるとイーサネットが繋がらない

こんにちはロードローラーです。タイトルに記載した通り、開発用にGPU搭載マシンを購入したのですが、OSインストールを終えた時点でネット接続できないという問題がありました。どうやらイーサネット(NIC)が認識されていない様子。

試行錯誤の末に解決しましたが、非常に疲れた。。。。同じトラップによる被害者を減らすべくここに記します。


Intel公式サイトからドライバ(Linux用)をインストール

ドライバ
https://downloadcenter.intel.com/ja/download/15817/-PCI-E-Linux-

インストールされていることは以下コマンドから確認できます

 

しかし、ドライバインストールしたにもかかわらず繋がらない。のコマンドで確認したところドライバは入っているのに、、、なぜ??


問題はサムチェック

アレコレと試行錯誤を繰り返した結果、サムチェックが問題と分かりました。

まずダウンロードしたファイルから「nvm.c」を開きます。

次にサムチェック関数(e1000e_validate_nvm_checksum_generic)が動作しないように中身を空にします。似たような名前の関数がたくさんあるので注意してください。

 

編集が完了したらファイルを閉じて以下コマンドを実行。

これでイーサネット認識して無事にネット接続できました。

Ubuntuで日本語入力が突然できなくなった時の対処法

こんにちはロードローラーです。

プログラマや開発者では『急におかしくなった!!』、『何もしてないのに動かなくなった!!』というのはご法度ですが、それでも意図せず変な異常事態に直面することは頻繁にあります。

その1つがUbuntuで日本語入力が突然できなくなるという現象です。

対策は以下のコマンドを実行して、ibusを再起動することです。

だいたいこれで解決します。

SORACOMのサービスを辿るとトレンドが見えてくる

株式会社ソラコムは、MVNOのデータ通信 SIMや、AWSを活用したクラウドサービスによって、IoT のためのモバイル通信とクラウドを一貫して提供する企業です。少ない初期コストによって人気を集めています。

既にたくさんのサービスを展開していて(各サービスは頭文字が『A』からアルファベット順になっている点が面白いですね)、これらのサービスの歴史を辿ることでIoT業界のトレンドやニーズが非常に明確にわかってきます。

(画像:https://soracom.jp/)


『A』:SORASOM Air

格安のSimカード。携帯電話用と異なり初期費用が小さく、IoTのような通信データ量が少ない場合に安く手軽に利用可能。様々なデバイスに通信機能を持たせてIoTを開始したいという需要に応えたサービスといえる。

(画像:https://soracom.jp/)


『B』:SORASOM Beam

デバイスからクラウドに収集したデータを、ユーザ端末から取得する際の経路を暗号化するサービス。デバイスからクラウドへの通信はSORACOM Airを用いるとモバイル閉域網なのでセキュリティ安全性が高い。その一方で、ユーザ端末からクラウドにアクセスするときにはインターネットを経由せざる得ないためセキュリティ対策の需要がある。それに応えたサービスといえる。


(画像:https://soracom.jp/)


『C』:SORASOM Canal

世界で最も利用されているクラウドサービスことAWS。IoTで収集したデータをクラウド上に構築したアプリケーションで利用したいという顧客は多い。この場合はSORACOMクラウドと顧客クラウドとのセキュアな接続が必要となる。そのときにインターネットを経由してしまうとセキュリティの懸念が出てくるので、インターネットを経由せずにAWS内の閉じた環境でクラウド同士を接続するサービス。というのも、そもそもSORACOMクラウドはAWSをベースにしているので、こういうことも可能であろう。

(画像:https://soracom.jp/)


『D』:SORASOM Direct

IoTで収集したデータを用いたアプリケーションをクラウドではなくオンプレ環境(例えば本社サーバ上など)に構築するユーザもいる。そういったオンプレユーザ向けのセキュアな専用線接続サービス。SORACOM Canalのオンプレ版ともいえる。

(画像:https://soracom.jp/)


『E』:SORASOM Endorse

通信回線が安全になっても、接続相手が誰かわからなかったり、なりすましがあったり、未知のデバイスが勝手に繋がってしまっては困る。そのためにデバイス認証機能を提供するサービス。認証にはSIMを用いる。

(画像:https://soracom.jp/)


『F』:SORASOM Funnel

IoTで収集したデータを用いたアプリケーションをクラウドに構築したといっても、全ユーザがAWSを使っているとは限らない。クラウドのビッグスリーであるAWS、GCP、Azureについて、SORACOMクラウドとセキュアに接続させるサービス。SORASOM Canal が AWS以外にも対応したVerといえる。(ただ、内容を見てみるとAWSとの接続に比べてGCPやAzureとの接続は若干粗末に見えてしまう。)

(画像:https://soracom.jp/)


『G』:SORASOM Gate

デバイスからクラウド、そしてクラウドからユーザ環境へとデータが送られる。その逆方向の通信を可能にするのがこちらのサービス。膨大な数のデバイスを現地に赴いてメンテナンスすることはコストがかかるが、こちらのサービスを用いればデバイスのアップデートや設定変更が遠隔から可能となる。技術的にはもちろん可能なことだがIPアドレスの割り当てやNAT機能の設計などが職人芸で難しく、それらをサービスとして提供したことは「お見事!」と言わざるを得ない

(画像:https://soracom.jp/)


『H』:SORASOM Harvest

バスワードとなって大きな期待がされているIoTだが、実際に何をすればいいのかわからないという声が近年多い。そこで、まずは簡単なプロトタイプを作成して発想を膨らませるという開発やマーケティングが多くなっている。こちらはそのような需要に応えて、簡単にデータ収集と可視化ができるサービスとなっている。(ただ、個人的には『H』くらいからだんだん他企業と似たようなことをし出したように感じており、勝手ながら少々悲しい。)

(画像:https://soracom.jp/)


『I』:SORASOM Inventory

デバイスを認証するSORASOM Endorse に対して、こちらはデバイスを管理するサービス。稼働状況などを遠隔地から監視できる。

(画像:https://soracom.jp/)


『J』:SORASOM Junction

ミラーリング、リダイレクション、インスペクションの3つの機能を提供するサービス。(デバイスの次はパケットまで確認したいという声が出てきたのだろうか?このあたりから背景や狙いがわからなくなってきました。)

(画像:https://soracom.jp/)

 

今日はここまで