Chapter 08

付録:Speak Blockでのオーディオ再生

kun432
kun432
2020.10.06に更新

Voiceflowでオーディオを再生させる方法はStream Blockだけ?

日本語チュートリアル①を実施された方ならもうご存知かと思いますが、Voiceflowでオーディオを再生させる方法は他にもあります。

  • Speak BlockでSSMLのaudioタグを使う
  • Speak Blockにmp3ファイルをアップロードする
  • Speak Blockにmp3ファイルのURLを指定する

すべてSpeak Blockで行う方法です。では、Speak Blockで行う場合とSream Blockで行う場合は何が違うのでしょうか?

Speak BlockとStream Blockの違い

再生できる時間が違う

Speak Blockで使えるオーディオには制限があります。

  • 1回の応答で、
    • オーディオファイルは5つまで。
    • 合計240秒まで。

1回の応答というのは、最後にユーザが発話したあと、次のユーザの発話が来るまでの、Alexaの発話のことです。Voiceflowだとブロックを並べる形になるのでちょっとわかりにくいかもしれません。例で説明します。

最初にユーザの発話があって、Speak BlockでAlexaが発話して、その後、Choice Blockでユーザの発話が発生します。この間に、オーディオファイルが5個以上 or 合計240秒以上、あった場合はエラーになります。

もう一つ、少しわかりにくいケースです。

Speak Blockが複数になっていますが、ここはまとめて1回の発話となります。したがって最初の例と同じです。

それに対し、Stream Blockでは再生時間に制限はなく、ストリーミングで配信されます。上記のような1回の発話における制限もありません。

使い方が違う

であれば、全部Stream Blockにすれば何も気にしなくてもよい、と思うかもしれませんね。Stream Blockの場合には以下の制限があります。

  • オーディオの再生が始まると、Amazon Echoに組み込まれたオーディオプレイヤー機能があとの処理を引き継ぎ、一旦スキルとの接続は終了する。
  • オーディオの再生中は、オーディオプレイヤーの操作を行うインテントだけが有効になる。つまり、自由な会話を継続することができない。

Speak Blockの場合は、会話のフローに従って再生されますし、セッションも維持されます。インテントも自由に呼び出せます。つまり、「用途」が違うのですね。単純に再生時間が違うわけではないという点に注意してください。

まとめ

まとめるとこんな感じです。

項目 Speak Block Stream Block
再生時間・ファイル数 Alexaの1回の発話で合計240秒・合計5ファイルまで 制限なし
スキルの特徴 会話をメインとしたスキル オーディオ再生をメインとしたスキル
オーディオ用途 会話中の効果音として使う。 オーディオがメインのコンテンツになる

これらの違いを意識した上で、Speak BlockとStream Blockのどちらがよいかを検討してください。

Speak Blockで使用できるオーディオファイルのフォーマットについて

オーディオファイルをSpeak Blockで使う場合にも、AudioPlayer同様、再生可能なオーディオファイルのフォーマットが決まっていますが、Speak Blockの場合は、アップロード時にVoiceflowが自動的にAlexaに最適なフォーマットに変換してくれますので、基本的に気にする必要はありません。

ただし、まれに変換できない場合もありますので、その場合は以下をご確認いただき、各種ツールにて事前に変換を行ってください。

https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html#audio

https://developer.amazon.com/ja-JP/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html#h3_converting_mp3