GoogleHomeに話しかけてメモを記録したりメモを読み上げてもらう
GoogleHomeでやりたいこと
やりたいこと(ぱっと思ったこと)
- 「シャンプー買わないと」とか「歯医者の予約しないと」とか、ぱっと頭に浮かんだことを言うだけでメモっておければ便利
- さらに、そのメモを読み上げてもらえれば嬉しい
- ドラクエ3で、主人公に他のキャラクターが言ったセリフを思い出すことができる特技があったので、ここから着想を得た
- ドラクエ3の主人公の特技
- おもいだす 会話を3つまで思い出す 会話を32個まで思い出す
- もっとおもいだす 会話を10個まで思い出す
- ふかくおもいだす 会話を32個まで思い出す
- ドラクエ3の主人公の特技
やりたいこと(より具体的に)
- GoogleHomeに話しかけることでメモの記録をしたい - 「Ok Google, メモって "シャンプー買う"」
- GoogleHomeに話しかけることで、記録したメモを読み上げてもらいたい - 「Ok Google, メモを読んで」→ 「シャンプー買う」
メモを記録
メモを読み上げる
こだわり
Raspberryがあればもっと色々できるが、GoogleHome以外は お金をかけず無料で 作ることを目指した
登場する単語
- GoogleHome
- GoolgleAssistant
- IFTTT
- GoogleSpreadSheet
- Actions on Google
- Dialogflow
- Heroku
- Django
GoolgleAssistant(Googleアシスタント)
公式 - https://assistant.google.com/intl/ja_jp/
概要 - https://ja.wikipedia.org/wiki/Google%E3%82%A2%E3%82%B7%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%88
- アンドロイドスマホやGoogle Homeに搭載されているAI
IFTTT
公式 - https://ifttt.com/discover
概要 - https://ja.wikipedia.org/wiki/IFTTT
IFTTT(イフト)とは「レシピ」と呼ばれる個人作成もしくは公に共有しているプロフィールを使って数あるWebサービス(Facebook、Evernote、Weather、Dropboxなど)同士で連携することができるWebサービスである。
- 様々なアプリやGPSの位置情報とかを使って、プログラミングせずに他のアプリにデータを連携したりすることができる
- 今回作るものでは、GoogleAssistantからGoogleSpreadSheetにデータを連携するのに使う
GoogleSpreadSheet(Googleスプレッドシート)
公式 - https://www.google.com/intl/ja_jp/sheets/about/
概要 - https://ja.wikipedia.org/wiki/Google_%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88
Googleが無料提供する、ウェブブラウザ内で動くオフィスソフト。
- オンラインで使えるエクセルみたいなもの
- PCやスマホからも見られるので外出先でも閲覧・編集できるのが良い点
Actions on Google
公式 - https://developers.google.com/actions/extending-the-assistant?hl=ja
アプリは、アクションを開発できるようにすることで、Google アシスタントを拡張するものです。アクションにより、ユーザーはあなたの製品やサービスを使用して物事を行うことができます。
- Googleアシスタントから呼び出すアプリのプラットフォーム
- 今回は後述のDialogflowを使ったアプリを管理する
Dialogflow
Give users new ways to interact with your product by building engaging voice and text-based conversational interfaces powered by AI. Connect with users on the Google Assistant, Amazon Alexa, Facebook Messenger, and other popular platforms and devices.
- GoogleAssistantなどから受け取ったユーザが発声した言葉やテキストベースの入力に対して、自然言語処理して決められたメッセージを返したり、外部のWebサービスと連携したりすることができる
- 今回作るものでは、GoogleAssistantからの入力を解析してHerokuのアプリケーションに必要な値を渡し、返却値をGoogleAssistantに返す役割を担う
Heroku
公式 - https://www.heroku.com/platform
Heroku is a cloud platform based on a managed container system, with integrated data services and a powerful ecosystem, for deploying and running modern apps.
- PAASのWebサーバを作ることができる
- pythonなどの様々な言語に対応
- 今回作るものでは、Dialogflowからのリクエストを元にGoogleSpreadSheetの値を必要な件数だけ取得して返す役割を担う
- 使うにあたって最低限のgitの知識は必要(commitとかpushとか)
Django
公式 - https://docs.djangoproject.com/ja/2.0/intro/overview/
Django は変転の激しいニュースルーム環境で開発された経緯から、よくある Web 開発タスクを迅速かつ簡単化するように設計されました。ここでは Django による データベース中心の Web アプリケーション開発をざっと見てみましょう。
アプリ作成開始時のスキル
- python: 仕事でちょっと書いている
- git: 仕事で使っている
- vim: 仕事で使っている
- IFTTT: 試しに使ったことはある
- GoogleSpreadSheet: 試しに使ったことはある
- Dialogflow: よくわからない
- Heroku: 知らない(PAASとか触ったことない)
- Django: 知らない(Webフレームワークとか触ったことない)
全体の構成
方針設計
0. やりたいことの整理と設計(このページ)
アプリ作成に向けて必要なことを調べる
アプリ作成
5. HerokuアプリでSpreadSheetの中身を取得する
6. GoogleHomeに呼びかけてSpreadSheetのメモを読み上げてもらう
7. 使い勝手を良くする