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

如何开发基于邮编/城市查询并播放电台的Alexa技能?

开发Alexa NPR技能的分步指导

一、完善邮编/城市输入的意图处理

  • 给ZiporCityIntent补充足够的样本 utterances,比如"我的邮编是{zip}"、"我在{city}"、"{zip}"、"{city}",覆盖用户直接报信息、带前缀说明的各种输入场景,提升槽位识别准确率。
  • 增加槽位合法性校验:对{zip}做5位数字格式验证,对{city}做非空、非特殊字符校验,遇到无效输入直接返回提示:"麻烦输入有效的5位邮编或城市名称哦"。
  • 处理槽位缺失:如果Alexa没捕获到有效槽位(比如用户说"我在附近"),触发追问逻辑,引导用户明确输入。

二、对接电台数据查询逻辑

  • 搭建电台数据源:可以调用NPR公开的电台查询接口(如果有),或者自己维护一份邮编/城市与对应电台的映射表(适合初期测试),数据要包含电台名称和音频流URL两个核心字段。
  • 编写查询函数:在技能后端(Node.js/Python等)实现查询逻辑,示例代码(Python):
def fetch_stations(location):
    # 模拟数据源查询
    station_map = {
        "44691": [{"name": "radio1", "stream_url": "http://example.com/radio1"}, 
                  {"name": "radio2", "stream_url": "http://example.com/radio2"}],
        "纽约": [{"name": "NYC NPR", "stream_url": "http://example.com/nyc-npr"}]
    }
    return station_map.get(location, [])
  • 无结果处理:如果查询返回空列表,返回提示:"抱歉,暂时找不到该地区的NPR电台,请换个邮编或城市试试"。

三、实现电台选择交互

  • 存储会话数据:查询到电台列表后,将其存入Alexa的会话属性(session attributes)中,避免用户选择时重复查询。
  • 创建电台选择意图:新增SelectRadioIntent,添加{radio_name}槽位,并把当前会话中的电台名称设为槽位的自定义同义词,确保Alexa能精准识别用户说出的电台名。
  • 播报选项逻辑:查询到结果后,按格式播报:"该地区有{count}个电台:{names},您想播放哪一个?",其中{count}是电台数量,{names}是用"和"连接的电台名称列表。

四、音频播放功能实现

  • 使用Alexa AudioPlayer接口:用户选择电台后,从会话属性中取出对应音频流URL,构造播放指令。示例代码(Node.js):
const playDirective = {
    type: 'AudioPlayer.Play',
    playBehavior: 'REPLACE_ALL',
    audioItem: {
        stream: {
            url: selectedStation.stream_url,
            token: selectedStation.name,
            offsetInMilliseconds: 0
        }
    }
};
return handlerInput.responseBuilder
    .addDirective(playDirective)
    .speak(`正在为您播放${selectedStation.name}`)
    .getResponse();
  • 补充播放控制意图:添加AMAZON.PauseIntent、AMAZON.ResumeIntent、AMAZON.StopIntent的处理逻辑,支持用户暂停、继续、停止播放。

五、会话状态管理

  • 标记会话阶段:通过会话属性记录当前流程节点,比如stage: "waiting_for_location"或stage: "waiting_for_radio_selection",避免流程混乱。
  • 支持断点续连:用户中途退出再进入技能时,读取会话属性中的历史数据,询问用户:"是否继续播放上次的电台,还是更换地区?"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:15:33