基于 Flutter Riverpod Image Picker 的鸿蒙智能菜谱应用解决今天吃什么的灵魂拷问欢迎加入开源鸿蒙跨平台社区 https://openharmonycrossplatform.csdn.net项目简介每天纠结今天吃什么HarmonyCookBook 来帮你拍照识别食材、智能推荐菜谱、语音朗读步骤让做饭变得简单有趣。核心功能一览功能说明拍照识别调用鸿蒙相机 AI 识别食材智能推荐根据冰箱存货推荐最佳菜谱语音朗读鸿蒙 TTS 引擎朗读烹饪步骤菜谱收藏收藏喜欢的菜谱方便查找购物清单自动生成缺失食材清单元服务卡片鸿蒙桌面卡片展示今日推荐技术栈技术用途Flutter跨平台 UI 框架Riverpod状态管理image_picker图片选择鸿蒙适配flutter_tts语音朗读sqflite本地菜谱数据库鸿蒙 API 21TTS、相机、AI 能力项目结构lib/ ├── models/ # 数据模型 │ └── recipe.dart # 菜谱模型 ├── services/ # 业务服务 │ ├── ingredient_recognition.dart # 食材识别 │ └── recipe_recommender.dart # 菜谱推荐引擎 ├── screens/ # 页面 │ └── recipe_detail.dart # 菜谱详情页 └── main.dart # 应用入口 ohos/ └── entry/src/main/ets/plugins/ └── TtsPlugin.ets # 鸿蒙TTS插件快速开始第一步环境准备Flutter SDK 3.0鸿蒙 DevEco Studio鸿蒙 6.0 设备或模拟器第二步添加依赖pubspec.yaml:dependencies:riverpod:^2.4.0image_picker:^1.0.5flutter_tts:^3.8.5sqflite:^2.3.0cached_network_image:^3.3.0第三步运行项目flutter pub get flutter run核心模块说明1. 菜谱模型 (Recipe)存储菜谱信息食材列表、烹饪步骤烹饪时长、难度等级标签分类家常/快手/低卡等食材匹配度计算2. 食材识别服务识别流程拍照 → 图片处理 → 鸿蒙AI识别 → 返回食材列表 ↓ 识别失败时降级到模拟数据3. 菜谱推荐引擎推荐策略按食材匹配度排序按标签分类推荐快速菜谱筛选15分钟内随机推荐不知道吃什么时4. 语音朗读 (TTS)基于鸿蒙 TTS 引擎中文语音合成可调节语速和音调分步骤朗读使用流程┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 拍照识别 │ ──▶ │ 智能推荐 │ ──▶ │ 选择菜谱 │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ 手动输入食材 ▼ ▼ ┌─────────────┐ ┌─────────────┐ │ 语音朗读 │ │ 食材管理 │ │ 跟随烹饪 │ └─────────────┘ └─────────────┘示例菜谱数据菜名时长难度标签番茄炒蛋10分钟简单家常、快手、下饭红烧肉60分钟中等硬菜、宴客蒜蓉西兰花8分钟简单健康、低卡酸辣土豆丝15分钟简单家常、快手食材匹配算法匹配度 已有食材 ∩ 菜谱所需食材 / 菜谱所需食材总数 示例 冰箱有番茄、鸡蛋、葱 番茄炒蛋需要番茄、鸡蛋、盐、糖、葱 匹配度 3/5 60%鸿蒙特性适配特性说明TTS 引擎鸿蒙原生语音合成相机 API鸿蒙相机能力调用AI 识别华为 ML Kit 食材识别元服务卡片桌面小组件展示推荐深色模式自适应系统主题运行效果拍照识别- 准确率高支持常见食材语音朗读- 双手不沾手机也能跟做智能推荐- 减少食材浪费省钱又省心常见问题Q: 识别不准确怎么办A: 建议在光线充足的环境拍照食材摆放清晰可见。Q: 支持哪些语音A: 目前支持中文普通话后续会添加方言支持。Q: 菜谱数据从哪来A: 内置常用菜谱后续支持用户上传和社区分享。注意事项权限申请相机、麦克风、存储权限需用户授权网络依赖AI 识别需要网络离线可使用本地菜谱TTS 初始化首次使用需等待 TTS 引擎加载完成扩展建议接入真实 AI 服务百度/华为 ML Kit添加营养分析功能支持菜谱分享到社交平台添加视频教程支持多人协作烹饪模式许可证MIT License今天吃什么让 HarmonyCookBook 帮你决定