首页
/ Mycroft核心API详解:设备管理与语音交互接口指南

Mycroft核心API详解:设备管理与语音交互接口指南

2025-07-07 06:00:41作者:尤峻淳Whitney

前言

Mycroft作为一款开源的语音助手平台,其核心API提供了丰富的设备管理和语音交互功能。本文将深入解析Mycroft核心API的设计架构、主要功能模块以及典型使用场景,帮助开发者更好地理解和使用这套接口系统。

API概览

Mycroft核心API采用RESTful风格设计,基于HTTPS协议,当前版本为v1。整个API围绕"设备(device)"这一核心资源展开,提供了完整的设备生命周期管理能力,包括:

  • 设备注册与激活
  • 设备信息管理
  • 设备设置配置
  • 技能管理
  • 位置服务
  • 账户订阅
  • 语音服务配置

认证与安全

Mycroft API采用OAuth 2.0认证机制,提供了三种认证方式:

  1. 用户认证(user_auth):用于管理用户相关资源
  2. 设备认证(device_auth):用于设备相关操作
  3. 刷新认证(refresh_auth):用于获取新的访问令牌

每种认证方式都有明确的权限范围(scope),确保接口访问的安全性。

核心功能详解

1. 设备管理

设备注册与激活

设备注册流程分为三个关键步骤:

  1. 生成配对码:通过/device/code接口获取配对码
  2. 创建设备:使用/device的POST方法注册新设备
  3. 激活设备:通过/device/activate完成设备激活
POST /device
Content-Type: application/json

{
  "name": "客厅智能音箱",
  "description": "客厅主音箱设备",
  "coreVersion": "21.02"
}

设备信息管理

提供完整的CRUD操作:

  • 查询设备详情:GET /device/{uuid}
  • 更新设备信息:PUT /devicePATCH /device/{uuid}
  • 删除设备:DELETE /device/{uuid}

2. 设备设置管理

Mycroft允许对设备进行全方位的配置:

GET /device/{uuid}/setting

响应示例:
{
  "systemUnit": "metric",
  "timeFormat": "half",
  "dateFormat": "DMY",
  "sttSettings": [...],
  "ttsSettings": [...]
}

主要配置项包括:

  • 单位系统(公制/英制)
  • 时间显示格式(12/24小时制)
  • 日期格式(日/月/年顺序)
  • 语音识别(STT)设置
  • 语音合成(TTS)设置
  • 监听器配置
  • 外壳设备配置

3. 技能管理

Mycroft的技能系统是其核心功能之一,API提供了完整的技能管理能力:

PUT /device/{uuid}/skill
Content-Type: application/json

{
  "skillId": "weather-skill",
  "version": "1.2.0",
  "active": true
}

主要操作包括:

  • 查询设备技能:GET /device/{uuid}/skill
  • 添加/更新技能:PUT /device/{uuid}/skill
  • 删除技能:DELETE /device/{uuid}/skill
  • 批量更新技能配置:PUT /device/{uuid}/skillJson

4. 位置服务

设备可以存储和获取位置信息:

GET /device/{uuid}/location

响应示例:
{
  "coordinate": {
    "latitude": 39.9042,
    "longitude": 116.4074
  },
  "timezone": "Asia/Shanghai",
  "city": {
    "name": "北京",
    "code": "110000"
  }
}

5. 语音服务配置

语音识别(STT)配置

支持多种STT引擎:

  • Mycroft内置
  • Google
  • IBM Watson
  • Wit.ai
  • OpenSTT
{
  "@type": "google",
  "active": true,
  "credential": {
    "@type": "token",
    "key": "your-api-key"
  }
}

语音合成(TTS)配置

支持引擎包括:

  • Mimic
  • eSpeak
  • Google TTS
  • MaryTTS
  • FATTS
{
  "@type": "google",
  "active": true,
  "voice": "zh-CN-Wavenet-A"
}

6. 高级功能

发送邮件

PUT /device/{uuid}/message
Content-Type: application/json

{
  "subject": "设备激活通知",
  "content": "您的设备已成功激活",
  "recipient": "user@example.com"
}

收集指标数据

POST /device/{uuid}/metric
Content-Type: application/json

{
  "metricType": "usage",
  "value": 120,
  "timestamp": 1625097600000
}

数据结构定义

设备(Device)

{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "name": "卧室音箱",
  "description": "主卧室智能音箱",
  "coreVersion": "21.02",
  "enclosureVersion": "2.1",
  "lastAccess": 1625097600000
}

账户(Account)

区分免费账户和付费账户:

# 付费账户
{
  "@type": "monthly",
  "expiresAt": 1627689600000,
  "nextPayment": 1625097600000,
  "lastPayment": 1622419200000
}

# 免费账户
{
  "@type": "free"
}

最佳实践

  1. 设备注册流程

    • 先获取配对码
    • 在30分钟内完成设备注册和激活
    • 妥善保管设备UUID和认证令牌
  2. 配置管理

    • 使用PATCH进行部分更新而非完整替换
    • 利用ETag机制优化配置同步
  3. 错误处理

    • 检查404(未找到)和422(验证错误)状态码
    • 实现令牌刷新机制处理401未授权错误
  4. 性能优化

    • 对频繁访问的资源使用缓存
    • 批量操作减少API调用次数

总结

Mycroft核心API提供了一套完整的语音助手设备管理解决方案,从设备生命周期管理到语音服务配置,再到技能生态系统支持,覆盖了语音助手开发的各个方面。通过合理利用这些API接口,开发者可以构建出功能丰富、用户体验优秀的语音交互应用。

对于希望深度定制Mycroft功能的开发者来说,理解这套API的设计理念和实现细节至关重要。本文介绍的各个接口和数据结构,为开发者提供了坚实的基础,可以根据实际需求进行扩展和优化。