動かなくなりがちな Google Home Notifier の対応 (20181221)

もうじきクリスマスですね。 子供に半額の Google Home を買って帰って、ちょちょっとコードを書いて見せて「パパすごーい」といわれるご家庭も多いかと思う年の瀬です。

ちなみに我が家には2つ Google Home があり、アプリ書いてデバッグしてたら妻に「おまえ、ずっとおんなじこと言ってんなぁ」と言われて投げ出しました

そんな、 Google Home ですが RasPi (Node.js) と組み合わせると自発的にはなせます。(こことかググれば一杯出てきます)

これを使えば「宿題やったか?」「風呂入ったか?」「歯、磨けよ」と子供に指示を出せるのではないかと試そうとしてみたんですが、調べるにつれ、いろいろと動かなくなりがちな Google Home を喋らせるようにするやつ(2018/12/21版)です。

1. Google の非公式翻訳 API のパラメタが変更されました。

https://stackoverflow.com/questions/32053442/google-translate-tts-api-blocked

  return host + '/translate_tts' + url.format({
    query: {
      ie: 'UTF-8',
      q: text,
      tl: lang || 'en',
      total: 1,
      idx: 0,
      textlen: text.length,
      tk: token(text, key),
      client: 't',
      prev: 'input',
      ttsspeed: speed || 1,
      client: 'tw-ob'
    }
  });

node_modules/google-tts-api/lib/api.js

このように client: 'tw-ob' をつけると動くようになります。

2. Google が払い出してる(払い出していない) TKK のフォーマットが変わりました

html から正規表現でピックアップしているところを下記のようにいじれば取れるようになります

      var m = html.match(/TKK:\'([0-9]+.[0-9]+)\'/gi);
      TKK = `TKK=${m[1]}`;

node_modules/google-tts-api/lib/key.js

3. node-gyp とかめんどくさいので mdns-js に変更する

google-home-notifier は mdns という dns のモジュールを使っているのですが、手元の node11 on docker で試すところんだので、遠くに毛刈りに行くのではなく、手元のなにかで代替しました。

package.jsonmdnsmdns-js にしてインストールし直しましょう

社内利用

こどもにドヤする記事を業務時間に書くのもどうかと思うので社内利用としては

  1. HAROiD はテレビの裏側にいることが多いのですが、番組案件スケジュールをお知らせしてくれる (現在は Slack には流れてるけどオフィスに伝えるのは良いのではないかと思っています)
  2. Receptionistを導入して Slack 連携もしているんですが、人事総務から「誰が来たとしても3回スヌーズが来たらでなさい」と全く正論のお言葉を頂いたのでお知らせする
  3. 打ち合わせの時間を教えてくれる(これは正直うざいかなぁとは思う

Happy Hacking!

We are hireing

HAROiD ではテレビとウェブをつないだシングルパネルでの視聴ログを分析/活用し、よりより視聴体験を提供するお仕事ができます。
日本には全国5800万世帯/関東1800万世帯あり、平均テレビ台数が約2.2台、インターネットのテレビ結線率が全国2割/関東3割と、データが沢山あります。 どの番組を見てる人がどの番組をみているか、などなどアイデア次第で面白い分析レポートを作成し、放送局さんとお話ができます!

ぜひこちからご応募ください!

wantedly