# little-cook **Repository Path**: bluekey2000/little-cook ## Basic Information - **Project Name**: little-cook - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-22 - **Last Updated**: 2025-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小厨神 - 微信小程序 这是一个关于做菜的微信小程序,用户可以通过文本输入、语音输入或图片识别来搜索菜谱视频。 ## 功能特点 - 文本搜索:直接输入菜名或食材进行搜索 - 语音搜索:支持语音输入,自动识别关键词 - 图片识别:拍照或上传图片识别菜品 - 关键词提取:智能分析输入内容,提取关键菜名 - 视频展示:根据关键词搜索相关视频并展示 - 搜索历史:保存用户的搜索记录,方便重复查询 - 热门推荐:展示热门菜谱供用户参考 - 性能优化:使用按需注入和用时注入提升小程序加载性能 ## 项目结构 ``` little-cook/ ├── pages/ // 页面文件 │ ├── index/ // 首页 │ └── result/ // 搜索结果页 ├── components/ // 组件 │ └── video-card/ // 视频卡片组件(用时注入) ├── utils/ // 工具类 │ ├── keyword.js // 关键词提取工具 │ ├── tencentCloud.js // 腾讯云API集成模块 │ ├── voiceRecognition.js // 语音识别工具 │ └── request.js // 网络请求工具 ├── images/ // 图片资源 ├── app.js // 应用逻辑 ├── app.json // 应用配置 ├── app.wxss // 应用样式 └── project.config.json // 项目配置(启用按需注入) ``` ## 开发环境 - 微信开发者工具 - 微信小程序基础库 2.20.1+ (支持按需注入和用时注入) ## 语音功能实现 本项目提供两种语音识别方案: ### 基础方案(本地模拟) - 使用微信原生录音API实现语音输入 - 使用 `wx.getRecorderManager()` API进行音频录制 - 设置最长60秒的录音时长 - 本地模拟语音识别结果 ### 进阶方案(腾讯云语音识别) 本项目集成了腾讯云的语音识别服务(ASR),提供更准确的语音识别功能: 1. **配置步骤** - 注册腾讯云账号并开通语音识别服务:https://cloud.tencent.com/product/asr - 获取 SecretId 和 SecretKey:访问腾讯云访问管理控制台 - 修改配置文件:打开 `utils/tencentCloud.js` 文件,填入你的密钥信息 2. **使用方法** ```javascript const voiceRecognition = require('./utils/voiceRecognition'); // 启动录音并识别 (使用腾讯云服务) async function startVoiceSearch() { try { // 参数true表示使用腾讯云服务,false使用本地简易识别 // 第二个参数设置录音时长(毫秒) const keyword = await voiceRecognition.recordAndRecognize(true, 5000); console.log('识别关键词:', keyword); // 使用关键词进行后续处理... } catch (error) { console.error('语音识别失败:', error); } } ``` 3. **注意事项** - 腾讯云ASR服务为付费服务,使用前请了解其计费规则 - 签名算法在实际项目中需完整实现,当前为简化示例 - 确保小程序已申请麦克风使用权限 - 正式上线前,需配置腾讯云域名为合法域名 4. **故障处理** 如服务请求失败,系统会自动降级使用本地基础识别模式。 ## 语音识别问题排查 如果遇到语音识别不准确或无法识别的问题,可按照以下步骤进行排查: 1. **启用调试模式** 在首页长按logo区域可以启用调试模式,测试API连接状态 2. **检查录音权限** 确保小程序已获得录音权限,可在app.json中添加: ```json "permission": { "scope.record": { "desc": "需要录音权限以支持语音搜索功能" } } ``` 3. **检查录音参数** 尝试调整录音参数以提高音质: - 增加采样率(sampleRate)至48000 - 增加编码码率(encodeBitRate)至96000 - 修改音频格式(format)为wav 4. **检查网络连接** 确保设备网络连接良好,云服务调用需要稳定的网络环境 5. **检查控制台日志** 查看控制台是否有错误信息,可以提供更具体的问题线索 6. **增加录音时长** 如果语音较长,可以增加录音时长,默认为3秒: ```javascript // 设置10秒录音时长 voiceRecognition.recordAndRecognize(true, 10000); ``` 7. **测试腾讯云连接** 使用调试面板中的"测试连接"功能,检查与腾讯云服务的连通性 8. **检查密钥配置** 确认SecretId和SecretKey配置正确,且API密钥有效且未过期 ## 性能优化 本项目使用了微信小程序的两个性能优化特性: 1. **按需注入(requiredComponents)** - 在 project.config.json 中启用,设置 lazyCodeLoading: "requiredComponents" - 小程序仅注入当前访问页面所需的自定义组件和页面代码 - 未访问的页面和未使用的组件不会被加载和初始化 2. **用时注入(componentPlaceholder)** - 为视频卡片组件配置了占位组件 - 组件首次渲染前不会被注入 - 渲染时先显示占位内容,再异步加载实际组件 - 适用于页面中较重且不在首屏的组件 ## 如何使用 1. 使用微信开发者工具打开项目 2. 在"详情"面板中配置AppID 3. 编译和预览小程序 ## 注意事项 - 项目中的API地址为示例地址,实际开发中需要替换为真实的后端API - 图片资源需要自行准备并放置在images目录下 - 视频搜索功能目前使用模拟数据,实际项目中需要对接真实的视频搜索API - 确保 project.config.json 中的 lazyCodeLoading 配置正确 - 仅在必要的组件上使用用时注入,避免过度使用造成用户体验下降 - 录音时长限制为60秒,可根据实际需求调整 ## 后续开发计划 - 完善菜谱详情页 - 添加用户收藏功能 - 支持分享功能 - 加入评论系统 - 优化关键词提取算法 - 进一步优化小程序加载性能