# python_ai_interview_backend **Repository Path**: zhangxinnb/python_ai_interview_backend ## Basic Information - **Project Name**: python_ai_interview_backend - **Description**: AI模拟面试模型后端(python) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-21 - **Last Updated**: 2025-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 面试后端系统 一个基于深度学习的智能面试分析后端系统,提供语音识别、情感分析、压力检测、技术栈提取和多模态评分等功能。 ## 🌟 主要特性 - **🎙️ 语音识别 (ASR)**: 基于 Faster-Whisper 的高精度语音转文字 - **😊 情感分析**: 实时分析面试者的情感状态 (自信/紧张/冷静) - **📊 压力检测**: 基于声学特征的压力水平评估 - **🔍 技术栈提取**: 智能识别面试题目涉及的技术领域 - **🧠 多模态评分**: 综合多种数据源的面试表现评分 - **🌐 网络音频支持**: 支持处理云端存储的音频文件 ## 🏗️ 系统架构 ``` AI_Interview_Backend ├── 语音识别 (ASR) - Faster Whisper ├── 情感分析 - Wave2Vec2 模型 + 滑动窗口算法 ├── 压力检测 - OpenSMILE + 自定义算法 ├── 技术栈提取 - TF-IDF + LinearSVC 分类器 └── 多模态评分 - 神经网络融合模型 ``` ## 📋 系统要求 ### 最低配置 - **Python**: 3.8+ - **内存**: 8GB RAM - **存储**: 20GB 可用空间 - **操作系统**: Windows 10+ / Ubuntu 20.04+ / macOS 10.15+ ### 推荐配置 - **Python**: 3.9+ - **内存**: 16GB RAM - **存储**: 50GB SSD - **GPU**: NVIDIA GPU (可选,用于加速推理) ## 🚀 快速开始 ### 1. 环境准备 ```bash # 克隆项目 git clone [您的仓库URL] cd python_AI_Interview_backend # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # Linux/macOS: source venv/bin/activate # 安装依赖 pip install -r requirements.txt ``` ### 2. 模型准备 确保以下模型文件存在于 `model/` 目录下: - `w2v2-L-robust/` - 情感分析模型 - `faster-whisper-medium/` - ASR语音识别模型 - `scoring_model.pth` - 多模态评分模型 - `tech_stack_model/` - 技术栈提取模型 - `sbert_all_MiniLM_L6_v2/` - SBERT文本嵌入模型 ### 3. 环境检查 ```bash # 运行环境检查脚本 python check_deployment_env.py ``` 如果显示 "🎉 所有检查通过!" 则可以继续下一步。 ### 4. 启动服务 ```bash # 启动后端服务 python src/service/server_api.py ``` 服务启动后访问: - **API 文档**: http://localhost:8765/docs - **服务地址**: http://localhost:8765 ## 📡 API 接口 ### 1. 情感分析 ```http GET /analyze-emotion?path=<音频URL> ``` **响应示例**: ```json { "emotion": "Confident(自信)", "emotion_sequence": "Calm//Nervous//Confident" } ``` ### 2. 压力检测 ```http GET /stress/detection?path=<音频URL> ``` **响应示例**: ```json { "stress": 0.75, "f0_var": 0.234, "spectral_flux": 0.456, "energy_entropy": 0.123 } ``` ### 3. 语音识别 (WebSocket) ```javascript // WebSocket连接 ws://localhost:8765/ASR // 发送消息 {"path": "https://example.com/audio.webm"} // 接收响应 { "language": "zh", "text": "识别的文字内容", "code": 1 } ``` ### 4. 技术栈提取 ```http POST /extract-tech-stack Content-Type: application/json ["什么是Java多态?", "解释数据库范式"] ``` **响应示例**: ```json { "results": [ { "question": "什么是Java多态?", "tech_stacks": ["Java基础"] } ] } ``` ### 5. 多模态评分 ```http POST /multimodal/scoring Content-Type: application/json { "speechRate": [...], "audioEmotion": [...], "facialActions": [...], "bodyMovements": [...], "microExpression": [...], "stress": [...] } ``` **响应示例**: ```json { "score": 85.7 } ``` ## 🔧 核心技术 ### 情感分析算法 - **模型**: Wave2Vec2-Large-Robust - **算法**: 滑动窗口 + 中位数过滤 - **特征**: VAD (Valence-Arousal-Dominance) - **输出**: Confident/Nervous/Calm 三种状态 ### 压力检测算法 - **特征提取**: OpenSMILE eGeMAPS特征集 - **核心指标**: 基频变化、频谱通量、能量熵 - **算法**: 加权特征融合 + 鲁棒归一化 ### 技术栈提取 - **文本处理**: jieba分词 + TF-IDF向量化 - **分类器**: LinearSVC多标签分类 - **支持领域**: 17个技术栈类别 ## 🌐 云服务器部署 ### 1. 系统准备 ```bash # Ubuntu/Debian sudo apt update && sudo apt upgrade -y sudo apt install -y python3 python3-pip python3-venv git ffmpeg libsndfile1 # 上传项目代码和模型文件 scp -r python_AI_Interview_backend/ user@server:/path/to/ ``` ### 2. 环境配置 ```bash # 在服务器上 cd python_AI_Interview_backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 3. 环境验证 ```bash # 运行环境检查 python check_deployment_env.py ``` ### 4. 服务部署 ```bash # 方法1: 直接启动 (测试用) python src/service/server_api.py # 方法2: 使用systemd (生产环境) sudo systemctl start ai-interview sudo systemctl enable ai-interview # 方法3: 使用Gunicorn (高并发) gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8765 src.service.server_api:app ``` 详细部署指南请参考 `DEPLOYMENT_GUIDE.md` ## 📁 项目结构 ``` python_AI_Interview_backend/ ├── src/ │ ├── service/ # 核心服务模块 │ │ ├── server_api.py # FastAPI主服务 │ │ ├── analyze_audio_emotion.py # 情感分析 │ │ ├── stress_detector.py # 压力检测 │ │ ├── whisper_asr.py # 语音识别 │ │ ├── extract_tech_stack/ # 技术栈提取 │ │ └── multimodal/ # 多模态评分 │ ├── utils/ # 工具函数 │ └── temp_audio_wav/ # 临时音频文件 ├── model/ # AI模型文件 │ ├── w2v2-L-robust/ # 情感分析模型 │ ├── faster-whisper-medium/ # 语音识别模型 │ ├── scoring_model.pth # 多模态评分模型 │ ├── tech_stack_model/ # 技术栈提取模型 │ └── sbert_all_MiniLM_L6_v2/ # 文本嵌入模型 ├── check_deployment_env.py # 环境检查脚本 ├── requirements.txt # Python依赖 ├── README.md # 项目文档 └── DEPLOYMENT_GUIDE.md # 部署指南 ``` ## 🧪 测试 ### 单元测试 ```bash # 测试情感分析 python src/service/analyze_audio_emotion.py # 测试压力检测 python src/service/stress_detector.py # 测试环境完整性 python check_deployment_env.py ``` ### API测试 ```bash # 使用curl测试 curl "http://localhost:8765/analyze-emotion?path=https://example.com/audio.webm" # 或访问交互式文档 open http://localhost:8765/docs ``` ## 🔍 故障排除 ### 常见问题 1. **模型加载失败** ```bash # 检查模型文件是否存在 ls -la model/ # 查看详细错误日志 python src/service/server_api.py ``` 2. **OpenSMILE初始化失败** ```bash # 安装系统依赖 sudo apt install -y libsndfile1 libsox-dev # 重新安装opensmile pip uninstall opensmile pip install opensmile ``` 3. **网络音频下载失败** ```bash # 检查网络连接 curl -I https://example.com/audio.webm # 检查防火墙设置 sudo ufw status ``` ### 日志分析 ```bash # 查看服务日志 tail -f /var/log/ai-interview.log # 查看系统资源 htop free -h df -h ``` ## 📈 性能优化 ### 模型优化 - 启用GPU加速 (如果可用) - 使用模型量化减少内存占用 - 实现模型缓存机制 ### 服务优化 - 使用Gunicorn多进程部署 - 配置Nginx反向代理 - 实现结果缓存 (Redis) ### 网络优化 - CDN加速音频文件访问 - 压缩音频文件大小 - 实现音频预处理管道 ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 [MIT许可证](LICENSE) ## 🙏 致谢 - [Faster-Whisper](https://github.com/guillaumekln/faster-whisper) - 语音识别 - [OpenSMILE](https://www.audeering.com/opensmile/) - 音频特征提取 - [Sentence-Transformers](https://www.sbert.net/) - 文本嵌入 - [FastAPI](https://fastapi.tiangolo.com/) - Web框架 ## 📞 支持 如果您在使用过程中遇到问题: 1. 查看 [故障排除](#-故障排除) 部分 2. 运行 `python check_deployment_env.py` 检查环境 3. 查看项目 [Issues](https://github.com/your-repo/issues) 4. 提交新的 Issue 描述问题 --- **版本**: v1.0.0 **更新时间**: 2024-01-15 **兼容性**: Python 3.8+ | Windows/Linux/macOS