一、前言:为什么选择基于小智进行开发

过去的智能音箱,大多只是“播放音乐 + 开灯关灯”的语音工具,而小智 AI 智能音箱的 MCP 能力,让它变成了一个真正可扩展的开发平台。

在这里插入图片描述

它的特点很鲜明:

  • 提供完整 SDK,支持自定义语音技能
  • 对话能力可训练,可配置意图词
  • 支持控制指令下发,可扩展智能家居与企业内部系统
  • 本地响应 + 云端能力结合,性能稳定
  • 对开发者特别友好:文档清晰、环境搭建简单

这意味着它已经不只是一个“音箱”,而是一个语音交互设备终端,你可以基于它构建:

  • 企业内部智能助手
  • 多场景智能家居控制系统
  • 私人定制语音工具(比如语音 Todo、个人秘书)
  • 儿童教育/陪伴交互系统
  • 办公自动化语音入口

而这篇文章,就是带你 从零到可用,一步一步构建一个真正可上线的“小智语音技能”。


二、开发环境准备(MCP 环境搭建)

1. 安装开发工具

小智开发工具提供了图形化管理界面,可用于:

  • 创建技能
  • 管理意图
  • 部署到设备
  • 查看日志

安装步骤非常直观。

在这里插入图片描述


2. 创建一个新技能项目

进入 MCP 开发套件后,新建项目:

  • 技能名称:smart-home-demo
  • 类型:自定义技能
  • 触发词:例如“嗨小智”
  • 语言:中文

创建后工具会自动生成框架文件。

在这里插入图片描述


3. 目录结构说明

典型 MCP 项目结构如下:

/project
 ├── manifest.json       # 技能声明
 ├── intent.json         # 意图与槽位定义
 ├── handler.js          # 指令逻辑
 └── config.yaml         # 运行配置

结构清晰,易于扩展。


三、第一个小智技能:自定义语音命令响应

下面以一个简单示例入手:
用户说:“小智,今天公司几点开会?”
音箱返回预设的内容,例如从 API 获取会议表。

1. 定义意图(intent.json)

{
  "intents": [
    {
      "name": "query_meeting",
      "utterances": [
        "今天公司几点开会",
        "今天会议是什么",
        "帮我查一下会议时间"
      ]
    }
  ]
}

2. 编写逻辑(handler.js)

exports.handler = async function (ctx) {
  const intent = ctx.intent;

  if (intent === 'query_meeting') {
    const meetingInfo = await getTodayMeeting();
    ctx.sendText(`今天的会议时间为:${meetingInfo}`);
  }
};

async function getTodayMeeting() {
  return "下午 3 点季度复盘会";
}

部署后,你就拥有了:
一个定制回答、可扩展业务后台的语音助手。


四、指令控制:让小智帮你操控智能家居(实战)

如果你有智能家居,例如:

  • 空调
  • 空气净化器
  • 温湿度监控设备

你可以通过小智进行控制。
我们以“语音开启客厅灯”为例。

1. 定义意图(带槽位)

intent.json:

{
  "intents": [
    {
      "name": "control_light",
      "slots": ["location", "action"],
      "utterances": [
        "{location}的灯{action}",
        "帮我把{location}灯{action}"
      ]
    }
  ]
}

2. 在 handler.js 中处理槽位

exports.handler = async function (ctx) {
  if (ctx.intent === 'control_light') {
    const loc = ctx.slots.location;
    const act = ctx.slots.action;

    await callDeviceAPI(loc, act);
    ctx.sendText(`${loc}的灯已为你${act}`);
  }
};

3. 调用实际设备控制接口

假设你家使用的是 Home Assistant 或自研家居服务:

async function callDeviceAPI(location, action) {
  await fetch(`http://home.api/device/light`, {
    method: "POST",
    body: JSON.stringify({ location, action }),
  });
}

这样小智就能真正控制你的设备。


五、增强能力:更自然的对话流

小智提供:

  • 多轮对话
  • 上下文保存
  • 意图识别与置信度
  • 主动问询(例如“你想开客厅灯还是卧室灯?”)

示例:多轮对话

if (!ctx.slots.location) {
  ctx.ask("要控制哪个房间的灯?");
  return;
}

用户说“卧室”,系统自动补齐槽位。

这让语音系统像“真正的对话”而不是“命令式控制”。


六、调试技巧、常见踩坑与最佳实践

✔ 1. 最常见的错误:意图识别失败

解决方案:

  • 增加更多自然说法
  • 添加拼写优选
  • 检查槽位是否必填

✔ 2. 网络问题导致指令延迟

最佳方案:

  • 尽可能使用本地执行
  • 云端接口增加缓存
  • 使用 Promise 超时封装防止卡死

✔ 3. 部署后调试困难?

小智提供:

  • 实时日志
  • 语音识别文本回显
  • 意图命中查看

调试比一般智能音箱友好得多。


七、结语:小智是“语音时代的开发终端”

与其说我们在开发技能,不如说我们在构建一个:

  • 语音入口
  • 场景中枢
  • 用户的日常助手
  • 智能交互的中枢节点

从 MCP 能力来看,小智有成为“下一代语音 OS 的开发底座”的潜力,而此时参与开发,有点像 2010 年做 Android 应用的早期开发者——
敢动手,就能成为最早一批“吃到红利的人”。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐