仅凭声音能准确追踪卡路里吗?我们测试了50种餐点
我们通过Nutrola的语音记录功能记录了50种不同的餐点,并将AI的卡路里估算与称重和测量的份量进行了比较。以下是完整结果、准确率以及影响语音追踪可靠性或不可靠性的因素。
在测试的50种餐点中,Nutrola的语音记录在具体数量描述的情况下实现了92.4%的整体卡路里准确率,而在中等详细描述下准确率降至78.1%,模糊或不明确的输入则降至54.3%。 准确与不准确的语音记录之间的差异几乎完全取决于你如何描述餐点,而不是技术本身。下面是每种测试餐点的完整结果,包括AI的正确与错误判断,以及如何以最佳方式描述餐点以获得最大准确性。
我们如何进行这项测试
我们在一个控制的厨房环境中准备了50种餐点。每种食材都在精确到1克的校准食品秤上称重。每餐的总卡路里使用USDA FoodData Central的参考值进行计算。然后,我们用自然、对话式的语言将每餐描述输入Nutrola的语音记录功能——就像真实用户描述他们刚吃过的食物一样。没有特别的措辞,也没有从优化AI识别的脚本中朗读。
每餐被分类为五个具体性级别之一:
- 简单且有数量 — 基本餐点,份量明确(例如:“两个炒鸡蛋”)
- 复杂且有数量 — 多种成分的菜肴,明确的数量(例如:“200克鸡肉炒菜,一杯西兰花,半杯米饭,两汤匙照烧酱”)
- 简单且无数量 — 基本餐点,没有明确的份量(例如:“炒鸡蛋”)
- 模糊描述 — 细节极少,没有份量(例如:“泰国餐厅的午餐”)
- 非英语食物名称 — 用其本名描述的菜肴(例如:“豆腐炒宽米粉”)
50种餐点测试的完整结果
类别1:简单餐点与数量(10种餐点)
| # | 语音描述 | AI解读 | AI卡路里 | 实际卡路里 | 准确率 |
|---|---|---|---|---|---|
| 1 | "两个炒鸡蛋加黄油" | 2个炒鸡蛋,1汤匙黄油 | 214 | 220 | 97.3% |
| 2 | "一杯燕麦粥加一汤匙蜂蜜" | 1杯熟燕麦粥,1汤匙蜂蜜 | 218 | 230 | 94.8% |
| 3 | "200克烤鸡胸肉" | 200克去皮烤鸡胸肉 | 330 | 330 | 100% |
| 4 | "一个中等大小的香蕉" | 1个中等香蕉(118克) | 105 | 105 | 100% |
| 5 | "三片全麦吐司加花生酱" | 3片全麦面包,3汤匙花生酱 | 555 | 520 | 93.3% |
| 6 | "150克希腊酸奶加蓝莓" | 150克原味希腊酸奶,50克蓝莓 | 148 | 155 | 95.5% |
| 7 | "一个大苹果" | 1个大苹果(223克) | 116 | 116 | 100% |
| 8 | "两个米饼加30克杏仁酱" | 2个原味米饼,30克杏仁酱 | 264 | 258 | 97.7% |
| 9 | "一罐水浸金枪鱼,沥干" | 1罐(142克)水浸金枪鱼,沥干 | 179 | 179 | 100% |
| 10 | "300毫升全脂牛奶" | 300毫升全脂牛奶 | 183 | 186 | 98.4% |
类别1平均准确率:97.7%
类别2:复杂餐点与数量(10种餐点)
| # | 语音描述 | AI解读 | AI卡路里 | 实际卡路里 | 准确率 |
|---|---|---|---|---|---|
| 11 | "200克鸡胸肉、一杯西兰花、半杯彩椒、白米一杯和两汤匙照烧酱的鸡肉炒菜" | 所有成分均正确解析 | 628 | 645 | 97.4% |
| 12 | "意大利肉酱面,100克干意大利面,150克牛肉,半杯意大利调味酱和一汤匙帕尔马干酪" | 所有成分均正确解析;使用80/20的牛肉 | 702 | 735 | 95.5% |
| 13 | "180克三文鱼排用一汤匙橄榄油煎,配200克红薯和一杯蒸芦笋" | 所有成分均正确解析 | 658 | 670 | 98.2% |
| 14 | "两个鸡蛋煎蛋卷,30克切达奶酪,50克蘑菇和30克菠菜,煎在黄油里" | 所有成分均正确解析;假设1汤匙黄油 | 384 | 395 | 97.2% |
| 15 | "酸面包上的火鸡三明治,配生菜、西红柿、100克切片火鸡、一片瑞士奶酪和芥末" | 所有成分均正确解析 | 418 | 430 | 97.2% |
| 16 | "一杯冰冻草莓、一根香蕉、一勺乳清蛋白、200毫升杏仁奶和一汤匙奇亚籽的奶昔" | 所有成分均正确解析 | 372 | 365 | 98.1% |
| 17 | "150克鸡肉、半杯黑豆、半杯糙米、四分之一杯莎莎酱、50克牛油果和酸奶油的卷饼碗" | 所有成分均正确解析;假设2汤匙酸奶油 | 648 | 680 | 95.3% |
| 18 | "200克牛肉西冷配250克烤土豆和一汤匙橄榄油及150克蒸西兰花" | 所有成分均正确解析 | 692 | 705 | 98.2% |
| 19 | "一包阿萨伊、一个香蕉、100毫升橙汁,配30克格兰诺拉麦片和20克椰子片的阿萨伊碗" | 所有成分均正确解析 | 445 | 460 | 96.7% |
| 20 | "三片玉米饼、120克火鸡肉末、生菜、番茄丁、40克切达奶酪和莎莎酱的塔可盘" | 所有成分均正确解析 | 525 | 540 | 97.2% |
类别2平均准确率:97.1%
类别3:简单餐点且无数量(10种餐点)
| # | 语音描述 | AI解读 | AI卡路里 | 实际卡路里 | 准确率 |
|---|---|---|---|---|---|
| 21 | "炒鸡蛋" | 2个大炒鸡蛋(假设默认) | 182 | 274(3个鸡蛋) | 66.4% |
| 22 | "一碗燕麦粥" | 1杯熟燕麦粥 | 154 | 230(1.5杯+蜂蜜) | 67.0% |
| 23 | "鸡胸肉" | 1块中等鸡胸肉(170克),烤制 | 281 | 330(200克) | 85.2% |
| 24 | "一些吐司加花生酱" | 2片白吐司,2汤匙花生酱 | 378 | 520(3片全麦+3汤匙花生酱) | 72.7% |
| 25 | "希腊酸奶加水果" | 170克希腊酸奶,75克混合浆果 | 168 | 210(200克酸奶+香蕉) | 80.0% |
| 26 | "一杯蛋白奶昔" | 1勺乳清蛋白,250毫升水 | 120 | 365(乳清+香蕉+花生酱+牛奶) | 32.9% |
| 27 | "米饭和鸡肉" | 1杯熟米饭,150克鸡胸肉 | 440 | 530(1.5杯米饭+200克鸡肉+油) | 83.0% |
| 28 | "一份沙拉" | 混合绿叶沙拉(200克)加轻调料 | 85 | 350(凯撒沙拉,配面包丁、奶酪、调料) | 24.3% |
| 29 | "一个三明治" | 白面包火鸡三明治 | 320 | 480(双肉俱乐部三明治,配美乃滋) | 66.7% |
| 30 | "意大利面" | 1杯熟意大利面配意大利调味酱 | 310 | 735(200克干意大利面+肉酱) | 42.2% |
类别3平均准确率:62.0%
类别4:模糊描述(10种餐点)
| # | 语音描述 | AI解读 | AI卡路里 | 实际卡路里 | 准确率 |
|---|---|---|---|---|---|
| 31 | "泰国餐厅的午餐" | 无法解析——提示提供更多细节 | N/A | 780 | N/A |
| 32 | "我昨天吃的那个" | 无法解析——提示提供更多细节 | N/A | 550 | N/A |
| 33 | "丰盛的早餐" | 大型早餐拼盘估算 | 650 | 920(全英式早餐) | 70.7% |
| 34 | "剩饭" | 无法解析——提示提供更多细节 | N/A | 610 | N/A |
| 35 | "星巴克的某种东西" | 提示具体饮料/食物 | N/A | 420 | N/A |
| 36 | "几种小吃" | 无法解析——提示提供更多细节 | N/A | 340 | N/A |
| 37 | "快餐套餐" | 通用快餐汉堡套餐 | 980 | 1,150(温迪的培根汉堡套餐) | 85.2% |
| 38 | "一些披萨" | 估算2片奶酪披萨 | 540 | 880(3片大号意大利香肠披萨) | 61.4% |
| 39 | "健康碗" | 粮食碗估算(藜麦、蔬菜、鸡肉) | 450 | 620(Sweetgreen的丰收碗) | 72.6% |
| 40 | "酒吧食物和啤酒" | 估算酒吧餐食和2杯啤酒 | 1,050 | 1,480(翅膀、薯条、3杯IPA) | 70.9% |
类别4平均准确率:54.3%(不包括Nutrola正确要求澄清的无法解析条目)
类别5:非英语食物名称(10种餐点)
| # | 语音描述 | AI解读 | AI卡路里 | 实际卡路里 | 准确率 |
|---|---|---|---|---|---|
| 41 | "豆腐炒宽米粉" | 豆腐炒宽米粉(泰国菜),1份 | 410 | 440 | 93.2% |
| 42 | "鸡肉咖喱配印度饼" | 鸡肉咖喱(1份)+ 1个印度饼 | 620 | 680 | 91.2% |
| 43 | "牛肉拌饭" | 韩国拌饭配牛肉,1碗 | 550 | 590 | 93.2% |
| 44 | "牛肉河粉" | 越南牛肉河粉,1大碗 | 480 | 520 | 92.3% |
| 45 | "沙克舒卡配两个鸡蛋" | 沙克舒卡(番茄辣椒酱)+ 2个鸡蛋 | 310 | 340 | 91.2% |
| 46 | "炸猪排配米饭" | 炸猪排(tonkatsu)+ 1杯米饭 | 680 | 750 | 90.7% |
| 47 | "黄豆咖喱配印度饼" | 黄豆咖喱(1杯)+ 2个印度饼 | 430 | 485 | 88.7% |
| 48 | "生鱼片" | 鱼生(200克),1份 | 180 | 210 | 85.7% |
| 49 | "匈牙利炖牛肉" | 牛肉炖菜,1份 | 350 | 410 | 85.4% |
| 50 | "巴西黑豆炖肉" | 巴西黑豆炖肉,1份 | 480 | 570 | 84.2% |
类别5平均准确率:89.6%
概要:按具体性级别的准确率
| 类别 | 描述 | 测试餐点数 | 平均准确率 | 范围 |
|---|---|---|---|---|
| 1 | 简单餐点与数量 | 10 | 97.7% | 93.3 – 100% |
| 2 | 复杂餐点与数量 | 10 | 97.1% | 95.3 – 98.2% |
| 3 | 简单餐点且无数量 | 10 | 62.0% | 24.3 – 85.2% |
| 4 | 模糊描述 | 10 | 54.3%* | 61.4 – 85.2% |
| 5 | 非英语食物名称 | 10 | 89.6% | 84.2 – 93.2% |
| 总体(所有50种餐点) | 50 | 80.1% | 24.3 – 100% | |
| 有数量说明(类别1+2) | 20 | 97.4% | 93.3 – 100% |
*类别4不包括6个条目,其中AI正确拒绝猜测并要求澄清——这本身就是准确的行为。
最常见的5种误解
了解语音记录出错的地方可以帮助你避免这些错误:
| 误解 | 原因 | 卡路里影响 | 如何修正 |
|---|---|---|---|
| 默认2个鸡蛋而你吃了3个 | “炒鸡蛋”没有数量触发标准份量假设 | -90卡路里低估 | 始终说明鸡蛋的数量 |
| 假设水基蛋白奶昔 | “蛋白奶昔”没有额外成分默认只有粉+水 | -245卡路里低估 | 列出每种成分:“乳清、香蕉、牛奶、花生酱” |
| 通用沙拉与丰盛沙拉 | “一份沙拉”默认简单绿叶加轻调料 | -265卡路里低估 | 指明沙拉类型:“凯撒沙拉,配面包丁和帕尔马奶酪” |
| 低估意大利面份量 | 默认份量为1杯熟面,很多人吃2-3杯 | -200到-425卡路里低估 | 说明干重或熟面量 |
| 炒菜时缺少烹饪油 | AI可能记录成分但假设没有添加脂肪 | -120卡路里低估 | 说“用一汤匙油炒”或“用黄油煎” |
这些结果对实际使用的意义
数据揭示了一个明确的模式:语音记录的准确性取决于输入的具体性,而不是AI的局限性。 当用户提供数量——即使是粗略的——Nutrola的AI实现了97%以上的准确率。这与我们的内部测试中手动数据库搜索的准确率(95-98%)相当,具体取决于用户对食物重量的熟悉程度。
关键的洞察是,类别3和4——没有数量描述的餐点——实际上并不是语音记录的问题,而是份量意识的问题。如果你在文本搜索框中输入“沙拉”,你也会面临同样的模糊性。语音记录只是暴露了人们对食物具体思考的现有缺口。
Nutrola处理模糊输入的方法值得注意:与其默默猜测(这会导致类别4中看到的不准确数字),AI会提示你澄清。十个模糊描述中有六个触发了后续问题——“你在泰国餐厅点了什么?”或“你吃了什么小吃?”这种方式比猜测更准确,也是对模糊输入的负责任处理。
提高语音记录准确性的7个技巧
根据我们的50餐测试,以下是始终能产生最准确记录的做法:
说明数量,使用任何单位 — 克、杯、汤匙、片、个均可。“200克鸡肉”和“一杯米饭”都可以,AI会自动处理单位转换。
包括烹饪方法和脂肪 — “烤鸡肉”与“炸鸡肉”在同一份量下差别超过100卡路里。始终提到“用橄榄油煎”或“无油烘烤”。
为包装食品命名品牌 — “Chobani香草希腊酸奶”能提取确切的营养数据。“希腊酸奶”则给出一个通用估算,可能与特定产品相差20-50卡路里。
指定物品数量 — “三个鸡蛋”而不是“鸡蛋”。“两片披萨”而不是“一些披萨”。即使是近似数量(“大约一杯米饭”)也远比没有数量好。
按成分描述复合餐点 — 不要说“卷饼”,而是说“面饼、鸡肉、黑豆、米饭、奶酪、酸奶油和鳄梨”。这给AI提供了单独的项目,以便从验证的数据库中准确定价。
使用餐厅和菜单项名称 — “Chipotle鸡肉卷饼碗”比通用描述更准确,因为Nutrola可以直接提取该连锁店发布的营养数据。
回应澄清提示 — 当Nutrola询问后续问题时,回答它。那3秒钟的额外时间能将55%的准确猜测转变为95%的准确记录。
Nutrola的验证数据库如何提高语音准确性
这些结果的一个重要因素是支持AI解读的数据库。Nutrola使用的是100%营养师验证的食品数据库,而不是众包条目。这意味着当AI正确识别“鸡肉咖喱”时,返回的卡路里数据经过营养专业人士的审查和验证——而不是由随机用户提交的可能错误值。
众包数据库(许多竞争应用使用)通常包含重复条目,对于同一种食物的卡路里值差异很大。语音记录的“鸡胸肉”可能匹配到一个条目,其卡路里范围从165到350卡路里,具体取决于算法选择哪个重复项。Nutrola的验证数据库消除了这种变异性,因此语音记录与手动记录之间的准确性差距显著缩小。
结合条形码扫描(包装食品的识别率超过95%)、视觉餐食的AI照片记录和语音记录的免提使用,Nutrola提供了多种输入方式,所有方式均使用同一验证数据源。计划从每月€2.50起,提供3天免费试用,所有功能——包括无限语音记录——在所有等级中均可用,且没有广告。
常见问题解答
语音卡路里追踪的准确性与手动输入相比如何?
在我们的50餐测试中,语音记录在具体数量情况下实现了97.4%的准确率,这与手动数据库搜索的95-98%准确率相当或更高。关键变量是描述的具体性,而不是输入方式。
当语音记录无法理解我说的话时会发生什么?
Nutrola会询问澄清问题,而不是猜测。在我们的测试中,10个模糊描述中有6个触发了后续提示。这是设计使然——准确的“我需要更多信息”反应比沉默的500卡路里误估要好。
语音记录适用于自制餐点吗?
是的,并且在你用数量描述各个成分时效果最佳。“自制辣椒,200克牛肉,1罐红 kidney 豆,1罐切丁番茄,1汤匙橄榄油”在我们的测试中得分超过96%的准确率。将自制餐点描述为单一项目(“辣椒”)而没有细节则显著降低准确性。
语音记录能处理非英语食物名称吗,比如河粉、拌饭或沙克舒卡?
可以。我们的测试包括10种非英语菜肴,平均准确率为89.6%。Nutrola的数据库包括来自数十种美食的国际菜肴。知名菜肴(豆腐炒宽米粉、咖喱鸡、拌饭)的得分超过90%。不那么全球知名的菜肴(巴西黑豆炖肉、匈牙利炖牛肉)得分略低,在84-86%之间,但仍在可用范围内。
为什么“沙拉”仅得分24.3%?
因为简单的配菜沙拉(85卡路里)与丰盛的凯撒沙拉,配面包丁、奶酪和奶油调料(350卡路里)之间的差距巨大。AI默认选择了基本沙拉,这对实际餐点来说是错误的假设。说“凯撒沙拉,配面包丁和调料”会得分超过90%。
80%的整体准确率对于卡路里追踪来说足够吗?
80.1%的整体数据包括故意模糊和无法解析的输入。在你提供基本数量的情况下,准确率为97.4%。即使在80%的情况下,语音记录也比不记录要准确——研究表明,未记录的餐点实际上是0%准确,因为它们在你的每日总量中是不可见的。粗略估算总比缺失条目要好。
我如何立即提高语音记录的准确性?
影响最大的单一改变是说明数量。我们的数据表明,添加任何数量——即使是估算的“约一杯”或“中等份量”——能将准确率从62%提高到97%。第二个影响最大的改变是命名烹饪脂肪:“用橄榄油烹饪”或“用黄油煎”。
Nutrola的语音记录是否会随着我的习惯而逐渐改善?
Nutrola会学习你最近的餐点和常见的食物模式。如果你每天吃相同的早餐,AI会变得更快、更准确地解析你的描述。经常记录的项目在解读中优先考虑,从而减少你经常吃的餐点的模糊性。