让“小爱音箱PRO”智能起来:接入豆包AI

下面提供从 0 到 1 的完整流程,包含豆包 API 申请、MiGPT 部署、配置与使用,确保你能顺利让小爱音箱 Pro 用上豆包的强大能力。

一、准备工作(必做)

二、申请豆包 API 密钥(关键步骤)

豆包 API 需通过火山引擎方舟平台申请,以下是详细步骤:

1. 注册与实名认证

  1. 访问火山引擎官网:https://www.volcengine.com/
  2. 注册账号并完成实名认证(个人 / 企业均可)
  3. 登录后进入方舟大模型平台

2. 创建 API 密钥与推理接入点

  1. 进入控制台API 密钥管理 → 点击 "创建密钥",保存Access Key IDSecret Access Key
  2. 进入在线推理创建推理接入点
    • 名称:自定义(如 "小爱音箱豆包")
    • 模型选择:豆包系列(推荐 Doubao-seed-1.6-flash,响应快)
    • 地域:选择cn-beijing(国内延迟低)
  3. 等待状态变为 "运行中",记录接入点 ID(格式:ep-xxxxxxxxxxxxxx)

三、部署 MiGPT(推荐 Docker 方式,零门槛)

1. 安装 Docker

  • Windows/macOS:下载Docker Desktop并安装
  • Linux:执行sudo apt-get install docker.io(Ubuntu)
1.1、安装前必做:检查前置条件(避免安装失败)

Docker Desktop 在 Windows 上依赖WSL2(适用于 Linux 的 Windows 子系统),必须先满足以下条件:

检查项要求验证方法
系统版本Win10 64 位(Build 19044+)/ Win11按下Win+R输入winver,查看版本号
硬件虚拟化已开启(CPU 支持 VT-x/AMD-V)一般默认开启,若报错需进 BIOS 开启(品牌机按 F2/Del 进入)
步骤 1:开启 WSL2(核心依赖,必做)
  1. 按下Win+X,选择「Windows 终端(管理员)」(注意必须是管理员权限);
  2. 命令执行后会提示「需要重启电脑」,点击「重启」(重启后会自动下载 Ubuntu 子系统,无需手动操作);
  3. 重启后等待 Ubuntu 子系统安装完成(首次开机可能会弹窗设置 Ubuntu 用户名 / 密码,随便设置即可,不影响 Docker 使用);

验证 WSL2 是否安装成功:重新打开终端,执行:

wsl --list --verbose 

✅ 正常输出:能看到「Ubuntu」且「VERSION」列显示「2」(不是 1)。

执行以下命令,一键开启 WSL2 和虚拟机平台:

wsl --install 
1.2、下载并安装 Docker Desktop
步骤 1:下载安装包
  1. 访问 Docker 官方下载页:https://www.docker.com/products/docker-desktop/
  2. 点击「Download for Windows」,下载安装包(约 500MB,耐心等待);
步骤 2:安装 Docker(关键选项别错)
  1. 双击下载的Docker Desktop Installer.exe,开始安装;
  2. 安装界面勾选以下选项(重中之重):
    • ✅ Use WSL 2 instead of Hyper-V(优先用 WSL2,避免 Hyper-V 冲突);
    • ✅ Add shortcut to desktop(桌面创建快捷方式,方便后续打开);
  3. 点击「OK」开始安装,等待 2-5 分钟(安装过程会自动配置环境变量);
  4. 安装完成后,勾选「Start Docker Desktop」,点击「Finish」。
步骤 3:首次启动 Docker
  1. 启动后会弹出「Service Agreement」(服务协议),点击「Accept」;
  2. 等待 Docker 初始化(桌面右下角会出现「鲸鱼图标」,图标无红色叉号即正常);
    • 首次启动可能会提示「WSL2 is not installed」,说明之前 WSL2 没装成功,回到第一步重新执行wsl --install

1.3、验证 Docker 是否安装并正常运行(三步必查)

安装完成后,按以下步骤验证,全部通过即说明安装 OK:

步骤 1:检查 Docker 版本

打开「Windows 终端」(普通权限即可),执行:

docker --version 

✅ 正常输出示例(版本号可能不同):

Docker version 25.0.3, build 4debf41 

❌ 异常:提示「'docker' 不是内部或外部命令」→ 重启电脑(让环境变量生效),或重新安装 Docker。

步骤 2:检查 Docker 服务状态
  • 看桌面右下角的「鲸鱼图标」:
    • 右键图标 → 选择「Settings」能正常打开 → 服务运行中;
    • 若图标有红色叉号 → 右键选择「Restart Docker」重启。
步骤 3:运行测试容器(最终验证)

执行 Docker 官方的「hello-world」测试容器,这是最权威的验证方式:

docker run hello-world 

✅ 正常输出(关键看最后一行):

Hello from Docker! This message shows that your installation appears to be working correctly. 

❌ 异常:提示「pull access denied」→ 网络问题,后续配置国内镜像源即可

2. 创建配置文件

在电脑上新建migpt文件夹,创建以下两个文件:

(1).migpt.js(小爱音箱配置)
module.exports = { speaker: { userId: "你的小米账号", // 必须修改 password: "你的小米密码", // 必须修改 did: "小爱音箱Pro", // 必须与米家App设备名称一致 ttsCommand: [5, 1], // 小爱音箱Pro专用参数,不可改 wakeUpCommand: [5, 3], // 小爱音箱Pro专用参数,不可改 monitorCommand: [3, 1, 1], // 小爱音箱Pro专用参数,不可改 callAIKeywords: ["豆包", "请", "你"] // 触发豆包AI的关键词 } } 
(2).env(豆包 API 配置)
# 豆包配置 DOUBAO_API_KEY=你的Access Key ID:Secret Access Key # 格式如AK:SK DOUBAO_MODEL=接入点ID # 如ep-xxxxxxxxxxxxxx DOUBAO_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 # 固定值 DOUBAO_REGION=cn-beijing # 与接入点地域一致 # 其他设置(可选) BOT_NAME=豆包 # 回答时的称呼 TTS_TYPE=xiaomi # 使用小爱原生TTS,也可改为doubao使用豆包音色 

3. 启动 MiGPT 服务

打开终端 / 命令提示符,执行以下命令(替换本地路径):

docker run -d \ -v /本地migpt文件夹路径:/app/config \ -p 3000:3000 \ --name mi-gpt \ idootop/mi-gpt:latest 

具体如下:

查看所有容器:

4. 验证部署

  • 访问http://localhost:3000,看到 MiGPT 界面即部署成功
  • 检查日志:docker logs mi-gpt,无报错即可使用

四、使用豆包 AI 功能(超简单)

1. 基础使用

  1. 对小爱音箱说:" 小爱同学,豆包,什么是人工智能?"(关键词触发)
  2. 或:" 小爱同学,帮我写一首关于春天的诗 "
  3. MiGPT 会自动拦截问题,调用豆包生成回答,通过音箱播报

2. 高级玩法

功能语音指令示例
连续对话"小爱同学,豆包,开启连续对话",之后可直接提问
角色设定"小爱同学,豆包,你现在是小学数学老师,帮我辅导孩子作业"
内容生成"小爱同学,豆包,写一篇关于超级跑车的作文"(适合孩子兴趣)
知识问答"小爱同学,豆包,解释一下相对论"

五、常见问题与解决方案(避坑指南)

问题原因解决方法
MiGPT 无法连接音箱小米账号两步验证开启 / 密码错误关闭两步验证;确认账号密码正确;设备名称与米家 App 一致
豆包回答延迟高网络差 / 模型选择不当切换国内模型(如 Doubao-seed-1.6-flash);优化网络
语音播报异常TTS 参数错误确认 ttsCommand 为 [5,1](小爱音箱 Pro 专用)
API 调用失败密钥错误 / 接入点未运行检查 API 密钥与接入点 ID;确认接入点状态为 "运行中"
部分问题不触发豆包关键词未匹配修改.callAIKeywords,添加常用触发词(如 "帮我"、"解释")

六、两种接入方式对比(官方 vs 豆包)

对比项官方内置大模型豆包 AI(MiGPT)
功能基础问答、内容生成全功能豆包,支持连续对话、角色设定、多轮记忆
响应速度快(本地模型)中(网络调用,国内模型约 1-3 秒)
定制化有限高度自定义(角色、回答风格、关键词)
适合场景普通用户、便捷使用技术爱好者、有孩子家庭(可定制教育角色)

Read more

使用 QWebChannel 实现 JS 与 C++ 双向通信(超详细 + 踩坑总结 + Demo)

使用 QWebChannel 实现 JS 与 C++ 双向通信(超详细 + 踩坑总结 + Demo)

使用 QWebChannel 实现 JS 与 C++ 双向通信(超详细 + 踩坑总结 + Demo) 在基于 QWebEngine 的项目中,要让 前端 JavaScript 与 后端 C++ 互相通信,是非常关键的能力。 Qt 官方提供的方案就是 QWebChannel,它能让你像调用本地对象一样从 JS 访问 C++,并且支持信号/槽、异步回调等。 但实际项目中常见各种问题: * JS 侧无法拿到对象? * 信号不触发? * 跨线程导致闪退? * 对象销毁后 JS 仍然在调用? * Page/Page再创建导致 channel 失效? 本文将带你彻底搞懂 QWebChannel 的机制,避坑,并给出可运行的 Demo。 一、

前端代码分割与懒加载:让你的应用飞起来

前端代码分割与懒加载:让你的应用飞起来 毒舌时刻 代码分割和懒加载?听起来就像是前端工程师为了掩饰自己代码写得太烂而发明的借口。你写的代码那么大,加载时间那么长,不分割能行吗? 你以为随便分割一下代码就能解决性能问题?别做梦了!如果分割策略不合理,反而会导致更多的网络请求,让应用变得更慢。 为什么你需要这个 1. 减少初始加载时间:通过代码分割,只加载当前页面所需的代码,减少初始加载时间,提高用户体验。 2. 优化资源利用:只加载用户需要的代码,避免加载不必要的资源,优化内存和带宽使用。 3. 提高首屏渲染速度:快速加载首屏所需的代码,让用户尽快看到页面内容。 4. 支持大型应用:对于大型应用,代码分割可以避免打包后的文件过大,导致加载时间过长。 反面教材 // 这是一个典型的不使用代码分割的应用 import React from 'react'; import ReactDOM from 'react-dom'; import Home

前端八股文面经大全:字节跳动音视频前端一面·上(2026-03-03)·面经深度解析

前端八股文面经大全:字节跳动音视频前端一面·上(2026-03-03)·面经深度解析

前言 大家好,我是木斯佳。 相信很多人都感受到了,在AI浪潮的席卷之下,前端领域的门槛在变高,纯粹的“增删改查”岗位正在肉眼可见地减少。曾经热闹非凡的面经分享,如今也沉寂了许多。但我们都知道,市场的潮水退去,留下的才是真正在踏实准备、努力沉淀的人。学习的需求,从未消失,只是变得更加务实和深入。 这个专栏的初衷很简单:拒绝过时的、流水线式的PDF引流贴,专注于收集和整理当下最新、最真实的前端面试资料。我会在每一份面经和八股文的基础上,尝试从面试官的角度去拆解问题背后的逻辑,而不仅仅是提供一份静态的背诵答案。无论你是校招还是社招,目标是中大厂还是新兴团队,只要是真实发生、有价值的面试经历,我都会在这个专栏里为你沉淀下来。 温馨提示:市面上的面经鱼龙混杂,甄别真伪、把握时效,是我们对抗内卷最有效的武器。 面经原文内容 📍面试公司:字节跳动 🕐面试时间:3月3日 💻面试岗位:音视频前端(春招) ❓面试问题: 1. 自我介绍 2. 用了哪些方法使FCP渲染耗时缩短近1s 3.

深入解析WebView的概念、功能、应用场景以及使用过程中的优势与挑战

深入解析WebView的概念、功能、应用场景以及使用过程中的优势与挑战

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_ZEEKLOG博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》 文章目录 * * 一、引言 * 二、WebView概述 * 三、WebView的功能与应用场景 * 四、WebView的优势与挑战 * 五、WebView的使用示例 * 六、总结 摘要: 本文详细介绍了App中WebView的概念、功能、应用场景以及使用过程中的优势与挑战。通过对WebView的深入剖析,帮助开发者更好地理解和运用这一技术,在App开发中实现更丰富的功能和更好的用户体验。 一、引言 在移动应用开发领域,为了在App中展示网页内容、集成Web应用或实现与网页的交互功能,WebView是一种常用的技术手段。它为开发者提供了一种在原生App中嵌入Web内容的