[2019/06/11]
Voiceflowで使うBlockの用途が分からなかったので、実際に使ってみて概要を整理。
Blockのヘルプにオフィシャルの解説動画があるので、時間がある人はそっちを見たほうが理解が深まると思います。
途中だけど投稿。
[2019/06/21]
userinfo,permission,paymentを更新
Basic
Speak
Alexaのターン。Alexaが話すことばを定義します。
声色も選択可能で、ドロップダウンからAmazon Polyで選べる声色を選べます。
また、音声ファイルも流すことができます。
音声ファイルは、URLで指定するか、アップロードします。
Choice
ユーザーのターン。ユーザーの発話と分岐を定義します。
定義された発話と実際の発話が合致した場合に、関連づいたブロックに処理が移ります。
定義する発話のシノニムも指定できるため、同じ意味の内容をグルーピングすることで発話ゆれを吸収することができます。
Logic
Set
変数に値をセットします。
数値でも文字列でも設定可能です。また、計算式の結果を設定することもできます。
しかし、このSetブロックの定義内で計算結果を設定するのは結構しんどかったです。
ポリシーにもよると思いますが、計算結果を設定するのであれば、あとで出てくるCodeブロックを使うことをお勧めします。
If
変数を使った条件分岐です。
定義方法はSetブロックに近いです。
複数の条件を定義でき、合致する条件に関連づいたブロックに処理が移ります。
条件分岐の数がビジュアルに反映されるので、どれだけ分岐しているのか一目瞭然でわかりやすいです。
Capture
ユーザーのターン。ユーザーの発話を変数で受け取ります。
質問に対する回答を受け取る器のような使い方が良いと思います。
変数の型を指定する必要があるので、期待する型でユーザーが回答しやすいような設問をしておく工夫が必要です。
Random
ランダムな分岐を定義します。
ゲームなどでランダムな結果がほしい場合に使えると思います。
また、それとは別に、スキルが呼び出された場合の挨拶などをランダムにすることで、スキルに厚みが出るんじゃあないかなと考えています。
Advanced
Intent
ユーザーのターン。定義された発話と実際の発話が合致した場合に、関連づいたブロックに処理が移ります。
事前にスロットを定義しておくことで、スロットを使ったシノニムの定義ができます。
また、Choiceが、前のSpeakブロックのリプライを処理するタイプで複数の分岐を定義できるのに対し、Intentは、前のブロックは不要で会話のスタートにも使えます。ただし、こちらは分岐は定義できず、発話が合致しなければそもそも呼ばれません。(多分)
Intaraction
ユーザーのターン。定義された発話と実際の発話が合致した場合に、関連づいたブロックに処理が移ります。
ChoiceとIntentとcaptureを合体した感じに近く、スロットを使った発話内容での条件分岐が定義できます。Choiceでは発話の内容を変数に取ることはできませんが、Intaractionでは、発話内のスロット部分を変数に取ることができます。
Stream
音声ファイルを流すことができます。
わかりにくかったのは「next」「previos」の遷移条件です。
音声ファイルを最後まで聞いた後に「next」には遷移しません。音声ファイルの再生中に「次!」「前!」と発話することで、それぞれ「next」「previos」に関連づいたブロックへ遷移します。
Integrations
外部サービスとの連携が可能です。
voiceflowが準備しているAPIを使うか、自分でRESTで連携するか選べます。
現時点では、voiceflowが準備しているAPIは少ないですが、これから色々なサービスが続々と実装されそうです。
Flow
関数定義です。入力パラメータと出力パラメータを定義でき、プロジェクト変数とFlowの変数の関連づけができます。
Flow内の操作は、通常の操作を変わりありません。
Code
JavaScriptのロジックを書けます。
Setブロックでは、Math等の組み込み関数が使えませんでしたが、こちらでは使えます。
プロジェクト変数も参照することができますが、ちょっとハマったのでメモしておきます。
CanvasのVariablesで宣言した{name}
という変数を参照する場合、Codeブロックではname
と書きます。
{}
で括ったり、${}
のようにしてみても参照できませんので気をつけてください。
Exit
スキルを終了します。
Visuals
Card
調査中
Display
調査中
User
User Info
ユーザー情報にアクセスします。
スキルに権限がああるかを確認します。権限があれば、「ユーザー名」「メールアドレス」「電話番号」等にを取得でき、リマインダーや通知の機能を使う事ができます。権限が無い場合は次のPermissionを使う事で、スマホ等のアレクサアプリに各機能の利用許可を促す画面を表示します。
Permission
ユーザー情報にアクセスするための許可をユーザに促すため、スマホ等のアレクサアプリに各機能の利用許可を促す画面を表示します。
その画面で権限のON/OFFができます。
Payment
課金機能を設定します。「Alexa Developer Console」のビルドタブの「スキル内商品」に相当します。
日本の課金と同じく「買い切り型」「サブスクリプション型」「消費型」が選択可能です。
しかし、せっかく日本でスキル内課金が可能になりましたが、voiceflowでは、ドル建てでまだアメリカONLYです。
Cancel Payment
調査中
Reminder
リマインダーを使えます。使うには上記のPermissionでリマインダー機能に許可を与える必要があります。
リマインダーには、お知らせする経過時間を指定する「タイマー」と、お知らせする日時を指定する「スケジュール」の2種類があります。
リマインダーでお知らせを設定すると、メッセージと共に音楽が流れます。