【Google Home】Google Homeにテキストを読み上げさせたい【その2】

前回の投稿から随分立ってしまったのですが、今日は、前回Google Homeにテキストの読み上げをしてもらうプログラムをWebアプリ化してみようと思います。今回も環境はRaspberry Pi Zeroで、OSはjessieです。

Expressのインストール

ExpressはNodeで簡単にWebサーバーを建てられるモジュールです。前回の記事の最後のほうで書いた、read.jsの置いてあるディレクトリに移動します。そしたら以下のようにExpressをインストールします。

$ npm install express

body-parserのインストール

次にbody-parserをインストールします。Google Homeに読み上げてもらいたいテキストをPOSTするのですが、そのrequestの値を取得するために使います。次のように入力しbody-parserをインストールします。

$ npm install body-parser

read.jsの書き換え

以下のようにread.jsを書き換えます。非常に短いコードで簡単にWebサーバーが立ち上げられるのがいいですね。楽ちんです。

var googlehome = require('google-home-notifier');
var language = 'ja';

var express = require('express'); // Expressを読み込みます
var bodyParser = require('body-parser'); // body-parserを読み込みます

var app = express(); // Expressをインスタンス化します

googlehome.device('Google Home', language);

app.use(bodyParser.urlencoded({ extended: true })); // とりあえずおまじない
app.use(bodyParser.json()); // とりあえずおまじない

app.post('/google', (req, res) => { // googleってurlが叩かれたときにどうするか・・・の記述
    var body = req.body;
    googlehome.notify(body['text'], resg => { // 前回はべた書きだったテキストをリクエストの中から取り出すようにしています
        console.log(resg);
        res.send(resg + '\n');
    });
});

app.listen(3000, () => { // ポート3000でWebサーバーを立ち上げます
    console.log('Start web service...')
});

やってみよう!!

まずは前回同様read.jsを起動します。

$ node read.js

前回は、ここで「ドゥルルン」でしたが、今回はちょっと違いますね。Webサーバーが起動し待受状態になります。そしたら、以下のようにURLを叩いてみましょう。

$ curl -H 'Content-Type:application/json' -d '{"text":"Hello World!!"}' http://localhost:3000/google

どうでしょう? 「ドゥルルン」来ました? 言語を日本語にしているので、「はろー わーるど」って棒読みしてくれますね。
さあ、これでいろいろtextの”Hello World!!”の部分を書き換えてあげれば、いろいろ自在に読み上げさせることができますね。
ではまた。

関連記事

【Swift】UIViewControllerでStatic CellsのTab...

【Raspberry Pi】Raspbian StretchからRaspbian...

【Swift】Cannot use mutating member on imm...

Atomでterminal-plusが動かなくなったときの対処法

【Swift4】Stringイニシャライズ時のエラー

【Objective-C】'void (^ _Nonnull __strong)...