hiro99ma blog: [googlehome]IFTTTのThatをslackbotで受けとる
これで、IFTTTとslackbotを使って、しゃべった言葉をGoogle Homeがしゃべり返すところまで行った。
あとは、翻訳するサービスで無料のところがあれば、それを挟むだけでよさそうだ、とは思っていたところ、こういう記事があった。
Python – googletransを試してみました。 | Developers.IO
制限があったり、いつまで使えるか分からなかったりするようだが、お遊びでやる分には十分だ。
slackbot側のpython
from slackbot.bot import respond_to from googletrans import Translator
import os.path import subprocess def _bcc_exec(cmd): try: print cmd subprocess.check_output(cmd).strip() except subprocess.CalledProcessError as e: print '!!! error happen(errcode=%d) !!!' % e.returncode @respond_to('(.*)') def talk_to(message, params): print params translator = Translator() j2e = translator.translate(params.replace(' ', '')).text print j2e cmd = ['node', os.path.expanduser('~/NodeJs/google-home-notifier-test/slacktalke.js'), '\"' + j2e + '\"'] _bcc_exec(cmd)
google-home-notifier-testのjs側(slacktalke.jsという名前で呼び出している)
var googlehome = require('./google-home-notifier'); var speech; if (process.argv.length >= 2) { speech = process.argv[2]; } else { speech = 'I asm slackbot.'; } googlehome.device('something', 'en'); googlehome.ip('xx.xx.xx.xx'); googlehome.speed(1.0); googlehome.notify(speech, function(res) { console.log(res); });
IFTTTは、Google AssistantとSlackをつないで、SlackはDirect Messageで作ったslackbotの名前を指定し、MessageでTextFieldを渡すだけだ。
Google Cast APIを使っているので、nodejsはローカルPCで動くようにせんといかんし、nodejsの実行をパス指定で行っているからslackbotもローカルPCで動かさんといかん。
まあそこら辺は素人なので、詳しい人はうまいことやるだろう。
slackbotをnodejsで動かせるか、google-home-notifierのpython版があれば分けなくてもよいのだが、まあいいや。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。