SKILL的编写安装部署的攻略 📅 2026/7/22 13:56:29 以下是以主流智能语音助手如 Amazon Alexa / 百度 DuerOS的SKILL语音技能为例的编写、安装与部署全流程攻略。语音技能SKILL相当于语音助手上的“小程序”它的核心逻辑是将用户的自然语言转化为代码可执行的意图Intent并返回相应的语音或视觉反馈。一、 系统架构设计在开始编写之前需要理解 SKILL 的整体系统流转架构。通常包含三个核心节点终端设备、语音云平台处理 NLU/NLP和后端服务你的代码逻辑。数据库/第三方API技能后端 (Lambda/Webhook)语音云平台 (Alexa/小度云)智能音箱/设备用户 (User)数据库/第三方API技能后端 (Lambda/Webhook)语音云平台 (Alexa/小度云)智能音箱/设备用户 (User)唤醒并发出指令 (打开我的技能)上传语音音频流语音识别(ASR) 自然语言理解(NLU)发送解析后的 JSON 请求 (Intent Request)读写数据或请求第三方接口返回数据返回 JSON 响应 (包含待播报的 SSML/纯文本)文本转语音 (TTS)下发音频流播放语音响应二、 环境与账号准备要开发和部署 SKILL你需要准备好开发者账号和本地开发环境。以 Node.js 和 CLI 工具为例注册开发者账号前往相应平台如 Amazon Developer Console 或 百度技能开放平台注册账号。可选注册云服务提供商账号如 AWS用于部署 Lambda 函数。安装本地环境安装Node.js建议 LTS 版本如 18.x 或更高。安装Git。安装命令行工具 (CLI)如果你开发的是 Alexa Skill需要安装 ASK CLInpminstall-gask-cli ask configure# 绑定你的开发者账号三、 SKILL 编写与工程初始化1. 初始化项目使用 CLI 工具快速生成项目模板代码ask new# 按照提示选择 Node.js - Hello World 模板 - 命名为 MyFirstSkill2. 定义交互模型 (Interaction Model)交互模型定义了用户可以说什么Utterances以及这些话映射到哪个意图Intent。在models/zh-CN.json或en-US.json中配置{interactionModel:{languageModel:{invocationName:我的测试技能,intents:[{name:HelloWorldIntent,slots:[],samples:[你好,打个招呼]},{name:AMAZON.HelpIntent,samples:[]}]}}}3. 编写后端逻辑代码后端主要负责接收 Intent 并返回响应。在lambda/index.js中编写核心处理逻辑constAlexarequire(ask-sdk-core);// 1. 处理启动请求 (LaunchRequest)constLaunchRequestHandler{canHandle(handlerInput){returnAlexa.getRequestType(handlerInput.requestEnvelope)LaunchRequest;},handle(handlerInput){constspeakOutput欢迎使用我的测试技能你可以对我说“你好”来开始。;returnhandlerInput.responseBuilder.speak(speakOutput).reprompt(speakOutput).getResponse();}};// 2. 处理自定义意图 (HelloWorldIntent)constHelloWorldIntentHandler{canHandle(handlerInput){returnAlexa.getRequestType(handlerInput.requestEnvelope)IntentRequestAlexa.getIntentName(handlerInput.requestEnvelope)HelloWorldIntent;},handle(handlerInput){constspeakOutput你好世界你的技能已经成功运行了。;returnhandlerInput.responseBuilder.speak(speakOutput)// 不加 reprompt 则代表对话结束技能退出.getResponse();}};// 3. 注册 Handlers 并导出exports.handlerAlexa.SkillBuilders.custom().addRequestHandlers(LaunchRequestHandler,HelloWorldIntentHandler).lambda();四、 部署与安装将本地写好的交互模型和后端代码部署到云端。1. 代码打包与依赖安装进入 lambda 目录确保所有依赖已安装cdlambdanpminstallcd..2. 执行全量部署使用 CLI 将模型部署到开发者控制台并将后端代码部署到 Serverless 环境如 AWS Lambdaask deploy部署完成后CLI 会返回技能的Skill ID和后端服务的Endpoint ARN这标志着技能已经安装到了你的开发者账号下。3. Webhook 模式配置可选如果你不使用 Serverless 服务而是部署在自己的服务器上如 Express/Koa在你的服务器端暴露一个 HTTPS POST 接口。确保你的 SSL 证书是受信任的部分平台允许开发阶段使用自签名证书。在开发者控制台的Endpoint选项中将类型从 AWS Lambda 切换为 HTTPS并填入你的 URL。五、 测试与调试技能部署后需要进行充分的测试才能上架。1. 模拟器测试在开发者控制台的Test标签页中开启 “Development” 模式。你可以直接在网页端输入文字如“打开我的测试技能”或使用麦克风说话观察右侧返回的 JSON Request 和 JSON Response 是否符合预期。2. 真机测试确保你的智能音箱设备与你的开发者账号绑定。唤醒设备并说出你定义的调用名称“打开我的测试技能”。查看后端日志如果使用 AWS Lambda则通过 Amazon CloudWatch 查看console.log输出的报错信息。六、 提审与上线发布完成开发和测试后需要将技能发布给所有用户使用。完善商店信息在控制台的Distribution标签页中填写技能的名称、描述、图标大/小两版、隐私政策 URL 以及适用年龄段。隐私与合规检查确保你的技能没有在未声明的情况下收集用户的敏感个人信息如精确位置、支付信息等。提交审核 (Certification)运行内置的验证工具ask dialog# 本地交互对话测试ask smapi simulate-skill# API自动测试确认无误后在控制台点击Submit for Review。平台通常会在 1-3 个工作日内完成审核并自动上架。