You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Alexa APL中AlexaTextList的speakList命令正确使用方法

SpeakList命令无法播报列表语音的修复方案

核心问题点

  • SpeakList的count参数配置错误:当前列表实际仅3个条目,配置count=6会导致命令遍历到不存在的条目时直接中断语音逻辑,仅保留滚动行为
  • speechItems绑定值无效:AlexaLists组件的speechItems要求传入经textToSpeech转换后的SSML语音内容数组,当前代码绑定的是未转换的纯文本数组,转换器生成的语音结果完全没有被引用,列表子项拿不到有效speech属性自然无法播报
  • 命令触发时序不对:根容器onMount执行时,AlexaLists内部子列表项还未完成渲染,且前序开场语音播报未结束,直接触发SpeakList时子项的语音属性还未绑定完成

具体修复步骤

  1. 调整dataSources的转换器配置,将speakItems数组的语音转换结果直接输出到原speakItems字段,替换纯文本内容
  2. 修正SpeakList命令的count参数,和实际列表条目总数保持一致
  3. 调整onMount命令执行逻辑,在前序开场播报后增加短延迟,等待列表渲染完成再触发SpeakList

修正后代码片段

dataSources 转换器部分修正

"transformers": [
    {
        "inputPath": "textToSpeak",
        "transformer": "textToSpeech",
        "outputName": "outputSpeech"
    },
    {
        "inputPath": "speakItems",
        "transformer": "textToSpeech",
        "outputName": "speakItems"
    }
]

其余dataSources配置不需要改动,转换完成后payload.data.properties.speakItems会自动替换为对应SSML语音数组,和APL里的绑定路径完全匹配

APL文档onMount部分修正

"onMount": [
    {
        "type": "SpeakItem",
        "componentId": "firstSpeak"
    },
    {
        "type": "Sequential",
        "commands": [
            {
                "type": "Delay",
                "delay": 100
            },
            {
                "type": "SpeakList",
                "componentId": "itemsList",
                "start": 0,
                "count": 3,
                "minimumDwellTime": 800,
                "align": "center"
            }
        ]
    }
]

其余APL配置不需要改动,AlexaLists组件原有的speechItems绑定路径无需调整

验证提示

如果修改后仍有问题,可以给AlexaLists组件绑定onScroll事件打印子项属性,确认每个列表子项的speech字段为<speak>标签包裹的SSML内容,如果是纯文本则说明转换器配置或绑定路径仍有错误。

内容的提问来源于stack exchange,提问作者pwzero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:15:44