要旨
・Google Home に話しかけて、翻訳した文章を発話してもらう
・翻訳はGoogle Translation API に頑張ってもらう
・限定的な状況で実用性があるかもしれない
まずはフロー図
こんな感じで流します。
①IFTTT→②Firebase→③Mac上に立てたnode.js→④Google Translation API→⑤node.jsでGoogle Homeを認識して出力
①~③は概ねこちらを参照しています。
Google Home、IFTTT、Firebase、Node.js、irMagicianを使ってシーリングライトを音声操作する
④はGoogle Translation APIのドキュメントを参照しています。
Translate API ドキュメント
⑤はこちらを参照しています
Google Home開発入門 / google-home-notifier解説
順を追って説明します。
①IFTTT
IFTTTではGoogleHomeで音声認識した文章を受け取ってFirebase にJSONをPUTしています。
図のようにIFTTTでは"$"で自由形式の文章を受け取ることができます。
出力する際はbodyに"{{TextField}}"と入力すれば受け取った文章をそのままPUTできます。
URLにはFirebaseのURLを指定します。
②Firebase
IFTTTで指定したURLにJSONがPUTされます。
"googlehome/name.json"と階層を切っているので以下の図のように発話した内容がPUTされます。
③Mac上に立てたnode.js
最初に記載した参照先と同様に、Firebaseの更新を監視するために以下のようなコマンドを打ってFirebase モジュールをインストールします。(node.jsのコードについては、他と一緒にまとめたもののURLを後で貼ります)
$ mkdir firebase
$ cd firebase
$ npm install firebase
④Google Translation API
本件のキモである翻訳はGoogle先生に頑張ってもらいます。こちらにfirebaseの更新をトリガーとして日本語の文章を投げて、英語で返ってきた文章を受け取ります。
⑤google-home-notifier
こちらを使用してnodeからGoogle Homeを探知して翻訳された文章を送信します。インストールは以下の通りです。
$ npm install google-home-notifier
実行結果とコード
そして実際に動作した結果が以下の動画になります。
「ゴールデンウィークは楽しかったよ」と呼びかけたて「Golden week was fun.」と返答があることが確認できます。
以上、IFTTT・Firebaseの設定とnode.jsのコードを書くことでGoogle Home に自動翻訳機になってもらうことができました。コードは以下です。(筆者は本件で初めてnode.js を触りましたので、至らないところがありましたらご指摘いただければありがたい限りです。)
Google-Home-Translator
感想や用途など
今回翻訳機を作成しましたが、同じように翻訳するスマホアプリは探せば幾らでも有ります。持ち運び易さについてはGoogle Home よりもスマホのほうが高いことは明らかでしょう。
ただし、Google Home はスマホと異なり常時起動しているという特徴があります。(使いたい時だけ押し入れの奥からGoogle Homeを引っ張り出してきてコンセントにつなげる人はあまりいないでしょう)そのため、スマホのアプリを立ち上げてタッチするといった作業を行わずに声だけで起動することができます。スマホアプリに勝る点があるとしたらそこにあると考えています。
例えばPCで英語論文を執筆しているときに、適切な英単語が思い浮かばなかったときに、声を出すだけで翻訳できればPCから目を離すことなく作業が続けられるので便利ではないでしょうか。
また、応接間に置いておいて外国からの賓客に大して「我が社の通訳です!」と述べて使用して見せたりすればウケたりするかもしれません。(これはスマホとどちらがウケるか分かりませんが)