2017/11/19

[googlehome]英語でしゃべってもらう

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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。