4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

(Clovaに喋らすメソッド編)Lambdaで使える、Clova(CEK)のSDK作ってみた

Last updated at Posted at 2018-07-18

はじめに

No, タイトル
1 (インストールから、ハンドラー作成編)Lambdaで使える、Clova(CEK)のSDK作ってみた
2<<今ここ (Clovaに喋らすメソッド編)Lambdaで使える、Clova(CEK)のSDK作ってみた
3 (スロット、セッション情報取得編)Lambdaで使える、Clova(CEK)のSDK作ってみた

前回は、ハンドラの登録実践しました。
canHandle内でリクエストを判断して、handlerでCEKに返す処理を実行しました。
今回はそのhandler内でClovaに喋らす内容を定義する方法を紹介します。

LaunchRequestHandler

今回は前回紹介したSampleIntentHandlerにて説明をします。

index.js
const SampleIntentHandler = {
  canHandle: function(handlerInput){
    return handlerInput.requestEnvelope.request.type === "IntentRequest"
      && handlerInput.requestEnvelope.request.intent.name === "SampleIntent";
    // return handlerInput.requestEnvelope.isMatch('sampleIntent');
  },
  handle: function(handlerInput){
    var msg = "";
    return handlerInput.responseBuilder.speak(msg).reprompt(msg).getResponse();
  }
}

前回、canHandlehandlerについての説明はしたので省きます。
このSampleIntentHandlerが実行された場合、Clovaは以下のように喋りユーザーに再度応答を求めます、(つまりスキルを終了しません)

SampleIntentが呼ばれた時に返します。

また、ユーザーがしばらく応答をしなかった時再度Clovaが喋る内容が以下になります。

ユーザーがしばらく応答をしなかった時に再度Clovaが喋ります。

speak(msg)

Clovaが喋るテキストを引数に与えます。
上記ですと、msg変数に値します。
後述するrepromptがない場合、Clovaは発話した後にスキルを終了します。

reprompt(msg)

このメソッドを使用した場合、Clovaは発話した後にユーザーの応答を求めます。
つまり、スキルを終了しません。
また、この引数に指定したテキストはユーザーが数秒間応答がなかった時に再度Clovaが喋る内容になります。

audioPlay(url)

speakメソッドでは、引数にテキストを指定しましたが、このメソッドでは流したい音声のURLを指定します。

const URL = "https://audio.....";
return handlerInput.responseBuilder.audioPlay(URL);

audioPlayReprompt(url)

repromptメソッドでは、引数にテキストを指定しましたが、このメソッドでは流したい音声のURLを指定します。

const URL = "https://audio.....";
return handlerInput.responseBuilder.audioPlay(URL).audioPlayReprompt(URL);

合わせて利用する

このspeak,reprompt,audioPlay,audioPlayRepromptはそれぞれ繋げて利用することが可能です。

const audioStart = "オーディオを流します。";
const audioStop = "オーディオを止めます。";
const URL = "https://audio.....";
return handlerInput.responseBuilder
  .speak(audioStart)
  .audioPlay(URL)
  .speak(audioStop)

この例ですと、Clovaは以下のように喋ります。

オーディオを流します。
(オーディオ再生)
オーディオを止めます。
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?