使用 Next.js、FastAPI 和最先进的 AI 模型的现代全栈情绪识别应用程序。

多模态情感识别:融合文本、图像与语音的情感分析解决方案

在当今数字化时代,理解人类情感已成为人工智能领域的重要研究方向。无论是社交媒体互动、客户服务还是心理健康监测,情感识别技术都扮演着关键角色。本文将介绍一款创新的多模态情感识别应用,它能够通过文本、图像和语音三种不同模态的数据,全面解析人类情感状态。

✨ 系统功能简介

  • 🎨 现代 UI - 使用 Tailwind CSS v4 进行漂亮的渐进设计
  • 📝 文本分析 - 从书面文本中检测情绪
  • 📸 图片上传 - 从照片中进行面部情绪分析
  • 🎤 语音分析 - 录音和音调情绪检测
  • 🤖 机器学习 - 决策树和 KNN 预测
  • 📊 可视化效果 - 交互式置信度图
  • 💾 历史跟踪 - 保存和查看过去的分析

前端技术栈

  • Next.js 16:采用 App Router 和 Turbopack,提供卓越的性能和开发体验
  • TypeScript:带来类型安全,减少运行时错误
  • Tailwind CSS v4:实现精美的梯度设计和响应式布局
  • Lucide React Icons:提供直观的图标系统,增强用户体验

后端技术栈

  • FastAPI:高性能的 Python API 框架,支持异步操作
  • Hugging Face Transformers:提供预训练的 NLP 模型
  • PyTorch:强大的深度学习框架,支持模型训练和推理
  • Scikit-learn:实现决策树和 KNN 等传统机器学习算法
  • Pandas & Matplotlib:用于数据处理和可视化

📁 项目结构

<span style="background-color:#e6eaef"><span style="color:#010409"><span style="color:#010409"><span style="background-color:#e6eaef"><code>.
├── backend/
│   ├── main.py              # FastAPI server & AI logic
│   └── requirements.txt     # Python dependencies
├── frontend/
│   ├── app/
│   │   ├── page.tsx        # Main UI component
│   │   ├── layout.tsx      # Root layout
│   │   └── globals.css     # Global styles
│   └── package.json
├── start-backend.sh         # Backend startup (Mac/Linux)
├── start-frontend.sh        # Frontend startup (Mac/Linux)
├── start-backend.bat        # Backend startup (Windows)
├── start-frontend.bat       # Frontend startup (Windows)
└── README.md
</code></span></span></span></span>

前置条件

  • Python 3.10-3.13(注意:不支持 Python 3.14)
  • Node.js 18 + 和 npm
  • 麦克风访问权限(用于语音分析)
  • 2-3 GB 磁盘空间(用于存储 AI 模型)

安装与运行步骤

1. 启动后端服务(终端 1):

# Mac/Linux
./start-backend.sh

# Windows
start-backend.bat

2. 启动前端应用(终端 2):

# Mac/Linux
./start-frontend.sh

# Windows
start-frontend.bat

3. 打开浏览器访问:

使用指南:如何进行情感分析

使用该应用进行情感分析非常简单直观:

  1. 文本分析:在文本框中输入您的感受或任何文本内容
  2. 图像分析:点击 "上传" 按钮选择照片,或使用 "相机" 直接拍摄(如果设备支持)
  3. 语音分析:点击 "开始录音",清晰说话 5-10 秒,然后点击 "停止"
  4. 开始分析:点击 "分析情感" 按钮
  5. 查看结果:系统会展示情感分类、置信度图表和机器学习预测结果

架构设计:前后端分离的高效协同

该项目采用前后端分离的架构,确保了系统的灵活性和可扩展性:

┌─────────────────┐         ┌─────────────────┐
│   Next.js UI    │ ◄─────► │  FastAPI Server │
│  (Port 3000)    │  HTTP   │   (Port 8000)   │
└─────────────────┘         └─────────────────┘
                                     │
                            ┌────────┴────────┐
                            │   AI Models     │
                            │  - Text (RoBERTa)│
                            │  - Image (ViT)  │
                            │  - Audio (Wav2Vec2)│
                            └─────────────────┘
  • 前端(Next.js):负责用户界面渲染和用户交互,通过 HTTP 请求与后端通信
  • 后端(FastAPI):处理业务逻辑,协调三个 AI 模型的运行,并向前端返回分析结果
  • AI 模型层:三个专门优化的模型分别处理文本、图像和语音数据,提取情感特征

部署指南:从本地到生产环境

后端部署(适用于 Railway/Render/AWS 等平台)

pip install -r backend/requirements.txt
uvicorn backend.main:app --host 0.0.0.0 --port $PORT

前端部署(推荐使用 Vercel)

cd frontend
npm run build

部署时需设置环境变量:NEXT_PUBLIC_API_URL=https://your-backend-url.com

常见问题与解决方案

在使用过程中,您可能会遇到一些常见问题,以下是解决方案:

🐛 常见问题解决

后端无法启动:

  • 检查 Python 版本:python3 --version(必须是 3.10-3.13)
  • 重建虚拟环境:rm -rf venv && python3.13 -m venv venv
  • 首次运行会下载约 1-2GB 的 AI 模型,可能需要 1-2 分钟

前端无法启动:

  • 检查 Node.js 版本:node --version(必须是 18+)
  • 重新安装依赖:cd frontend && rm -rf node_modules && npm install

分析失败:

  • 确保后端显示 "✅ Models loaded successfully"
  • 检查后端是否在 8000 端口运行
  • 查看浏览器控制台(F12)寻找错误信息

音频功能不正常:

  • 在浏览器中授予麦克风权限
  • 清晰说话 5-10 秒
  • 推荐使用 Chrome 或 Edge 浏览器以获得最佳兼容性

📊 API 端点

  • GET /- 健康检查
  • GET /health- 模型状态
  • POST /analyze- 分析情绪(多部分/表单数据)
    • text:字符串
    • image:文件
    • audio:文件
  • GET /history?limit=10- 获取分析历史记录

后端部署(适用于 Railway/Render/AWS 等平台)

pip install -r backend/requirements.txt
uvicorn backend.main:app --host 0.0.0.0 --port $PORT

前端部署(推荐使用 Vercel)

cd frontend
npm run build

部署时需设置环境变量:NEXT_PUBLIC_API_URL=https://your-backend-url.com

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐