AlexaスキルのSSMLレスポンスサイズ(厳密にはoutputSpeechサイズ)の上限は8000文字

AlexaスキルのSSMLレスポンスサイズに上限があってちょっとはまりました。

スキルがリクエストに正しく応答できませんでした

ちなみにレスポンスの内容は意図したものとなっています。(省略しているspeckタグ内の内容も)

{

"body": {
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>******* 省略(かなり長い) **********</speak>"
},
"shouldEndSession": false
},
"sessionAttributes": {}
}
}

色々と試した結果、レスポンスサイズに上限があるらしいと推定できましたがSSMLの公式リファレンスに該当する記載を見つけられず、日本語では該当仕様をググれませんでした。(私の検索スキルが低いのも原因)

結局、英語版stackoverflowの"Alexa skill SSML max length"というスレッドに記載されていました。

ただ古いスレッドなので最新でも同じか確認しようとして同スレッドに記載されていた引用元を参照したらリンク切れでした。

そこで記載されていたキーワードを頼りに該当するリファレンスを探してみたところやっとみつけました。

応答の形式 | カスタムスキルのJSONインターフェースのリファレンス | Custom Skills

やはりssml部分が大きすぎたのが原因でした。


  • outputSpeech応答は、8,000文字以内でなければなりません。

  • 応答の合計サイズは24キロバイト以内でなければなりません。

というか、もっとわかりやすいエラーメッセージ出してほしいですね。(T_T)


その他の関連URL

outputspeechオブジェクト