Alexa スキルで長く待つ

2019年12月27日

はじめに

Alexa スキルだとユーザーの返事をせいぜい 7 秒くらいしか待たない。これをもっと長く待ちたい。

Alexa スキルで長く待つ

どうもセキュリティ的な問題で長く待つのは無理らしいが、長く発話させることはできる。つまり、長い無音を発話させればよいらしい。SSML の <break> タグで間をとれるので、これを使えばよいようだが、あまり長くは出来ないようで、必要な時間だけ繰り返してやる必要がある。

const waitTime = 300; // [s]

function waitResponseMessage() {
    let speechText = '<break time="0.5s"/>Alexa、のあとになにか言ってください。';

    for (let i = 1; i <= Number(waitTime/10); i++) {
        speechText += '<break time="10s"/>';
    }

    return speechText;
}

あくまで無音の発話なので、Alexa に話しかけるためには「Alexa」と呼びかけて中断してやる必要がある。

5 分程度なら大丈夫そうだが、10 分などとするとスキルの動作がおかしくなることがあり、この方法では限界がありそうである。

参考