# Whisper 服务器端完整配置步骤 ## 🎯 目标 让 Java 后端能够调用服务器上的 Whisper 服务进行语音识别 --- ## 📋 前提条件 - ✅ 服务器已安装 openai-whisper - ✅ 服务器已安装 ffmpeg - ⚠️ 需要安装:flask、flask-cors --- ## 第一步:在服务器上安装剩余依赖 ### 1. SSH 登录到服务器 ```bash ssh user@你的服务器IP ``` ### 2. 配置 pip 使用清华镜像 ```bash pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 3. 安装 Flask 依赖 ```bash pip install flask==2.3.0 flask-cors==4.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 4. 验证安装 ```bash pip list | grep -E "flask|whisper|cors" ``` 应该看到: ``` flask 2.3.0 flask-cors 4.0.0 openai-whisper (已安装的版本) ``` --- ## 第二步:上传 whisper_server.py 到服务器 ### 方式一:使用 SCP(推荐) 在**本地电脑**的 PowerShell 中执行: ```powershell # 进入项目目录 cd C:\Users\Administrator\Desktop\Project\ry_study\Test\python # 上传文件到服务器 scp whisper_server.py user@你的服务器IP:/home/user/whisper/ ``` ### 方式二:使用 FTP 工具 使用 FileZilla 或 WinSCP 将 `whisper_server.py` 上传到服务器任意目录 ### 方式三:直接复制粘贴 ```bash # 在服务器上创建文件 vim /home/user/whisper/whisper_server.py # 将本地的 whisper_server.py 内容复制粘贴进去 ``` --- ## 第三步:在服务器上启动 Whisper 服务 ### 1. 进入文件目录 ```bash cd /home/user/whisper/ ``` ### 2. 测试运行(前台) ```bash python whisper_server.py ``` 看到以下输出说明启动成功: ``` ============================================================ 🎤 本地Whisper语音识别服务 ============================================================ ✅ 优势: 1. 完全免费,无限次调用 2. 离线运行,不需要网络 ... * Running on http://0.0.0.0:5001/ ``` 按 `Ctrl+C` 停止测试 ### 3. 后台运行(生产环境) ```bash nohup python whisper_server.py > whisper.log 2>&1 & ``` ### 4. 查看运行状态 ```bash # 查看进程 ps aux | grep whisper_server # 查看日志 tail -f whisper.log # 查看端口 netstat -tunlp | grep 5001 ``` --- ## 第四步:配置防火墙开放端口 ### CentOS/RHEL 服务器 ```bash # 开放 5001 端口 sudo firewall-cmd --permanent --add-port=5001/tcp # 重载防火墙 sudo firewall-cmd --reload # 查看已开放端口 sudo firewall-cmd --list-ports ``` ### Ubuntu/Debian 服务器 ```bash # 开放 5001 端口 sudo ufw allow 5001/tcp # 查看状态 sudo ufw status ``` ### 阿里云/腾讯云等云服务器 还需要在**云控制台**的安全组规则中添加: - 端口:5001 - 协议:TCP - 授权对象:0.0.0.0/0 或指定 IP --- ## 第五步:验证服务可访问 ### 1. 在服务器本地测试 ```bash curl http://localhost:5001/health ``` ### 2. 从本地电脑测试 在**本地电脑** PowerShell 中执行: ```powershell curl http://你的服务器IP:5001/health ``` ### 3. 浏览器测试 打开浏览器访问: ``` http://你的服务器IP:5001/health ``` ### 预期返回结果 ```json { "status": "ok", "service": "Whisper语音识别服务", "model": "base" } ``` ✅ **如果能看到这个返回,说明 Whisper 服务配置成功!** --- ## 第六步:配置 Java 后端连接 ### 当前配置 Java 后端已配置为:`http://192.168.0.106:5001` ### 需要确认的事项 **情况 1:如果你的服务器 IP 是 192.168.0.106** ✅ 不需要修改,直接使用 **情况 2:如果服务器 IP 不是 192.168.0.106** ❌ 需要修改 Java 代码 修改文件: ``` Study-Vue-redis/ry-study-system/src/main/java/com/ddnai/system/service/voice/LocalWhisperService.java ``` 修改第 36 行: ```java private static final String WHISPER_URL = "http://你的服务器IP:5001"; ``` --- ## 第七步:重启 Java 应用 修改配置后,需要重启 Java 后端: ```bash # 停止原来的服务 # 然后重新启动 # 或者如果使用了热部署,等待自动重启 ``` --- ## 第八步:测试完整流程 ### 1. 查看 Java 后端日志 启动 Java 应用后,应该看到类似日志: ``` 本地Whisper服务 可用 ✅ ``` ### 2. 测试语音评测功能 通过前端或 API 测试语音评测功能,查看是否能正常识别 --- ## 🔧 故障排查 ### 问题 1:curl 访问 5001 端口超时 **原因:** 防火墙未开放端口 **解决:** 检查服务器防火墙和云安全组 ### 问题 2:服务启动报错 "module 'whisper' has no attribute 'load_model'" **原因:** 文件名冲突 **解决:** 确保文件名是 `whisper_server.py` 而不是 `whisper.py` ### 问题 3:识别失败 "[WinError 2] 系统找不到指定的文件" **原因:** 缺少 ffmpeg **解决:** 在服务器上安装 ffmpeg ### 问题 4:Java 连接不上 Whisper 服务 **原因:** IP 地址配置错误 **解决:** 检查 `LocalWhisperService.java` 第 36 行的 IP 是否正确 --- ## 📝 快速检查清单 在服务器上执行以下命令,确保一切就绪: ```bash # 1. 检查 ffmpeg ffmpeg -version # 2. 检查 Python 包 pip list | grep -E "flask|whisper|cors" # 3. 检查 Whisper 服务进程 ps aux | grep whisper_server # 4. 检查端口监听 netstat -tunlp | grep 5001 # 5. 测试服务 curl http://localhost:5001/health ``` --- ## ✅ 完成标志 当以下条件都满足时,配置完成: - [x] 服务器上 pip 依赖已安装(flask、flask-cors) - [x] whisper_server.py 已上传到服务器 - [x] Whisper 服务已启动(后台运行) - [x] 端口 5001 可访问(curl 测试通过) - [x] Java 后端 IP 配置正确 - [x] Java 应用已重启 - [x] 前端可以正常调用语音评测功能 --- ## 🎯 你的服务器 IP 是多少? **请告诉我你的服务器 IP 地址,我会检查 Java 配置是否需要修改。** 当前 Java 配置的 IP:`192.168.0.106`