早くなんとかしないと…

社会人としてもシステムエンジニアとしても駄目になってしまう…

「スマートスピーカー勉強会 ~LINE Clovaスキル開発ハンズオン&人気アプリのスピーカー登壇~」に行ってきました #Clova_CEK #linebootawards

2018年7月29日に「スマートスピーカー勉強会 ~LINE Clovaスキル開発ハンズオン&人気アプリのスピーカー登壇~」に行ってきました。

f:id:PET_HAL:20180729203051j:plain

前半部:LINE Clovaオープンプラットフォーム・および開発者用ポータルCEKハンズオン

今回のハンズオンのおかげで、Clovaスキル開発の感覚を得られたのは大きな収穫でした。
ただ、タイムスケジュールを見た時に1時間でできるのか?と思ったのですが、案の定タイムアップとなり、Clova実機での動作確認はできませんでした…。
わからなかったわけではないのですが、GitやHerokuを使い慣れておらず、もたついたのが原因でした。
似たようなものだとAlexaハンズオントレーニングに参加したことがあって、その時はTwitterでつぶやいたりもしていたのですが、今回はずっと資料見ながらハンズオンしてました。
Alexaハンズオントレーニングの時のように、事前に動作確認までやっておけばよかったと後悔…。
最後の「スキルの紐付け」まで進んではあるので、後日Clova実機で試してみようと思います。
やってみた感触的にはAlexaスキル開発に近いように感じました。GUIの部分で、Intentの登録とか、保存してからビルドするところとか。
ドラッグしてスロットと紐付けるのがちょっと違うところかな?

後半部:リーダーズセッション

知見の塊でした。
よくよく振り返ってみると、スマートスピーカーの勉強会はハンズオンばっかり参加してて、こういうセッションを聴いたのがはじめてでした。

私が印象に残った話は、
スマートスピーカーサードパーティスキル・アプリは

  • 機能だけではなくストーリーや演出でユーザを惹きつけることも必要
  • スマホのそれと同じルートを辿る可能性大
  • 品質がこれからどんどん上がっていく

懇親会

Clova Friensをプレゼントしていただきました。ありがとうございます。スキル開発頑張ります!
四国から来たのが話のきっかけになりました。声をかけていただいた皆様、ありがとうございました。刺激もらいました!

箇条書き雑感

  • 新しく買ったノートPC軽くて良さげ
  • 台風12号の発生で飛行機とばないかと思った (ギリギリまでわからなかった)
  • 山手線人多すぎて冷房全然効いてない
  • 飛行機到着遅れ+新宿でめっちゃ迷って昼を食いっぱぐれる (この記事を書いてる時になってミライナタワーへの行き方写真つきブログ記事に気づくorz)
  • ちっちゃいクラフトボスラテが自販機に…! (ブラウンがCM出てる)
  • 会場着がギリギリになってしまい、Wi-Fiがわからなかった (その節はTwitterでリプライいただきありがとうございました)
  • 東京はスマートスピーカーの勉強会が盛んでいいなあ (案内多数)
  • 他社さんからClova搭載スマートスピーカー発売予定?AVSのようなSDKを出したいそうだが出るとしたらその後 (質疑応答より)
  • 秋にはミニオンズモデルのClova FriendsとClova Friends miniが発売予定 (知らなかった)
  • ビルから眺める景色いいなあ! (写真撮ってる方もちらほら)

この勉強会が公開された時、これは行きたい!と思いのままに飛行機と宿とって参加してよかったです。
運営スタッフの皆様、参加者の皆様、お疲れ様でした。

HTTPS配信を有効にしました

本ブログのHTTPS配信を有効にしました。
混在コンテンツがないかなどの確認はしてません…眠いのでまた後日。

「スマートスピーカー × サーバーレス 入門(広島開催)」に行ってきました #dreamarts #orizuruIT

2018年5月12日に、株式会社ドリーム・アーツ主催の「スマートスピーカー × サーバーレス 入門(広島開催)」に行ってきました。


Togetterまとめ

【自分用まとめ】スマートスピーカー × サーバーレス 入門(広島開催) #dreamarts #orizuruIT - Togetter



スマートスピーカーは、Google AIY Voice Kit + Raspberry Piであらかじめ作成されたものを利用しました。音声AIはGoogle Assistant。
ハンズオンでは、このスマートスピーカーに下記の3つのカスタマイズを施しました。

  • 独自のウェイクワードに変更する
  • ユーザー発話をチャットアプリに投稿する
  • チャットアプリの投稿をスマートスピーカーに発話させる

※チャットアプリは株式会社ドリーム・アーツの製品を使用


独自のウェイクワードに変更する

ウェイクワードとは、スマートスピーカーに話しかける時に使用する言葉です。Google Homeであれば「OK, Google」、Amazon Echoであれば「Alexa」など。
ハンズオンではsnowboyを利用。大まかな手順は以下。

  1. 指定のWebサイトで独自のウェイクワードを3回発話
  2. pmdlファイルをダウンロード
  3. pmdlファイルをRaspberry Piに転送

ウェイクワードが変わった以外は、普通のGoogle Homeです。時間聞いたり、天気予報聞いたり。


ユーザー発話をチャットアプリに投稿する

(※この辺りから内容の理解が乏しいです)
ハンズオンで実施したのは、上記と同じでユーザー発話をチャットアプリに投稿する際のワード(GoogleアシスタントアプリやAlexaスキルを呼び出す言葉)をsnowboyを利用して設定。あと、チャットアプリとの連携部分。
pythonプログラムは、Raspberry Piにあらかじめ用意済み。
音声からテキストの変換にAzure CloudのCognitive Servicesを利用してるんだったかな…。


チャットアプリの投稿をスマートスピーカーに発話させる

チャットアプリとNode-REDとRaspberry Piで実現。
Node-REDの画面はじめて見たんですが、MESHのGUIそっくりだなあという印象でした。
あとはhttp?webhook?の連携ができたかどうか、即画面で確認できるんだ!ということに驚き。
出来心でチャットアプリの投稿に、とある半角英字のみの音楽グループの単語を紛れ込ませてみたんですが、発話されなかったです。日本語限定かな…


箇条書き感想

  • 内容盛りだくさんだった
  • 勉強会開催にあたって、非常にたくさんの用意があったのが伝わってきた
  • あとになってこれがモブプロ形式ということに気づく
  • ドライバーになった方がもっと理解できたかも
  • こんな人差し指くらいの大きさでマイクなんだ…
  • ラズパイってもっとお値段するのかと思ってた
  • おりづるタワー、いつの間にできたんだ…全く知らなかった(2016年9月にできた模様)
  • オフィスめっちゃおしゃれだし、景色良かった(おりづるタワーには展望台がある)
  • おりづるタワーに向かう途中で食パン?販売のお店に長蛇の列ができていたのが気になった
  • ハンバーグ入りお好み焼きの衝撃

最初抽選漏れてがっかりしたけど、繰り上がって参加できることになって本当に良かった。
運営スタッフの皆様、参加者の皆様、お疲れ様でした。

備忘録:EclipseからAndroid Studioへの移行で直面した問題とその解決

この記事のその後の話。
dosomething.hatenablog.com

EclipseからAndroid Studioへの移行、直面した問題の解決法が分かりました。

動作対象APIをかなり跳ね上げてしまった問題

EclipseからAndroid Studioに移行する際の設定で、ライブラリを自動でgradleファイルに書くよ!というオプションのチェックボックスを2つ外しました。
そして、Android Studioのプロジェクト化した後、ライブラリフォルダを切って、Eclipseプロジェクトでも利用していたjarファイルを配置。
さらに、gradleファイルでそのフォルダを見に行くよう記載して解決しました。

文字化け問題

xmlファイルの日本語が全部文字化けしてました。
文字コードも改行コードもAndroid Studioの設定と一致しているはずなんですが。
これはstrings.xmlに定義してからAndroid Studioへ移行することで解決する予定。
strings.xmlに定義分は問題なかったし、こちらが推奨されているはずなので、移行を機に改善しちゃおうかな、と。

特定機能でクラッシュ問題

ファイルの配置場所が間違ってただけだった。
Using Android Studio with Vuforia - Stack Overflow
↑の記事の通り、↓の構造になるようにフォルダ切って"libVuforia.so"ファイルを配置したらちゃんと動いた。
/app/src/main/jniLibs/armeabi-v7a/libVuforia.so

Android端末実機2台ともに共通で出ていたワーニングログがこれ↓
The library libVuforia.so could not be loaded
だったのに気づいてから、なんとなく配置場所が臭いと思ったらドンピシャの記事が見つかったという…。
そもそもクラッシュの原因が分からなくて、かなり時間がかかってしまいましたが、なんとか解決。

調べてるうちに気になったけど、Vuforia、ポケモンGOでも使われてるってホントかな?

初めてのAlexaスキル申請で得た知見まとめ

個人で開発したAlexaスキル後出しじゃんけんクラブが公開されました。
本記事は、初めてのAlexaスキル(カスタムスキル)申請で得た知見のまとめです。


Amazon開発者アカウント作成

1/10の記事にも追記して書いたのですが、見事にハマリました。結果、開発者名に「HAL」が使えなくなり、別名での公開となっております。

本件、Amazonさんも把握しており、Alexaハンズオントレーニング参加者に、以下の記事が案内されています。
Alexa 開発者アカウント作成時のハマりどころ : Alexa Blogs
が、中身をあまり読まない人はどうもこのいちばん上の誤ったやり方で取り組んでしまうようです…。

下記の手順で作成するのが分かりやすいはず。
Amazon.co.jpでアカウントをつくる(AmazonEcho実機を使う場合はこのアカウントに紐付ける)
→居住国を日本にする
Amazon 開発者ポータルAmazon.co.jpのアカウントでサインイン
サインイン後の画面右上に「AMAZON CUSTOMER」と表示されていればOK。


スキルID

"alexa.APP_ID"から"alexa.appId"に変更になったようですが、一部のLambda設計書に反映されていません。
直さなくてもAlexaスキルは動作しますが、ワーニングログが出力されます。
github.com
上記の設計書を利用する場合、41行目を変更してください。

exports.handler = function(event, context, callback) {
    var alexa = Alexa.handler(event, context);
    alexa.appId = APP_ID;
    alexa.registerHandlers(handlers);
    alexa.execute();
};

【参考】Alexaのスキル開発中、Warning: Application ID is not set - Qiita


申請から公開までの経過

4/3(火) 初申請(新規作成)
4/6(金) 取り下げ
4/7(土) 再申請
4/9(月) 公開

バグ(後述)を見つけたため、審査申請を取り下げて修正し、再申請しました。
私が申請した時は5営業日でフィードバックする旨が審査申請受付メールに記載されていました。
※この日数は時期で変わるかと思います。(7営業日のキャプチャをどこかで見たため)
再申請したのでフィードバックは4/13(金)かと思っていたのですが、初申請からの日数で審査していただいたようです。
先人の記事をたくさん拝見させていただいていたからか、一発で審査に通り、その旨のメールが届いた数時間後に公開となりました。
※公開タイミングは開発者で決めることはできないようです。


サンプルフレーズ

この項目は、利用者に対して確実に応答するフレーズを提示するもの、という認識です。
設定するとスキルがフレーズに応答するようになるわけではないはず。
カスタムスキルであれば、下記のドキュメントを参考になります。
developer.amazon.com


スキルアイコン

フリー素材を使用させていただこうかと思ったのですが、規約確認が面倒になり、ペイントで自作しました。作成時間5分。


テストの手順

クイズゲームスキルのサンプル(https://github.com/alexa/skill-sample-nodejs-quiz-game/tree/ja-JP)をベースに作成した、後出しじゃんけんゲームのスキルです。
アカウントリンクやアクセス権限は使用しておりません。
審査のほど、よろしくお願い致します。

4/3 初申請(新規作成)
4/6 取り下げ
4/7 再申請

【初申請から再申請までの修正内容】
・「後出しじゃんけんクラブで、○○を××して」で本スキルを起動した場合に応答不具合となるバグを解消
AMAZON.HelpIntentで本スキルを起動した場合、その次の発話で応答不具合となるバグを解消
・エンドポイントの変更(Lambdaバージョン管理のため)

後出しじゃんけんクラブで、○○を××して」で本スキルを起動した場合に応答不具合となるバグ

サンプルフレーズを決めるために色々な呼び出し方法を試していた時に、「後出しじゃんけんクラブのゲームをやろう」と言うところを、誤って「後出しじゃんけんクラブで、ゲームをやろう」と言ったことで発覚。
テンプレートのstate管理をなくした状態で作っていたため、UnhandledからAnswerIntentへ遷移するものの、問題を作成していないため答えなどあるわけなく、応答不具合となっていました。

state管理については下記参照。
Alexaスキル開発トレーニングシリーズ 第3回 音声ユーザーインターフェースの設計 : Alexa Blogs

AMAZON.HelpIntentで本スキルを起動した場合、その次の発話で応答不具合となるバグ

ヘルプ周りの設計が漏れまくってました。

いきなりヘルプを呼び出すルートを失念

開発ドキュメントのヘルプの提供を読んで気づきました。
ヘルプから起動してしまうと、問題を出題するルートが「最初に戻って」しかなくなるという…。
上記の問題共々解決するため、state管理を追加しました。

ヘルプ応答発話の見直し

「スマホアプリはオワコン。今開発するならスマートスピーカーで!」スキル「旬の食材」開発者 立花氏に聞く。 – SmartHacks Magazine
上記のインタビュー記事内の

ヘルプの返答の後は質問で終わる必要がある

という記述を見て修正しました。
『(前略)終わりたい時は、「ストップ」と言ってください。(終)』だったんです、初申請時。
これを、下記の内容で直しました。
・いきなりヘルプを呼び出した時→問題出題
・ゲーム中に呼び出した時→問題をもう一度言う

エンドポイントの変更(Lambdaバージョン管理のため)

開発者アカウント側だと、スキル公開後は開発バージョンと公開バージョンに分かれるのですが、LambdaはAWSでバージョン管理しないといけません。
バージョン管理できることはAlexaハンズオントレーニングに参加した際に教えていただいたので知っていたのですが、やり方は知りませんでした。
申請前に調べてやろうと思ってたのに忘れてたので、再申請時に対応しました。
下記の記事をそのまま参考にさせていただきました。
qiita.com


特典

Alexaスキル開発者向けの特典があるので、ちゃっかり申し込んでおきましょう。
AlexaのAWSプロモーションクレジットのご紹介 | Amazon Alexa | アレクサ
スキルを開発して、特典をもらおう | Amazon Alexa | アレクサ



node.jsもAWSも初めてだったけど、アイデア出したりベターな方法考えたりするの楽しかった!

「14杯目セキュリティうどん(かまたま)」に行ってきました #secudon

2018年2月10日に、「14杯目セキュリティうどん(かまたま)」に行ってきました。初参加でした。


勉強会

  • 自己紹介にあらわれる個性
  • 県内より県外からの参加者が多そう?
  • 久しぶり(2017年7月末以来)のPython
  • AnacondaはPromptしか使ったことなかった(自学でやった時はEclipseで書いてPromptで動かした)
  • Navigatorがなかなか起動せず初っ端から焦る
  • その後Navigatorが3個起動してさらに焦る
  • ダウンロード・解凍したフォルダをjupyter notebook上で見つけるのに手間取ってますます焦る
  • 写経でいっぱいいっぱいになって(typo多すぎ)説明がまともに聞けず
  • だんだん気になる工事音
  • 確かにCTF for ビギナーズのハンズオンでexeファイルのhead情報を読むのやったような
  • 本格的に機械学習をやってみたくなったらKaggleに取り組んでみよう

おやつ


ふわふわで軽い口当たりでした。


ごはん


竹清で食べました。これで370円。天ぷらサクサクで美味しかった。
ちくわの天ぷらはそのままかぶりついたり、だしにつけてからかぶりついたり。
半熟卵の天ぷらはあとからうどんに投入して真っ二つにしてだしと混ぜながら。



豊浜サービスエリアのオリーブ豚かつ丼。ボリューム満点でした!



運営スタッフの皆様、発表者の皆様、参加者の皆様、お疲れ様でした。

東大式エゴグラムをやってみた

結果。

最も高かった心:A

 ◇A(Adult)大人
   現実的である、冷静沈着である、客観性を重んじる、といった特徴と関係があります。

最も低かった心:NP

 ◇NP(Nurturing Parent)養育的な親
   思いやりがある、世話好き、受容的である、といった特徴と関係があります。

【引用】新版TEG®II - 株式会社 金子書房

TEGパターンの特徴はW型が最も近かった。
【参考】新版TEGII 解説とエゴグラム・パターン - 株式会社 金子書房
※Webの目次には載っていないが、本にはW型も記載されている

W型はこんな特徴。

24.W型

CP,A,ACが同程度に高く、NP,FCが相対的に低い。義務感、責任感、批判精神は高く、周囲への気遣いも強いうえに、十分に自己主張できないので、葛藤をため込む傾向がある。その怒りが自分に向いて自虐的になりやすいこともある。これも、U型と同様に自他否定のあまり望ましくないパターンの一つ。何事にも怒りっぽく、その怒りが自分に向いて計画的に自己破壊に向かうとしている。

【引用】エゴグラム の見方 |AGカウンセリングオフィス

所感

結果を見て、当てはまりすぎているなあと思った。

2017年7月末に全国スキル調査を受けた際にも、この手の診断結果について呟いていた。



(ストレス耐性の数値も低かった)

概ねこの頃と傾向も変わっていなかった。

長年の性格なので向き合おうとは決めていたが、十分に意識してストレス発散をしないと、自分で自分を潰しかねないことを再認識した。
メンタルヘルスも興味はあったので、本買って読んでみようかな。