云计算百科
云计算领域专业知识百科平台

基于大语言模型的食堂语音反馈分析系统-完整源码论文毕设项目

========【重要提示:主页置顶文章找我咨询】=======

博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,不断的进行新技术的项目实战👈

可定制,需求的各位可以先收藏起来

1. 项目概述

1.1 项目名称

基于大语言模型的食堂语音反馈分析系统

1.2 项目背景

高校食堂通常通过纸质意见箱、即时聊天工具或分散表单收集学生反馈,这类方式存在录入效率低、反馈内容不规整、问题定位慢、商铺归档不直观等问题。本项目围绕“语音输入 + 自动分析 + 商铺级展示”构建一个可演示、可运行的毕业设计系统。

1.3 项目目标

  • 支持用户通过浏览器录入食堂反馈语音。

  • 自动完成语音转文字、文本清洗和结构化语义分析。

  • 将分析结果归档到对应商铺卡片。

  • 展示商铺评分、问题类别、情感分布与趋势变化图。

  • 支持商铺分析报告导出。

2. 系统功能

2.1 反馈输入

  • 支持浏览器麦克风录音。

  • 点击开始录音时,会先清空上一轮识别文本与总览分析结果,避免旧数据残留。

  • 录音结束后上传音频并提交转写任务。

  • 转写完成后在输入框中展示识别文本。

  • 支持用户手动修正识别文本后再提交分析。

2.2 文本处理与智能分析

  • 去除口语赘词与重复片段。

  • 统一食堂楼层表述、空格与重复片段等基础文本形式。

  • 基于大语言模型直接从系统内已知店铺清单中完成商铺匹配,并输出情感分析、问题归类、关键摘要、紧急度和问题权重。

  • 当前提示词已增强对英文别名、近音、空格拆分、拼写误差和同义表达的容错能力。

  • 当模型不可用、额度不足或输出异常时,使用规则兜底返回基础分析结果;兜底结果优先保证情感、问题类别和摘要可用。

2.3 总览分析区

  • 展示目标商铺。

  • 展示情感倾向。

  • 展示主要问题类别。

  • 展示紧急程度。

  • 展示综合评分。

  • 展示系统摘要、情感分值和问题权重。

2.4 商铺分析展示区

  • 以商铺卡片形式展示商铺名称、综合评分、情感状态、高频问题、最新摘要、反馈总数、今日反馈数和本周反馈数。

  • 点击卡片可切换右侧图表联动。

  • 支持商铺报告下载。

  • 支持通过弹窗查看当前商铺的趋势图与问题类别占比图。

  • 弹窗图表在每次打开时重新初始化,确保多次打开后仍能正常显示。

2.5 图表与报告区

  • 商铺评分对比图。

  • 问题类别占比图。

  • 情感分布图。

  • 商铺趋势变化图。

  • 下载当前选中商铺报告。

  • 右侧图表区支持随页面布局自适应拉伸,减少图表底部无效留白。

  • =======【重要提示:主页置顶文章找我咨询】=========

3. 技术架构

3.1 前端

  • Vue 3

  • Vite

  • Pinia

  • Vue Router

  • Element Plus

  • ECharts

  • Axios

3.2 后端

  • FastAPI

  • SQLAlchemy

  • SQLite

  • Pydantic Settings

  • Uvicorn

  • ReportLab

3.3 模型与服务

  • 阿里云 DashScope 长音频转写接口

  • 通义千问兼容 OpenAI 协议接口

  • 已知店铺清单驱动的大语言模型商铺匹配

  • 本地规则兜底分析

3.4 系统结构

系统采用前后端分离架构:

  • 前端负责录音、页面交互、状态展示、图表渲染和报告下载。

  • 后端负责音频接收、语音转写任务提交与轮询、文本清洗、智能分析、评分计算、数据入库和报告生成。

4. 目录结构

MealFeedbackAnalytics/
├─ backend/
│ ├─ app/
│ │ ├─ api/
│ │ ├─ core/
│ │ ├─ db/
│ │ ├─ models/
│ │ ├─ schemas/
│ │ ├─ services/
│ │ └─ utils/
│ ├─ data/
│ │ └─ seeds/
│ ├─ reports/
│ ├─ storage/
│ │ └─ audio/
│ ├─ main.py
│ ├─ pyproject.toml
│ └─ requirements.txt
├─ frontend/
│ ├─ src/
│ │ ├─ api/
│ │ ├─ components/
│ │ ├─ router/
│ │ ├─ stores/
│ │ ├─ styles/
│ │ └─ views/
│ ├─ index.html
│ ├─ package.json
│ └─ vite.config.ts
└─ docs/
  ├─ 需求文档.txt
  ├─ 开发方案设计文档.md
  ├─ 开发步骤文档.md
  └─ 项目说明文档.md

5. 核心业务流程

  • 用户打开前端页面并点击开始录音。

  • 前端清空上一轮识别文本、分析结果和关联音频状态。

  • 浏览器获取麦克风权限并录制音频。

  • 录音结束后,前端将音频上传到后端。

  • 后端提交阿里云长音频转写任务,前端轮询任务状态。

  • 转写成功后,识别文本回填到前端输入框。

  • 用户点击提交分析。

  • 后端执行文本清洗、大语言模型店铺匹配、多维分析、评分计算和结果入库。

  • 前端刷新总览分析区、商铺分析展示区和图表与报告区。

  • 用户可下载商铺分析报告,或通过商铺卡片查看弹窗图表。

  • 6. 数据存储说明

    系统使用 SQLite 进行本地持久化,主要包含以下数据实体:

    • 商铺表:存储商铺名称、分类、别名、当前评分、反馈数量等。

    • 反馈表:存储音频路径、原始文本、清洗文本、语言和创建时间。

    • 分析结果表:存储商铺分类、情感分值、问题分类、问题权重、摘要、紧急度和总评分。

    • 商铺统计表:存储商铺情感分布、问题分布和趋势点数据。

    • 评分历史表:存储商铺评分变化记录。

    项目首次启动时会自动初始化数据库并导入种子商铺与样例反馈。

    7. 接口说明

    后端统一前缀为 http://127.0.0.1:8000/api/v1。

    7.1 系统接口

    • GET /system 用途:系统健康检查。

    7.2 语音转写接口

    • POST /asr/upload-and-submit 用途:上传音频并提交长音频转写任务。

    • GET /asr/tasks/{task_id} 用途:查询转写任务状态与识别结果。

    • POST /asr/tasks/submit 用途:手动提交转写任务。

    7.3 文本分析接口

    • POST /feedback/analyze 用途:提交文本分析请求,返回商铺、情感、问题类别、权重、摘要和评分结果。

    7.4 商铺接口

    • GET /shops 用途:获取商铺卡片列表数据。

    • GET /shops/{shop_id} 用途:获取单个商铺的详细图表数据。

    7.5 图表汇总接口

    • GET /dashboard/summary 用途:获取首页图表与聚合统计数据。

    7.6 报告接口

    • GET /report/shops/{shop_id} 用途:下载指定商铺 PDF 报告。

    8. 运行环境

    8.1 后端环境

    • Python 3.12 及以上

    • 建议使用 uv

    • 操作系统:Windows / WSL / Linux 均可

    8.2 前端环境

    • Node.js 18 及以上

    • npm

    9. 环境变量配置

    后端通过 backend/.env 读取配置,至少需要以下变量:

    OSS_BUCKET_NAME=你的 OSS Bucket 名称
    OSS_ACCESS_KEY_ID=你的 OSS AccessKey ID
    OSS_ACCESS_KEY_SECRET=你的 OSS AccessKey Secret
    DASHSCOPE_API_KEY=你的 DashScope API Key

    9.1 OSS 相关变量如何申请

    本项目的音频文件会先上传到阿里云对象存储 OSS,再由阿里云长音频转写服务读取,因此需要先准备一个 OSS Bucket 和对应访问凭据。

    第一步:注册并登录阿里云账号
    • 打开阿里云官网并完成账号注册。

    • 登录后进入控制台。

    第二步:开通 OSS 服务
    • 在控制台搜索 对象存储 OSS。

    • 首次进入时按页面提示开通 OSS 服务。

    第三步:创建 Bucket
    • 进入 OSS 控制台后,点击“创建 Bucket”。

    • Bucket 名称 需要全局唯一,这个值就是后面要填写的 OSS_BUCKET_NAME。

    • 地域 建议选择与语音转写服务一致或较近的地域,减少上传与读取延迟。

    • 存储类型 选择标准存储即可。

    • 读写权限 建议选择“私有”,不要直接公开音频文件。

    创建完成后,你会得到一个 Bucket 名称,例如:

    OSS_BUCKET_NAME=meal-feedback-audio-demo

    第四步:创建 AccessKey
    • 在阿里云控制台右上角头像菜单中进入 AccessKey 管理。

    • 创建一组新的 AccessKey。

    • 系统会给出:

      • AccessKey ID

      • AccessKey Secret

    这两个值分别填写到:

    OSS_ACCESS_KEY_ID=你的 AccessKey ID
    OSS_ACCESS_KEY_SECRET=你的 AccessKey Secret

    注意事项:

    • AccessKey Secret 只在创建时完整展示一次,必须当场保存。

    • 不要把这两个值提交到 Git 仓库,也不要截图发给别人。

    • 建议专门为本项目创建一组最小权限的访问凭据。

    9.2 DASHSCOPE_API_KEY 如何申请

    本项目使用阿里云百炼平台 DashScope 的两个能力:

    • 长音频语音转写

    • 通义千问大语言模型分析

    因此 DASHSCOPE_API_KEY 是整个系统最关键的一个配置项。

    第一步:进入 DashScope / 阿里云百炼平台
    • 登录阿里云账号后,进入百炼或 DashScope 控制台。

    • 确认已经开通相关模型与 API 服务。

    第二步:创建 API Key
    • 在控制台中找到 API Key 管理 或 密钥管理。

    • 创建新的 API Key。

    • 创建完成后复制该密钥,这个值就是:

    DASHSCOPE_API_KEY=你的 DashScope API Key

    第三步:确认账号已开通所需能力

    至少需要确认两类能力可用:

    • 音频转写能力

    • 通义千问文本模型能力

    如果没有开通,对应接口调用时会报权限不足、额度不足或服务未授权。

    补充说明:

    • 如果 DashScope 控制台开启了“仅使用免费额度”模式,且免费额度耗尽,模型分析接口可能返回 403 Forbidden。

    • 出现该情况时,语音转写仍可能正常,但文本分析会退回规则兜底结果。

    • 若需要持续使用大语言模型完成店铺匹配与分析,需要在控制台确认模型服务可用状态与额度设置。

    9.3 .env 文件应该怎么写

    在 backend/ 目录下创建 .env 文件,填写你自己申请到的真实值,例如:

    OSS_BUCKET_NAME=meal-feedback-audio-demo
    OSS_ACCESS_KEY_ID=你的真实AccessKeyID
    OSS_ACCESS_KEY_SECRET=你的真实AccessKeySecret
    DASHSCOPE_API_KEY=你的真实DashScopeApiKey

    说明:

    • DASHSCOPE_API_KEY 同时用于阿里云长音频转写和通义千问分析接口。

    • 仓库中的 .env.example 只应作为字段参考,实际部署时应替换为你自己的有效凭据。

    • 前端默认请求地址为 http://127.0.0.1:8000/api/v1,如需修改,可通过 VITE_API_BASE_URL 覆盖。

    资料获取

    ========【重要提示:主页置顶文章找我】========

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 基于大语言模型的食堂语音反馈分析系统-完整源码论文毕设项目
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!