Google HomeをMacで活用する企画の2回目となる今回は、Google Homeのコア機能「Google Assistant」を直接Macから使おうというもの。Google Homeが手もとになくても試せるので、Siri以外のAI/音声アシスタント機能に興味があるMacユーザはトライしてほしい。
Google Homeのコア「Google Assistant」
Google Homeはスマートスピーカー……確かにそうだが、基礎部分を見ないと全体を見誤ってしまう。スピーカーというよりは、ARM Cortex-A7/デュアルコアのSoCを搭載しLinuxベースのOSで動作する「マイクとスピーカーを備えた小型コンピュータ」のほうが実態に近いからだ。形状や性能は異なるが、Raspberry Piのようなシングルボードコンピュータが内蔵され、それが音声認識の下処理とクラウドとのやり取りを担う。
Google Assitantは、そのGoogle Homeにおけるコア機能だ。Apple製品に置き換えるとSiriに相当し、クラウドをつなぐ音声インターフェイスとしての役割を果たす。Google Homeはハードウェアの要素を含むが、Google Assistantは純然たるソフトウェアと認識すればいいだろう。
ソフトウェアであるだけに、Google Assistantは移植性を持つ。Googleは「Google Assistant SDK」を公開、Google Assistantのサードパーティ製ハードウェアへの搭載/カスタマイズを可能にしている。Googleのスマートスピーカー自作キット「Voice Kit」は、このSDKをLinux組み込んだものだ。
ということは、Google AssistantはMacで動く可能性が高い。というより、実際に動くのだ。今回はVansh Gandhi氏が開発した「MacAssistant」をmacOS Sierraで実際に動かし、その実力を探ってみることにする。
Macで「Google Assistant」を使う
MacAssistantはオープンソースソフトウェアだが、バイナリ(コンパイル済)の状態でも配布されているので、ダウンロードしてすぐ利用できる。しかし、Google Assistantの機能を利用するにはGoogleアカウントが必要で、ソフトウェアからそこへアクセスするための認証キー(OAuthクライアントID)を用意することになる。少々手間はかかるが、お付き合いいただこう。
まずはWEBブラウザでGoogle Developer Consoleにログインし、適当なプロジェクトを作成して「Google Assistant API」を有効にする。そして画面左側にある「認証情報」を選択、「認証情報を作成」プルダウンメニューをクリックし「OAuthクライアントID」を選択する。アプリケーションの種類に「その他」を選択すれば、OAuthクライアントIDの作成は完了だ。クライアントIDが表示された行の右端にある「↓」ボタンをクリックし、ダウンロードされたファイルを「google_oauth.json」にリネームしておけばOK。
次に、ダウンロードしたMacAssistantのアイコン上でcontrolキーを押しながらクリック、現れたメニューで「開く」を選択して未確認の開発元であることを確認のうえ起動しよう。MacAssistantがメニューバーに常駐を開始するが、開発者のOAuthクライアントIDは利用できないのですぐに終了すること。
それからもう一度MacAssistantのアイコン上でcontrolキーを押しながらクリック、今度は「パッケージの内容を表示」を選択してContents→Resourcesの順にフォルダを開き、既存の「google_oauth.json」を先ほどダウンロードしたものと置き換えよう。これで、自分のGoogleアカウントを使いGoogle Assistantによる音声認識が可能になるはずだ。なお、Googleの音声アクティビティが無効な場合は、こちらから有効にしておこう。
OAuthクライアントIDファイルの差し替えが若干手間だが、これでGoogle AssistantがMacで動く。「OK Google」には対応しないうえ、メニューバー上のアイコンをクリックして呼び出すしかなく、日本語も理解しないが、今日の天気を教えてくれるし、「○○○○ in French」のような質問にもすぐ答えてくれる。Google Calendarのイベントも、タイトルや内容が英語で登録されていればスタート時間もあわせて読み上げてくれる(カレンダーを表示するだけのSiriより親切だ)。来春発売のHomePodを検討しているとしても、この"なんちゃってGoogle Home"は試す価値アリだ。