一畳のくつろぎタイム

このブログでは紹介する商品画像をAmazonアソシエイトより借りています。画像やリンクにはアフィリエイト広告が含まれる事があります

2019年1月8日火曜日

PHPでGoogleアシスタントアプリ作った

https://assistant.google.com/services/invoke/uid/000000a46de75b4e?intent=%E6%99%82%E9%96%93%E3%81%AE%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B


GoogleHome用のアプリを作ろうとすると、
Googleアシスタント用のサイトActionsOnGoogleを使う必要がある。
声をテキスト化するにはDialogFlowというサイトを利用する。
ActionsOnGoogleとDialogFlowはセットのようなものである。

また、プログラムを置く場所(実行環境)としてCloud Functions for Firebaseが必要となる。
FireBaseではプログラムをサーバーサイドJavaScriptで作る必要があるようだが、
慣れてるPHPで作りたいと思ったので、Cloud Functionsは使わずプログラムを置く場所として自前でPHP実行環境とサーバを用意した。

node.js環境でGoogleアシスタント用のライブラリを利用して作るのが一番楽そうだが、 根本理解したい部分もあったので、ライブラリなしであえて棘の道を歩く。

アシスタントアプリと言ってもやることは、レスポンスとしてJSONのテキストを返すだけなので、考え方によっては普通のHTMLでWebサイト作るより楽かもしれない。

苦労した点は、JSONの形式が公式ドキュメントのものと微妙に違う点である。
Conversation API playgroundというレスポンス作成ツールがあるのだが、これで出力される形式でJSONを作る必要があった。
このことに気づくまでは、本当に何もかもうまくいかなくて心が折れそうになる。

作成したアシスタントアプリ「しずくクロック」を試してみる方はこちら
🅖 Ask しずくクロック to 雫月に時間を読み上げてもらう
アシスタントアプリは名称でユニークになっているので、インストールなどは必要なく
GoogleHomeやAndorid端末、GoogleアシスタントアプリをインストールしたiPhoneなどから、

「OK Google しずくクロックと話す」というと対話モードで動作します。
対話といっても、クロックなので時間を読み上げるのがメインコンテンツです。それ以外は声を担当してくださった朝水雫月(あさみしずく)さんの情報が得られる機能しかありません。
キーワードとしては「歌」、「ほめて」、「うるさい」、「ありがとう」、「できることを教えて」などに反応するように作成してあります。
キャラ時計ぽくなったので、画面のある端末で試した方が面白いかもしれません。

あまりひどいことを言うと、ウイグル獄長のセリフが出てきます。

他、色々ネタ声も録ってくれた朝水氏には感謝の嵐であります。

「OK Googleしずくクロックで時間を教えて」というと 対話モードとはならず、時間を読み上げ終了します。
この使い方が一番想定された使い方です。

今回のアプリはが一番のアピールポイントです。
Googleアシスタントは、時間を正確に教えてくれますが、かわいくはありません。
かわいい声の価値観も人それぞれだと思いますので、極端にアニメ声や、イケメンボイスのアシスタントも作ってみたい気はします。

声の活動されている方で、 自分の声のアシスタントが作りたい方はご相談ください。

参考図書

この本はPHPで書いてありませんが、公式サイトがまだ英語で書かれてる部分の多いので、機能の概要を掴むのとリッチレスポンスなどがとても参考になりました。
まだ1/4ぐらいの機能しか使ってないですね。



年末の3000円セールでアレクサ買ったので、アレクサスキル版も作りたいと考えております。