LINEトークをwindows10(NODE.js+google-home-notifier+Firebase)経由でgooglehomeに話させる(2019.12 )
はじめに
windowsPCでLINE投稿内容をgooglehomeを話させてみました。先人達の記載の内容を参考にさせていただきました。ありがとうございます。
node v12.13.1
npm v6.12.1
google-home-notifier v1.2.0
windows 10pro
windowsにNODE.js環境
下記を参考にNODE.js環境を構築して、googlehomenotifierを導入します。
Windows PCを使ってGoogle Homeを喋らせてみた
すべてを[C:\Program Files\nodejs]下でインストール。
作業フォルダ配下にするべきでしたが、やりなおす気にはなれず。。
warningがたくさん出ましたが気にせず、進みました。
googlehomenotifier修正
下記を参考に修正
①google-home-notifierで"Error: get key failed from google"とエラーが出る問題の対処法
②Raspberry PiからGoogle Homeを喋らせる
①cd node_modules/google-home-notifier
package.jsonを修正
"google-tts-api";"0.0.3"
⇒"google-tts-api";"0.0.4"
npm update google-tts-api
【2020.12追記】
google-tts-apiが裏で何度も更新されるようです。うちの環境では、0.0.4への適用はできましたが、それ以降へは適用(アップデート)できなくなりました。
"google-tts-api";"0.0.3"
⇒"google-tts-api";"0.0.X"
npm update google-tts-api
そのため、直接ファイルを落として上書きさせるとしゃべるようになりました。
(下記は0.0.4の場合)
https://registry.npmjs.org/google-tts-api/-/google-tts-api-0.0.4.tgzリンク先は、うちの環境で下記フォルダのpackage-lock.jsonに記載されています。
C:\Program Files\nodejs\node_modules\google-home-notifier
うちの環境で、下記フォルダを上書きしました。
C:\Program Files\nodejs\node_modules\google-home-notifier\node_modules\google-tts-api
②cd node_modules/mdns/lib
browser.jsを修正
rst.DNSServiceGetAddrInfo()
⇒rst.getaddrinfo({families:[4]})
LINE API設定
下記を参考にLINE developerのLINE APIを設定する。GUIが少し変更されている。
Google Home でLINEのメッセージを”おしゃべり”双方向通信(コミュニケーション)をしてみよう.
Messaging API settings
・use Webhook:enable
・Webhook URL:https://XXXXXXXXXXXXXXXXXX.firebaseio.com/line.json ※後述
・Allow bot to join group chats :Enabled
・QRコードからline-botを自分のline友達に追加
Firebase設定
下記を参考に、Firebaseを設定する。
新着メールを知らせてくれるGoogle Home
開発タブ内のDatabaseのルール設定では選択式で下記を選択。
{
"rules": {
".read": true,
".write": true
}
}
config情報は後述のjsで使用する。
下記をインストールする。
npm install firebase
npm install superagent
コード
Google HomeにLINEのメッセージを読み上げさせる(LINE BOT+Webhook+Firebase+Node.js)
新着メールを知らせてくれるGoogle Home
以上のサイトをほぼ参考にさせていただいております。ありがとうございます。
この他には、
JavaScript でのインストールと設定
firebase. database. Reference
が参考になります。
var request = require('superagent');
var firebase = require("firebase");
var googlehome = require('./node_modules/google-home-notifier');
var language = 'ja';
googlehome.device('Google-Home', language);
function googlehomespeak(text) {
googlehome.notify(text, function(res) {
console.log(res);
});
}
// Set the configuration for your app
// TODO: Replace with your project's config object
var config = {
apiKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
authDomain: "XXXXXXXXXXXXX.firebaseapp.com",
databaseURL: "https://XXXXXXXXXXXX.firebaseio.com",
projectId: "XXXXXXXXXXXXX",
storageBucket: "XXXXXXXXXXXXX.appspot.com",
messagingSenderId: "XXXXXXXXXXXXX"
};
firebase.initializeApp(config);
// Get a reference to the database service
var database = firebase.database();
// Find the two shortest dinosaurs.
// var ref = firebase.database().ref("dinosaurs");
var ref = firebase.database().ref('/line');
ref.on("child_added", function(snapshot) {
// This will be called exactly two times (unless there are less than two
// dinosaurs in the Database).
// It will also get fired again if one of the first two dinosaurs is
// removed from the data set, as a new dinosaur will now be the second
// shortest.
var data = snapshot.val();
snapshot.ref.remove();
var text = data.events[0].message.text;
console.log(snapshot.key);
googlehomespeak(text);
});
送信テスト
Lineの友達にline-botを追加してグループを作成し、トークしてGoogleHomeが話すか確認する。
Author And Source
この問題について(LINEトークをwindows10(NODE.js+google-home-notifier+Firebase)経由でgooglehomeに話させる(2019.12 )), 我々は、より多くの情報をここで見つけました https://qiita.com/atsuc1978/items/ff5a764cecfcc2311460著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .