2018年6月5日火曜日

googleアシスタントをwindowsで動かす

わかる人向けです。 抜けミスあるかも。
ちゃんとした手順とチェックはまた今度で。。。

0.はじめに
・python3環境を構築しておきましょう。
コマンドプロンプトでpy -3で動けばOK

・作業ディレクトリを作っておきます。
 僕の場合D:\googleAssistantとしました。

・githubリポジトリをローカルにクローンしておきます。
https://github.com/googlesamples/assistant-sdk-python
D:\googleAssistant\assistant-sdk-pythonとしました。

1.プロジェクト作成
https://developers.google.com/assistant/sdk/guides/library/python/embed/config-dev-project-and-account

2.デバイスモデル登録&credentials.jsonダウンロード
https://developers.google.com/assistant/sdk/guides/library/python/embed/register-device
credentials.jsonは作業ディレクトリ(D:\googleAssistant)へダウンロードします。

3.環境構築
以下を作業ディレクトリにて打つ。
py -3 -m venv env
py -3 -m pip install --upgrade pip setuptools wheel
"D:\googleAssistant\assistant-sdk-python\env\Scripts\activate.bat"

4.認証
google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype --scope https://www.googleapis.com/auth/gcm --save --headless --client-secrets credentials.json

 webアドレス出るのでブラウザで開き、認証コードをコマンドプロンプトへコピペ。

4.pythonサンプルを動かす
py -3 "D:\googleAssistant\assistant-sdk-python\google-assistant-sdk\googlesamples\assistant\grpc\textinput.py" --device-model-id [デバイスモデルID] --lang ja-JP --device-id [適当な端末名]

2018年5月11日金曜日

oculusGoでSteamVRを動かす

スマホをHTC Vive互換HMDとして動作させるVRidge(RiftCat)のGearVR版を使うと、WiFi接続でPCのHMDとしてoculusGoを動かすことができました。
androidスマホが必要です。




手順としては...
  1. 既存のandroidスマホへGearVR版VRidgeをSideloadVRを使ってインストール
  2. adbコマンドでapkファイルをPCへコピー
  3. oculusGoへadbコマンドでインストール
という流れになります。

方法はこちらのredditの書き込みの通りですが補足をいくつか。

・oculusGoを開発者モードに設定
「Oculus Go用の設定を行う」を参照
http://unrealengine.hatenablog.com/entry/2018/05/04/232708

・Android SDK Platform-Toolsのダウンロード
adb.exeがこの中に含まれています。
https://www.orefolder.net/blog/2017/03/platform-tools/

・OculusGo ADBドライバ
自分の環境ではADBドライバを入れずともadbコマンドは使えたものの、ストレージとして認識されなかったので導入をオススメします。
https://developer.oculus.com/downloads/package/oculus-go-adb-drivers/

上記3点を実施し、redditの書き込みを実践するとこう。



2018年5月3日木曜日

Alexaのホットワード検出エンジン"snowboy"でgoogleアシスタントを起動(環境構築編)

amazon Alexaのarexa-avs-sample-appで使われているホットワード検出エンジン"snowboy"でカスタムホットワードを設定し、googleアシスタントが起動できました。
長くなったので2部構成の記事です。

snowboyとは?

独自のホットワードを検出できる、ディープラーニングによるホットワード検出エンジンです。特徴は以下5つ。
・任意のホットワードはオンラインのwebサイトで作成→誰でもホットワードを作成可能
オフラインで動作は完結→googleのように音声データをサーバーにアップしない
・初代ラズパイでもCPU使用率10%未満と軽量
・マシンリソースが許す限り、複数のホットワードを設定可能
・オープンソースかつApachライセンス

snowboy実行環境の構築

OSはubuntu 14.04(x64)を使っています。
構築方法はhttp://docs.kitt.ai/snowboy/より抜粋しています。

1.ビルド済みのバイナリをダウンロード
http://docs.kitt.ai/snowboy/
"Downloads"の"64 bit Ubuntu" 14.04のリンクをクリック。
ダウンロードしたら展開もしておきます。

2.必要なパッケージをインストール
sudo apt-get install python-pyaudio python3-pyaudio sox
pip install pyaudio

3. サンプルを実行
展開したフォルダにカレントディレクトリを移動して
python demo.py resources/snowboy.umdl
英語の発音が下手な自分だとなかなか認識されませんでした(;´Д`)
 

カスタムホットワードの作成

webサイトにて単語を3回発音するだけでカスタムホットワード用のモデルが作成できます。
https://snowboy.kitt.ai/
右上のログインからgithubなりgoogleのアカウントなりでログインします。
ログイン後、Create Hotwordボタンで任意のホットワードを作成できます。

googleアシスタントSDKの応答をテキストで取得する

2017/12/20のアップデートでテキスト入出力によるgoogleアシスタントとのコミュニケーションがサポートされました。
サンプルのtextinput.pyにて試すことができますが、pushtotalk.pyでは音声による入出力のみで、テキストでの応答結果を出力しません。

しかし数行追記するだけでテキストが得られることが判明しました。
Get assistant response. · Issue #168 · googlesamples/assistant-sdk-python · GitHub
https://github.com/googlesamples/assistant-sdk-python/issues/168

前提条件としてgoogleアシスタントSDKを実行できる環境が必要です。
Introduction to the Google Assistant Library
https://developers.google.com/assistant/sdk/guides/library/python/

pythonサンプルはこちらのリポジトリからダウンロードします。
GitHub - googlesamples/assistant-sdk-python
https://github.com/googlesamples/assistant-sdk-python

pushtotalk.pyの134行目に
            if resp.dialog_state_out.supplemental_display_text:
                display_text = resp.dialog_state_out.supplemental_display_text
                logging.info(display_text)
を追記。



実行するとこんな感じ。(引数の--lang ja-JPで日本語になります)