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

5.9 KiB
Raw Blame History

Whisper 服务器端完整配置步骤

🎯 目标

让 Java 后端能够调用服务器上的 Whisper 服务进行语音识别


📋 前提条件

  • 服务器已安装 openai-whisper
  • 服务器已安装 ffmpeg
  • ⚠️ 需要安装flask、flask-cors

第一步:在服务器上安装剩余依赖

1. SSH 登录到服务器

ssh user@你的服务器IP

2. 配置 pip 使用清华镜像

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

3. 安装 Flask 依赖

pip install flask==2.3.0 flask-cors==4.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

4. 验证安装

pip list | grep -E "flask|whisper|cors"

应该看到:

flask              2.3.0
flask-cors         4.0.0
openai-whisper     (已安装的版本)

第二步:上传 whisper_server.py 到服务器

方式一:使用 SCP推荐

本地电脑的 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 上传到服务器任意目录

方式三:直接复制粘贴

# 在服务器上创建文件
vim /home/user/whisper/whisper_server.py

# 将本地的 whisper_server.py 内容复制粘贴进去

第三步:在服务器上启动 Whisper 服务

1. 进入文件目录

cd /home/user/whisper/

2. 测试运行(前台)

python whisper_server.py

看到以下输出说明启动成功:

============================================================
🎤 本地Whisper语音识别服务
============================================================
✅ 优势:
  1. 完全免费,无限次调用
  2. 离线运行,不需要网络
  ...
* Running on http://0.0.0.0:5001/

Ctrl+C 停止测试

3. 后台运行(生产环境)

nohup python whisper_server.py > whisper.log 2>&1 &

4. 查看运行状态

# 查看进程
ps aux | grep whisper_server

# 查看日志
tail -f whisper.log

# 查看端口
netstat -tunlp | grep 5001

第四步:配置防火墙开放端口

CentOS/RHEL 服务器

# 开放 5001 端口
sudo firewall-cmd --permanent --add-port=5001/tcp

# 重载防火墙
sudo firewall-cmd --reload

# 查看已开放端口
sudo firewall-cmd --list-ports

Ubuntu/Debian 服务器

# 开放 5001 端口
sudo ufw allow 5001/tcp

# 查看状态
sudo ufw status

阿里云/腾讯云等云服务器

还需要在云控制台的安全组规则中添加:

  • 端口5001
  • 协议TCP
  • 授权对象0.0.0.0/0 或指定 IP

第五步:验证服务可访问

1. 在服务器本地测试

curl http://localhost:5001/health

2. 从本地电脑测试

本地电脑 PowerShell 中执行:

curl http://你的服务器IP:5001/health

3. 浏览器测试

打开浏览器访问:

http://你的服务器IP:5001/health

预期返回结果

{
  "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 行:

private static final String WHISPER_URL = "http://你的服务器IP:5001";

第七步:重启 Java 应用

修改配置后,需要重启 Java 后端:

# 停止原来的服务
# 然后重新启动

# 或者如果使用了热部署,等待自动重启

第八步:测试完整流程

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 是否正确


📝 快速检查清单

在服务器上执行以下命令,确保一切就绪:

# 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

完成标志

当以下条件都满足时,配置完成:

  • 服务器上 pip 依赖已安装flask、flask-cors
  • whisper_server.py 已上传到服务器
  • Whisper 服务已启动(后台运行)
  • 端口 5001 可访问curl 测试通过)
  • Java 后端 IP 配置正确
  • Java 应用已重启
  • 前端可以正常调用语音评测功能

🎯 你的服务器 IP 是多少?

请告诉我你的服务器 IP 地址,我会检查 Java 配置是否需要修改。

当前 Java 配置的 IP192.168.0.106