投稿者のアーカイブ

スマートスピーカー3種雑感

Google HomeとEchoが国内でも出て揃った感があるので軽く触った感じをメモ。

Google Home mini
不具合でアクションボタン使えなくなったのが地味に痛い。
Ok Google(ねえ、Google)というウェイクワードが呼びにくい印象だが
音声認識精度は悪くないし、合成音声も聞き取りやすい。
Actions on Googleがどれくらい広まるかがキモ。
綺麗に実装してあれば「ねぇ、Google ○○して」でボイスコマンドが収まるので
一番スッキリしている。

Amazon Echo Dot
早くから開発環境を公開していただけあってSkill(出来ること)が充実している。
RoombaもHueも操作出来るし、IRリモコンも各社出揃ってる。
音声認識精度も合成音声も悪くない。スマホのAlexaアプリで認識結果を確認出来て
そこからフィードバックを投げられるので操作のストレスも少ない。
ボイスコマンドの呼び方は「アレクサ ○○(Skill名)で○○(詳細)をして」と、現段階では
Google Assistantより長くなりがちなので、エイリアスが設定できるといいと思う。
特にナビタイム、列車の運行情報を知るのに「アレクサ、ナビタイム運行情報で中央線を教えて」と
かなりコマンドが長くなるので使いづらい。「アレクサ、中央線の状況を教えて」ぐらいで使いたい。
Skillによって終了コマンドが違うので呼び出した後止められなくなることがある。(じゃらんの終了方法がわからない…)
Echo Dotはライン出力がついていてホームオーディオに出力を流せるので既設の環境に組み込みやすいのがよい。

LINE Clova WAVE
日本でのリリースは一番早かったが機能としては最も未成熟。
LINE MUSICのターゲット層でサブスクリプションチケットを買ったら「かなり不便な」Bluetoothスピーカーが着いてきたぐらいの気持ちでいないと多分買ったのを後悔する。している。
音声認識周りが本当に未熟でテレビをつけているとウェイクワードを誤検知してずっと喋っている。
ボイスコマンドの確認もできないのでどうやったら動くか確認できずストレスだけが溜まっていく。
サードパーティの機能実装が現状殆どない(radikoが聴けるくらい)なので何もできない。
LINE MUSIC再生時とBluetooth経由で音楽を再生する時に音質差が結構あり、後者は音がスカスカになる。ワザとやってんのかなコレ。


開発者のスタンスがこんな感じなので、正直今後も期待出来ない。
Google HomeやEchoの発売に焦って正式版として販売しているが、中身は本当に未成熟で
先行する2者に比べて周回遅れになっている。こんなんで店頭販売されても普及を妨げるだけ。

今のところ各社ともボイスコマンドというか、決まった指示言葉を組み合わせて操作する形なので
自然な会話で操作が出来るわけではない。今後の成熟に期待。

Android端末で受信したLINE通知をiOS端末にも通知させる

普段はXperiaでLINEを受信しているのですが、たまに持ち出し忘れたり
するとメッセージに全く気が付かないので、他の端末で新着通知だけでも
飛ばす方法を探しました。
とりあえず動いているので備忘録として書いておきます。

1.処理全体の流れ
1.Androidの通知のうち、LINEのみをより分けてEventを起こす。(Tasker)
2.EventをiOS端末へPush通知する(Pushbullet)

2.セットアップ
1.Pushbulletのインストールと動作確認
Android,iOS端末両方にPushbulletをインストールし、相互にメッセージを送って
Push通知が届く事を確認します。 iOSで通知が来ない時は一度サインアウトしてから
やり直すとうまくいきます。
(Pushbulletには通知ミラーリングという機能がありますが、これはAndroidからPCに通知を送る機能で
iOS端末へは通知が遅れないので今回は使用しません。)

2.TaskerのインストールとEventの設定
(1)Android端末にTaskerをインストールし、初期設定(通知の許可・ユーザ補助の許可)をしておきます。
(2)TASKSの+ボタンを押し、適当に名前をつけた後Actionを追加します。
ActionはPluginのPushbulletを選択します。
(3)Action Editの画面でConfigrationの左にある鉛筆マークを選び、Pushbulletの通知設定をします
Toに対象となるiOS端末を入れ、タイトルに「LINE:%evtprm2 %evtprm3」と入力
メッセージは特に設定せずチェックマークをいれて戻ります。

(4)Taskditの画面に戻ったら通知をプッシュという表題でActionが追加されていると思いますので
左下の再生ボタンを押し、iOSへ通知が飛ぶかを確認します。
(スクショは2件表示されていますが、これは2台設定しているので1台だけならば1件表示されます)

この時点で以下のような通知がiOSへ飛べばOKです。

(5)PROFILESの+ボタンを押し、EventのUIにあるNotificationを選択します。
(6)Event Edit画面でOwner ApplicationとしてLINEを選択します。他は空欄でOKです。

(7)矢印で戻るとTASKを紐付けろと言われますので、先程作ったタスクを指定します。

(8)ハンバーガーメニューからExitを選びTaskerを一度閉じて再度開きます。
(これを行わないとTaskが反映されない事があるようです。)

3.動作確認
Android端末をスリープにして、他の端末からメッセージを送ってみます。
以下のような形でiOS端末に通知が飛べば成功です。

Androidの柔軟性に全力で助けられる形で機能を実現しています。
こういう細かい所に手が届くのをみるとやっぱりAndroid端末便利だなぁと思います。
iOSは逆に何もさせないことで安定性を担保しているので、こちらはこちらで運用が楽ですね。

・補足
%evtprmはNotificationの内容が変数として入ります。%evtprm2がタイトル、%evtprm3が内容です。
・以下試して駄目だったこと
IFTTTをトリガして通知をとばす。
両端末にIFTTTをインストールし、ifにAndroid Notication、thenにIFTTT Notificationを設定して
通知を飛ばす方法。これは個別の通知を選べないのでAndroidの通知が全て飛んでしまい綺麗ではありませんでした。
LINEもIFTTTに対応しているので細かく設定出来るかなと思ったら、ifには一切設定出来ないので意味がありませんでした。

GPD WIN/Pocketの英語環境を(APIから見て)日本語環境化する

GPD WIN/GPD Pocketでは標準でインストールされているOSが純粋な日本語版ではなく
英語(en_US)版に、お好みで日本語言語パックを入れるという形になっています。

日本語化については、ログオン後のUnicodeなUI部分の表示は
コンパネ->時計、言語、および地域->言語を追加するを選び、日本語を選択してダウンロードして
規定の言語にすることで設定できます。

また、Welcomeスクリーン、非Unicode、環境の日本語表示は上記設定後
コンパネ->時計、言語、及び地域->地域を選び、場所に日本、管理で
「ようこそ画面と新しいユーザアカウント」の設定のコピー及び
その下の「Unicode対応でないプログラム言語」のシステムロケールの変更で日本語を選ぶことで設定できます。

ここまでやると大部分の場所が日本語化されるのですが、完全に日本語OSとなる訳ではありません。
この時点でAPIで言語関係の関数を叩くと
GetSystemDefaultLCID()
GetUserDefaultLCID()
GetSystemDefaultLangID()
GetUserDefaultLangID()
GetUserDefaultUILanguage()
についてはロケール ID (LCID)が0x0411(ja_JP)で帰ってきますが

GetSystemDefaultUILanguage()
に関しては0x0409(en_US)が帰ってきます。

GetSystemDefaultUILanguage()に関してはMSのリファレンス

>This function never returns a language identifier for a Language Interface Pack (LIP).

とありますので、言語パックの影響を受けず、インストール時に設定された初期言語が返されます。
このため、一部の日本製アプリケーションでは、主にDRM的な観点からこの関数を用いて
ユーザのOS言語を検出し動作しないことがあります。(逆もしかり)
上記理由から具体的にどれが該当するかは書きませんが主にゲーム系のアプリケーションで多い様です。

これはレジストリの
HKLM\System\CurrentControlSet\Control\Nls\Language\InstallLanguageキー
en_USである0409からja_JPである0411に変更することで解決することができます。
ここを変更後再起動すると、GetSystemDefaultUILanguage()の値も0x0411となり、上記の様なアプリケーションでの動作が改善されます。
#ちなみに、日本語言語を既定にしてProにアップグレードするとここの値は0x411となるようです。

軽く確認しただけなので他の関数ではまた違う値が出るかもうしれませんし
WinRTに関しては触ってもいないので一緒に変わるかは全く不明ですが
日本製のゲームが動かない、という方は一度試してみてはいかがでしょうか。

添付に上記で挙げた関数の値をベタ出力するコピペプログラムを貼り付けておきます。
現在のOS設定値を確認する参考としてどうぞ。
#Defenderだと”Trojan:Win32/Sprisky.C!cl”と出る場合がありますが誤検知です。MSに解除申請が通ったのでそのうち表示されなくなるはずです。

#6月に買ったものの、セットアップで蹴られて積んでいた某ゲームがこれでやっと出来る. やったー

GPD WINでデバイスの暗号化を使う話。

#この記事はGPD WIN Advent Calendar 2016 3日目の記事です。
#自分のBlogがないので知人のblogをお借りしています。
dsc09851
今話題のUMPC GPD WINは3DSLLサイズということもあり、持ち運んで利用することが想定されます。
もし持ち出し先で盗難や紛失にあった場合、例え個人のデータしか保存されていないとしても
デバイスストレージの暗号化がされていれば紛失時の情報漏洩リスクを低減することが出来ます。

ここで有用なのが、Windows10に備わっている「デバイスの暗号化」と呼ばれる機能です。

デバイスの暗号化とは、Windows10Homeにおいて、以下の要件を満たす場合に
利用出来るストレージ暗号化機能です。

1.デバイスがTPM2.0に対応すること。
2.デバイスがInstantGoに対応すること。
3.デバイスがSecure Bootで構成されていること。
4.使用するアカウントがMSアカウントもしくはAzure ADに参加していること

Proエディション以上で利用出来る暗号化機能のBitLockerの機能限定版といった位置づけとなり
BitLockerと比較して主な点では以下が異なります。

1.冒頭の3つに示した様に、特定のハードウェア要件を満たす必要があります。
(BitLockerは構成方法にもよりますが、殆どハードウェア要件はありません。)

2.回復キーの保存方法がMSアカウント/Azure AD+ローカルに限定されます。
(BitLockerはクラウドに回復キーを保存する要件は必須ではありません。)

3.外部ドライブ(USBメモリー)等に対しては設定出来ません。
(BitLockerはBitLocker to Goという機能でUSBメモリーに対しても暗号化が出来ます。)

詳しくは「Windows 10 でデータの暗号化」にて詳細な説明がされています。

さて、GPD WINにおいてデバイスの暗号化をするには、ちょっとした設定が必要です。
冒頭で述べた4要件のうち
3.デバイスがSecure Bootで構成されていること。
を満たしていないため、標準の状態では使用することが出来ないのです。

対応デバイスでは設定のバージョン情報に設定の為のスイッチが表示されますが、本機では表示されていません。
設定のバージョン情報 実施前

本エントリではGPD WINの設定を変更してデバイスの暗号化を有効にする手段を述べます。
なお、この記事で想定している環境はBIOSが20161025版リリースまでのデバイスです。
最近リリースされた20161118版のBIOSでは、設定に必要な該当項目が削除されており、実施出来ません。※後述

まず前提として、現在のユーザがMSアカウントかAzure ADのどちらかであることを確認しておきます。
次にSecure Bootを有効にするために、BIOSの設定を変更します。

アクションセンターのすべての設定を開き、「更新とセキュリティ」を開きます。
回復に「PCの起動をカスタマイズする」という項目がありますので、「今すぐ再起動する」を選択します。

デバイスが再起動後、青い画面に切り替わります。
「トラブルシューティング」、「詳細オプション」、「UEFIファームウェアの設定」に進み、「再起動」を選択します。

再起動後、BIOSの設定画面(Aptio Setup Utility)に入りますので、Securityタブの「Secure Boot menu」を選びます。
UEFI menu
Secure Boot Modeを「Custom」から「Standard」に変更します。
UEFI menu2
「Press ‘Yes’ to install factory default keys」というダイアログが出ますので、Yesを選択。
UEFI menu3
Secure Bootを「Enable」に変更します。
UEFI menu4
Escで戻ってSave & ExitタブのS「ave Changes and Exit」を選択。
「Save Configuration and exit?」というダイアログが出ますのでYesを選択。
UEFI menu5

デバイスが再起動され、Windowsが立ち上がってくれば設定変更完了です。
早速確認してみましょう。
アクションセンターの全ての設定を開き、「システム」を開きます。
バージョン情報の項目の下の方をスクロールすると、「デバイスの暗号化」という項目が出現しています。
設定のバージョン情報 実施後
これを「オンにする」にすれば、デバイスの暗号化が始まります。
これでもしデバイスを紛失しても、データ漏洩から情報を保護することが出来ます。

ストレージの暗号化で気になるのがI/Oの速度低下です。 CrystalDiskMarkを実行してみましょう。
暗号化前のベンチマーク結果
before_disk
暗号化後のベンチマーク結果
after_disk
速度低下がみられる項目もありますが、通常使用では気にならないレベルに押さえられています。
GPD WINに搭載されているAtomはAES-NIをサポートしていますので、CPU使用率も殆ど上がりません。

この「デバイスの暗号化」もしもの時に為に、設定しておくと安心ではないでしょうか。


※と、ここまで書いてから、この設定に関わる重大な変更がGPDから降ってきましたので記載します。
GPD WINのBIOSで今の所最新の20161118版では、Secure Bootの設定項目、というよりもSecurityタブそのものが削除されています。
このため、Secure Bootを有効に出来ず、「デバイスの暗号化」を有効にすることは出来ません。
既に暗号化されているデバイスについては、詳しい検証はしていませんがアップデートすることにより以下の挙動が予測されます。

アップデートされることで設定値がメーカー初期値に戻るので、Secure Bootの設定が無効になります。
よって、次回起動時に暗号化の回復キーの入力が必要になります。(MSアカウントに保存されていますのでオンラインで確認出来ます。)
一度回復キーを入力した後は通常通り利用出来るはずですが、一度でも「デバイスの暗号化」をオフにして再起動すると以降は要件を満たさなくなるため、「デバイスの暗号化」が利用出来なくなります。

○お願い
このBIOSからSecure Boot項目が削除された問題について、GPDさんのレスポンスが早いIndiegogoのコメント欄で復活の要望を出してくれる方を募集しております。
私はMakuake組なので緑屋さんが間に入っており、かつ緑屋さんは現在Windowsライセンスの問題でバタバタしているのでレスポンスが期待出来そうにありません。
持ち運ぶデバイスとして追加ライセンスなしに暗号化出来る本機能は有用かと思うので、どなたか助けてください。