guoyu/Test/python/完整配置步骤.md
2025-12-11 23:28:07 +08:00

292 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 测试语音评测功能,查看是否能正常识别
---
## 🔧 故障排查
### 问题 1curl 访问 5001 端口超时
**原因:** 防火墙未开放端口
**解决:** 检查服务器防火墙和云安全组
### 问题 2服务启动报错 "module 'whisper' has no attribute 'load_model'"
**原因:** 文件名冲突
**解决:** 确保文件名是 `whisper_server.py` 而不是 `whisper.py`
### 问题 3识别失败 "[WinError 2] 系统找不到指定的文件"
**原因:** 缺少 ffmpeg
**解决:** 在服务器上安装 ffmpeg
### 问题 4Java 连接不上 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`