【征文计划】用 Rokid AR 眼镜做"厨房小助手":让做饭不再手忙脚乱
一、一个被忽视的日常痛点:做饭时,手忙脚乱
现代人越来越愿意下厨,但厨房却是一个"高干扰、高风险、高专注需求"的场所。
我们常常面临这样的困境:
- 手是湿的、油的、沾着面粉的,不敢碰手机,怕弄脏屏幕或误触;
- 眼睛必须盯着锅、刀、火候,但又需要频繁查看菜谱步骤;
- 耳朵是空闲的,却没人能及时回答"下一步该做什么?";
- 转身拿手机的几秒钟,可能就让汤溢出锅、菜烧焦、油温失控。
于是,很多人要么放弃复杂菜式,要么在"看手机---擦手---操作---再看手机"之间反复切换,效率低、体验差,甚至存在安全隐患。
有没有一种方式,能让我们不用动手、不用低头、不用分心,就能获得烹饪所需的全部信息?
答案是:有。Rokid AR 眼镜,正好能成为你的"厨房小助手"。

二、我的创意构想:一个悬浮在眼前的智能菜谱助手
想象这样一个场景:
你系上围裙,戴上轻便的 Rokid AR 眼镜,走进厨房。
对着空气说一句:"小助手,开始做番茄牛腩煲。 "
瞬间,你眼前的视野中浮现出清晰的步骤卡片,位置刚好在灶台前方、视线自然落点处:
🍅 番茄牛腩煲 · 第1步
牛腩切块,冷水下锅,加姜片、料酒,焯水5分钟,捞出冲洗干净。
你一边处理食材,一边抬头就能看到下一步。手上有水?完全没关系。
当你把牛腩放入砂锅后,只需说:"下一步。 "
AR 界面自动翻页:
🍅 第2步:炒番茄
热锅冷油,放入番茄块,中小火炒至出沙(约3分钟)。
过程中,你不确定"出沙"是什么状态,便问:"怎么判断番茄出沙了? "
眼镜立刻用温和的语音回答:"当番茄变软、汁水变浓稠、颜色变深红,就是出沙了。 " 同时,旁边还浮现出一张参考图。
更贴心的是------当你设定"炖煮1.5小时"后,一个半透明的倒计时圆环会悬浮在砂锅上方,随着时间流逝缓缓收缩。你不用记时间,也不用设手机闹钟。
整个过程,双手始终专注于烹饪,眼睛只看食材和步骤,耳朵接收关键提示------这才是真正的"无感交互"。
三、Rokid 的哪些能力支撑了这个创意?
你可能会问:这听起来很酷,但真的能实现吗?
其实,这个"厨房小助手"并不依赖尚未成熟的新技术,而是巧妙组合 Rokid AR 眼镜已公开的核心能力:
1. 语音交互:你说,它听
Rokid 官方 SDK 支持语音唤醒 + 自然语言理解,用户只需说出菜名或指令(如"下一步""暂停""查火候"),系统即可响应。更重要的是,它支持离线语音识别,即使厨房网络信号弱,基础功能依然可用。
技术实现要点(面向智能菜谱场景)
csharp
void Awake() {
if (!Permission.HasUserAuthorizedPermission("android.permission.RECORD_AUDIO")) {
Permission.RequestUserPermission("android.permission.RECORD_AUDIO");
}
}
private void InitializeVoiceControl() {
if (!isInitialized) {
ModuleManager.Instance.RegistModule("com.rokid.voicecommand.VoiceCommandHelper", false);
OfflineVoiceModule.Instance.ChangeVoiceCommandLanguage(LANGUAGE.CHINESE);
isInitialized = true;
}
}
OfflineVoiceModule.Instance.AddInstruct(LANGUAGE.CHINESE, "下一步", "xia yi bu", this.gameObject.name, "OnReceive");
OfflineVoiceModule.Instance.AddInstruct(LANGUAGE.CHINESE, "暂停", "zan ting", this.gameObject.name, "OnReceive");
OfflineVoiceModule.Instance.AddInstruct(LANGUAGE.CHINESE, "番茄出沙了吗", "fan qie chu sha le ma", this.gameObject.name, "OnReceive");
OfflineVoiceModule.Instance.Commit();
void OnReceive(string msg) {
switch (msg) {
case "下一步":
ShowNextStep();
break;
case "暂停":
PauseTimer();
break;
case "番茄出沙了吗":
ShowVisualGuide("tomato_cha_sha_reference.png");
Speak("当番茄变软、汁水变浓稠、颜色变深红,就是出沙了。");
break;
}
}
void OnDestroy() {
OfflineVoiceModule.Instance.ClearAllInstruct();
OfflineVoiceModule.Instance.Commit();
}
✅ 优势:无需联网、响应快、指令精准,专为厨房"湿手+噪音"环境优化。

2.智能语音转述大模型:让回答"有温度、有理解"
你可能已经注意到,前面的 OnReceive
示例中,我们用了一句固定文本:"当番茄变软、汁水变浓稠、颜色变深红,就是出沙了。" 但这只是"预设答案"。如果用户问的是:"番茄炒蛋要放糖吗?""油温几成热最合适?""这个肉炖多久才嫩?"------我们不可能为每种问题都写死一条指令。
这时,离线语音识别只是"听懂了你",而智能语音转述大模型,才是"真正听懂了你的心"。
Rokid AR 眼镜支持接入轻量化本地大语言模型(LLM),例如 Qwen-Chat-1.8B 或 Phi-3-mini,这些模型可在边缘设备上高效运行,无需联网,响应时间低于 800ms,完全满足厨房的即时性需求。
我们不是在"查答案",而是在"对话"。
技术实现升级:从"指令响应"到"语义理解"
csharp
private void InitializeLLMVoiceAssistant() {
LLMEngine.Instance.LoadModel("qwen-chat-1.8b.onnx");
LLMEngine.Instance.SetSystemPrompt(
"你是一个耐心、温和的厨房助手,擅长用生活化语言解释烹饪技巧。" +
"回答要简短、口语化,不超过3句话。如果不确定,就说'我还不太清楚,建议查一下食谱'。"
);
}
void OnReceive(string msg) {
switch (msg) {
case "下一步":
ShowNextStep();
break;
case "暂停":
PauseTimer();
break;
case "番茄出沙了吗":
ShowVisualGuide("tomato_cha_sha_reference.png");
string response = LLMEngine.Instance.Query("如何判断番茄已经出沙?");
Speak(response);
break;
default:
string generalResponse = LLMEngine.Instance.Query(msg);
Speak(generalResponse);
break;
}
}
在LLMEngine.Instance.SetSystemPrompt中我们设置了系统提示词,他的作用简单来说就是:人格设定,给他赋予一个身份,这里我们设置了厨房助手,语音识别触发后的处理逻辑 ------ 如果没有"关键词匹配"就调用大模型进行"语义理解" ,使回复的更加智能化。
为什么这很重要?
- 不是"预设问答库",而是动态理解语义。用户说"这汤太淡了怎么办?" → 模型回答:"可以加一点盐,但别一次加太多,先搅匀,尝一口再调整。"
- 语气自然、有温度。模型会避免机械感,用"你试试看""别着急""我建议"这样的口语表达,像一位在你身边轻声指导的家人。
- 上下文感知。如果用户刚问过"出沙",再问"那现在该加水吗?",模型能记住上下文,不会重复解释番茄状态。
- 离线安全:所有对话在本地完成,不上传你的烹饪习惯、食材偏好,隐私零风险。
💡 小贴士:我们使用的是"语音识别 → 语义理解 → 语音合成"三段式流水线。 语音识别(离线)负责听清你说了什么; 大模型负责"思考"你真正想问什么; TTS(Text-to-Speech)负责用温柔女声(或男声)"说"出来------ 这三者在 Rokid SDK 中均已原生支持,只需组合调用,无需额外硬件。
实际体验对比
用户提问 | 传统预设式回答 | 大模型智能回答 |
---|---|---|
"番茄出沙了吗?" | "当番茄变软、汁水变浓稠、颜色变深红,就是出沙了。" | "你看番茄皮裂开了,汁水变稠,颜色从鲜红变成暗红,就是出沙啦~别急,再炒半分钟。" |
"油温几成热?" | "油温七成热。" | "用筷子戳一下锅边,如果周围冒细密小泡,就是六七成热,适合爆香。要是冒大泡泡,就太热啦!" |
"能用鸡胸肉代替牛腩吗?" | "不支持该菜谱替换。" | "可以哦,但鸡胸肉容易柴,建议先用料酒和淀粉腌15分钟,炖的时候火要小一点,时间也缩短到40分钟。" |
这才是真正的"智能助手"------不是数据库,而是懂你、陪你、帮你的人。

3. 空间显示:信息"贴"在真实世界
Rokid 的空间计算能力允许开发者将文字、图标、计时器等 UI 元素锚定在真实空间中的特定位置。这意味着菜谱不会漂浮乱动,而是稳定显示在灶台前方,无论你左右移动头部,内容始终处于视野舒适区。
如何用 AR Plane Manager 把菜谱"贴"到灶台上?
整个过程可分为三步:开启检测 → 识别灶台 → 锚定内容。
第一步:开启平面检测(只关注水平面)
厨房中干扰较多(锅具、调料瓶等),为提高效率和准确性,我们只需检测水平面:
ini
ARPlaneManager.Instance.SetPlaneDetectMode(PlaneDetectMode.Horizontal);
ARPlaneManager.Instance.OpenPlaneTracker();
💡 为什么选水平面? 灶台、料理台、水槽台面都是典型的水平面,且高度适中(通常离地 80--90cm),是放置虚拟菜谱的理想"画布"。

第二步:监听并筛选最合适的灶台平面
系统会持续检测环境中的平面,并通过事件回调通知开发者:
ini
ARPlaneManager.OnPlaneAdded += OnNewPlaneDetected;
void OnNewPlaneDetected(ARPlane plane) {
BoundedPlane bp = plane.boundedPlane;
if (bp.planeType != PlaneType.Horizontal) return;
float area = CalculatePlaneArea(bp.boundary3D);
float height = bp.pose.position.y;
if (area > 0.3f && height > 0.7f && height < 1.0f) {
AnchorRecipeToPlane(bp.pose.position);
}
}
📌 关键字段解释(来自
BoundedPlane
结构体):
pose.position
:平面中心点的世界坐标(单位:米)pose.rotation
:平面的朝向(通常水平面的法向量朝上)boundary3D
:平面边界的 3D 顶点数组,可用于判断形状与面积planeType
:Horizontal
表示水平面(如桌面),Vertical
表示垂直面(如墙面)
第三步:将菜谱 UI 锚定到该位置
一旦确定灶台位置,即可将菜谱卡片、倒计时器等 UI 元素作为 3D 对象放置在该坐标附近:
ini
void AnchorRecipeToPlane(Vector3 anchorPosition) {
Vector3 uiPosition = anchorPosition + Vector3.forward * 0.3f + Vector3.up * 0.15f;
recipePanel.transform.position = uiPosition;
recipePanel.transform.LookAt(Camera.main.transform);
}
✅ 效果保障: 即使用户左右移动、弯腰或转身,菜谱 UI 会始终"固定"在灶台空间坐标中,不会随头部晃动而漂移------这才是真正的空间锚定(Spatial Anchoring)。
平面检测的生命周期管理
为避免资源浪费或误触发,建议在合适时机关闭平面检测:
scss
void StartCooking() {
ARPlaneManager.Instance.SetPlaneDetectMode(PlaneDetectMode.Horizontal);
ARPlaneManager.Instance.OpenPlaneTracker();
ARPlaneManager.OnPlaneAdded += OnNewPlaneDetected;
}
void OnRecipeAnchored() {
ARPlaneManager.Instance.ClosePlaneTracker();
ARPlaneManager.OnPlaneAdded -= OnNewPlaneDetected;
}
void OnDestroy() {
ARPlaneManager.Instance.ClosePlaneTracker();
}
为什么这对厨房场景至关重要?
传统 AR 显示 | ROKID 空间锚定显示 |
---|---|
内容随头部移动而漂移 | 内容固定在真实灶台位置 |
需频繁调整视角找信息 | 抬头即见,视线自然落点 |
容易因遮挡丢失内容 | 平面持续追踪,稳定性高 |
体验"虚拟感"强 | 体验"融入感"强,像真实工具 |
在油污、蒸汽、手忙脚乱的厨房中,稳定性 = 安全性 = 可用性。Rokid 的平面检测能力,正是让 AR 从"玩具"走向"工具"的关键一步。
小结:空间显示 ≠ 悬浮显示,而是"环境感知 + 精准锚定"
通过 AR Plane Manager,开发者可以:
- 智能识别厨房中的可用平面;
- 将菜谱、计时器等关键信息锚定在物理世界的真实位置;
- 实现"抬头即见、稳定不飘、随动不乱"的沉浸式交互。
这不仅是技术能力的体现,更是对真实用户场景的深度尊重------毕竟,在厨房里,没人有空去"找"菜谱,它应该就在你最需要的地方,静静等着你。
🔧 开发提示:建议在原型阶段优先使用
Horizontal
模式 + 面积/高度过滤策略,可大幅提升灶台识别准确率。后续可结合用户标定(如语音说"就在这儿显示")进一步优化定位。
4. 第一视角体验:解放双手,专注操作
与手机、平板不同,AR 眼镜是穿戴式设备。你不需要手持设备,也不会因为低头看屏幕而忽略锅里的变化。
这种"抬头即见、语音即控"的交互方式,天然适合高专注、高风险的操作场景------比如烹饪、维修、实验等。
在厨房中,这意味着:
- 双手始终自由,可同时切菜、翻炒、调味;
- 视线不离灶台,火候、沸腾、油温尽在掌控;
- 注意力高度集中,减少因分心导致的安全事故。
5. 内容可扩展:菜谱来源灵活
应用本身不需要内置海量菜谱。 它可以:
- 对接公开美食 API(如"下厨房""豆果美食");
- 允许用户上传自定义食谱(支持语音录入或文本导入);
- 未来还可结合图像识别(如识别你面前的食材),实现智能推荐。
✅ 关键点:这个创意的实现门槛并不高。它不需要训练 AI 模型、不需要改造硬件,只需合理调用 Rokid SDK 提供的语音、显示、空间定位等模块,再设计好用户交互流程即可。

四、为什么这个应用有价值?
也许你会说:"我用手机支架不就行了?"
但体验完全不同:
场景 | 手机支架 | Rokid AR 厨房助手 |
---|---|---|
手湿/油污时 | 不敢碰,怕弄脏 | 完全无需触碰 |
需要看锅又看步骤 | 频繁低头抬头,易分心 | 视线自然覆盖锅与步骤 |
询问细节(如火候) | 需手动搜索 | 语音提问,即时回答 |
计时提醒 | 依赖手机闹钟,可能错过 | 倒计时直接悬浮在锅上,视觉+声音双重提醒 |
更深层的价值在于:
- 降低烹饪门槛:新手不再因步骤复杂而放弃尝试;
- 提升厨房安全:减少因分心导致的烫伤、火灾风险;
- 增强烹饪乐趣:让人更专注于"创造美食"的过程,而非"操作设备";
- 适老化潜力:老年人看不清小字手机屏幕,但大字体 AR 显示更友好。
五、结语:技术的意义,在于服务生活
AR 技术常被描绘成"未来科技""元宇宙入口",但它的真正价值,或许就藏在这些微小却真实的日常场景里。
Rokid AR 眼镜不是为了炫技,而是为了让人在需要专注的时候,少一分干扰,多一分从容。
厨房,正是这样一个地方。
当你不再为"下一步该做什么"而手忙脚乱,
当你能安心地盯着锅里翻滚的汤,
当你笑着对眼镜说"谢谢,这道菜成功了"------
那一刻,技术才真正融入了生活。
而我的"厨房小助手",或许就是这样一个温暖的开始。
技术文档:ar.rokid.com/
开发文档:ar.rokid.com/doc