Google Homeの名前とIPアドレスを検出する方法

Google Homeの名前とIPアドレスを検出する方法です。

[Signagify 3] Node.js で Sender アプリ作って mDNS + CastV2 で Chromecast とお話 – Qiita」を参考にしました。

ちなみに、Google HomeアプリでIPアドレスを確認できます。

  1. Google Homeアプリを起動します。
  2. アプリのホーム画面の左上にあるメニューをタップします。
  3. 「デバイス」→「設定」→「情報」にIPアドレスが表示されています。

Google-Homeの検出

multicast-dnsを使ってGoogle-Homeを検出します。

multicast-dnsのインストール

次のコマンドを実行して、multicast-dnsをインストールします。

npm install multicast-dns

Google-Homeの名前とIPアドレスを出力します。

var mdns = require('multicast-dns')();

mdns.on('response', function (response) {
    let name = '';
    let ip = '';
    for (const additional of response.additionals) {
        if (additional.type == 'TXT') name = additional.name;
        if (additional.type == 'A') ip = additional.data;
    }
    if (name != '') console.log(`${name}(${ip})`);
});

mdns.query({
    questions: [{
        name: '_googlecast._tcp.local',
        type: 'PTR'
    }]
});

次のコマンドでプログラムを実行します。

nodejs detect.js

実行すると、次のように出力されます。

Google-Home-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX._googlecast._tcp.local(192.168.XX.X)

Google TTS (Text-To-Speech)でテキストを読み上げた音声ファイルを取得する

Google TTS (Text-To-Speech)でテキストを読み上げた音声ファイルをする方法です。

google-tts-apiのインストール

google-tts-apiをインストールします。

npm install google-tts-api --save

音声ファイルのURLを取得する

引数に読み上げる文字列と、言語、読み上げ速度を指定すると、音声ファイルのURLを取得できます。

const googleTTS = require('google-tts-api');

// 読み上げる文字列
const text = 'こんにちは';
// 言語設定
const lang = 'ja-JP';
// 読み上げ速度
const speed = 1;

googleTTS(text, lang, speed).then(function (url) {
  console.log(url);
}).catch(function (err) {
  console.error(err.stack);
});

表示されたURLからmp3の音声ファイルをダウンロードできます。

Windows10を起動したときアプリケーションが最小化しない問題

Windows 10を起動したとき、最小化した状態で起動するはずのアプリケーションが最小化しないという問題があるらしい。

原因は、Windows 10 Fall Creators Updateから、Windows終了時に起動していたアプリケーションを、次回の起動時に再起動するようになったため。

コマンド「shutdown.exe /?」で、shutdown.exeの引数を確認すると、引数「/sg」があることに気づく。

/s         コンピューターをシャットダウンします。
/sg        コンピューターをシャットダウンします。次回の起動時、
           登録したアプリケーションを再起動します。

Windows 10 Fall Creators Updateでは、引数「/sg」が使われていると推測できる。

この機能によって、最小化した状態で起動するはずのアプリケーションが最小化しない現象が引き起こされているようだ。

現象では回避方法はないらしく、「shutdown /s /t 0」でシャットダウンするしかないそうだ。

DCGANを使って画像を生成してみた

DCGANを使って画像を生成してみました。

学習用のデータにはいらすとやの画像を使用しました。
学習に使用したファイルの数はわずか145個ですが、いらすとや風の画像が作られます。

Herokuを使ったのは初めてですが、簡単に使えて便利ですね。
人気があるのも納得です。
これから使っていきたいと思いました。

DCGANやTensorFlowについては、今後ブログで書くかもしれません。