スマートスピーカー3機種でお互いを起動させてみた

###動機
LINEのAIアシスタント「Clova」に搭載されるスキルを開発・拡張できる「Clova Extensions Kit」を一般公開されました。
せっかく実機が3種類揃ったので、お互いを呼び出して起動させてみました。

###分かった事
・Alexaは、他のスマートスピーカーからの発話では、起動しない。
試行回数がたかだが一桁なのですが、Google Home やClovaの発話では起動しませんでした。自宅でよく使うのはAlexaなので、私の声を学習したのでしょうか。正確な理由は分かりません。
・Google Homeのテストアプリの前置きを消す方法が分からない。
「～のテストバージョンです」という前置きを消す方法が分からなかった。

###実例
以上により、起動順は、Amazon Echo →　Google Home →　LINE Clovaとしました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">スマートスピーカー女声合唱です。 <a href="https://twitter.com/hashtag/AmazonEcho?src=hash&amp;ref_src=twsrc%5Etfw">#AmazonEcho</a> <a href="https://twitter.com/hashtag/GoogleHome?src=hash&amp;ref_src=twsrc%5Etfw">#GoogleHome</a> <a href="https://twitter.com/hashtag/LineClova?src=hash&amp;ref_src=twsrc%5Etfw">#LineClova</a> <a href="https://twitter.com/hashtag/%E3%82%B9%E3%83%9E%E3%82%B9%E3%83%94?src=hash&amp;ref_src=twsrc%5Etfw">#スマスピ</a> <a href="https://twitter.com/hashtag/%E3%81%93%E3%81%AE%E5%A4%A2%E3%81%8C%E6%9C%AA%E6%9D%A5?src=hash&amp;ref_src=twsrc%5Etfw">#この夢が未来</a> <a href="https://t.co/Cve7cIiq35">pic.twitter.com/Cve7cIiq35</a></p>&mdash; 風の民@たつき監督降板に抗議するフレンズ (@allforbigfire) <a href="https://twitter.com/allforbigfire/status/1018675168401448961?ref_src=twsrc%5Etfw">2018年7月16日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

なお、一時期、朝礼の度に聞かされていた曲を選曲しました。他意はないです。

###コード
Amazon Echo

```
'use strict';
var Alexa = require('alexa-sdk');

var APP_ID = undefined;
 
var SKILL_NAME = "この夢が未来";
var GET_FACT_MESSAGE = "";
var HELP_MESSAGE = "終わりたい時は「おしまい」と言ってください。どうしますか？";
var HELP_REPROMPT = "どうしますか？";
var STOP_MESSAGE = "さようなら";

exports.handler = function(event, context, callback) {
    var alexa = Alexa.handler(event, context);
    alexa.APP_ID = APP_ID;
    alexa.registerHandlers(handlers);
    alexa.execute();
};
 
var handlers = {
    'LaunchRequest': function () {
        this.emit('SingIntent');
    },
    'SingIntent': function () {
        var Lyrics = data;
        var speechOutput = GET_FACT_MESSAGE + Lyrics;
        this.emit(':tell', 'OK, Google <break time="1s"/>この夢が未来を起動して。<break time="10s"/>。<break time="2s"/>（歌詞）');
        //this.emit(':tellWithCard', speechOutput, SKILL_NAME, Lyrics);
    },
    'AMAZON.HelpIntent': function () {
        var speechOutput = HELP_MESSAGE;
        var reprompt = HELP_REPROMPT;
        this.emit(':ask', speechOutput, reprompt);
    },
    'AMAZON.CancelIntent': function () {
        this.emit(':tell', STOP_MESSAGE);
    },
    'AMAZON.StopIntent': function () {
        this.emit(':tell', STOP_MESSAGE);
    }
};
```

Google Home

```
const functions = require('firebase-functions');
const { dialogflow } = require('actions-on-google');

const app = dialogflow();

const callStr1 = "ねえクローバー、。。。。。。。。。。。。この夢が未来を起動して。";
const data = "。。。。。。。。。。。。(歌詞)";

const SpeakOut = callStr1 + data;

app.intent('Default Welcome Intent', conv => {
    conv.close(SpeakOut);
});

exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
```

LINE Clova

```
'use strict';

exports.handler = function (event, context, callback) {
    var response = {
        statusCode: 200,
        headers: {},
        body: ""
    };

    var data = "（歌詞）";
    const speechText = data;

    var responseJson = JSON.stringify({
        "version": "1.0",
        "response": {
            "outputSpeech": {
                "type": "SpeechList",
                "values": [
                    {
                        "type":"PlainText",
                        "lang":"ja",
                        "value": speechText
                    }
                ]
            },
            "card": {},
            "directives": [],
            "shouldEndSession": true
        }
    });

    response.body = responseJson;

    callback(null, response);

};
```

コードは見ていただければ分かるように、諸先輩方が投稿されたのとほとんど同じです。

###雑感
一挙にスマートスピーカー三大勢力が揃いました。乗るしかない、このビッグウェーブに！！
それにしても、AppleのSiriとMicrosoftのCortanaが、後塵を期すとは思いませんでした。