256 lines
4.5 KiB
Markdown
256 lines
4.5 KiB
Markdown
# Whisper 语音识别服务 - 服务器部署指南
|
||
|
||
## 一、环境要求
|
||
|
||
- Python 3.8+
|
||
- 2GB+ 内存
|
||
- 2GB+ 硬盘空间(用于 Whisper 模型)
|
||
- ffmpeg
|
||
|
||
---
|
||
|
||
## 二、安装步骤(内网服务器)
|
||
|
||
### 1️⃣ 安装 ffmpeg
|
||
|
||
#### CentOS/RHEL 服务器
|
||
```bash
|
||
sudo yum install -y epel-release
|
||
sudo yum install -y ffmpeg
|
||
```
|
||
|
||
#### Ubuntu/Debian 服务器
|
||
```bash
|
||
sudo apt update
|
||
sudo apt install -y ffmpeg
|
||
```
|
||
|
||
#### Windows 服务器
|
||
```powershell
|
||
# 下载 ffmpeg
|
||
# https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
|
||
# 解压到 C:\ffmpeg
|
||
# 添加环境变量:C:\ffmpeg\bin
|
||
```
|
||
|
||
验证安装:
|
||
```bash
|
||
ffmpeg -version
|
||
```
|
||
|
||
---
|
||
|
||
### 2️⃣ 安装 Python 依赖(使用清华镜像)
|
||
|
||
#### 方式一:自动安装(推荐)
|
||
|
||
**Linux 服务器:**
|
||
```bash
|
||
chmod +x install_whisper.sh
|
||
./install_whisper.sh
|
||
```
|
||
|
||
**Windows 服务器:**
|
||
```cmd
|
||
install_whisper.bat
|
||
```
|
||
|
||
#### 方式二:手动安装
|
||
|
||
```bash
|
||
# 配置镜像源
|
||
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||
```
|
||
|
||
---
|
||
|
||
### 3️⃣ 首次运行(下载模型)
|
||
|
||
```bash
|
||
python whisper_server.py
|
||
```
|
||
|
||
**首次运行时,会自动下载 Whisper base 模型(约 140MB)**
|
||
|
||
下载位置:
|
||
- Linux: `~/.cache/whisper/`
|
||
- Windows: `C:\Users\用户名\.cache\whisper\`
|
||
|
||
⚠️ **内网环境注意:**
|
||
如果服务器无法联网下载模型,需要**离线下载**:
|
||
|
||
```bash
|
||
# 在有网络的机器上下载模型
|
||
python -c "import whisper; whisper.load_model('base')"
|
||
|
||
# 将模型文件复制到服务器
|
||
# 模型文件:base.pt(约 140MB)
|
||
# 位置:~/.cache/whisper/base.pt
|
||
```
|
||
|
||
---
|
||
|
||
### 4️⃣ 启动服务
|
||
|
||
#### 前台运行(测试用)
|
||
```bash
|
||
python whisper_server.py
|
||
```
|
||
|
||
#### 后台运行(生产环境)
|
||
|
||
**Linux - 使用 nohup:**
|
||
```bash
|
||
nohup python whisper_server.py > whisper.log 2>&1 &
|
||
```
|
||
|
||
**Linux - 使用 systemd(推荐):**
|
||
创建服务文件 `/etc/systemd/system/whisper.service`:
|
||
|
||
```ini
|
||
[Unit]
|
||
Description=Whisper Speech Recognition Service
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=root
|
||
WorkingDirectory=/path/to/project/Test/python
|
||
ExecStart=/usr/bin/python3 whisper_server.py
|
||
Restart=always
|
||
RestartSec=10
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
启动服务:
|
||
```bash
|
||
sudo systemctl daemon-reload
|
||
sudo systemctl start whisper
|
||
sudo systemctl enable whisper # 开机自启
|
||
sudo systemctl status whisper # 查看状态
|
||
```
|
||
|
||
**Windows - 使用 NSSM(推荐):**
|
||
```powershell
|
||
# 下载 NSSM:https://nssm.cc/download
|
||
nssm install Whisper "C:\Python\python.exe" "C:\path\to\whisper_server.py"
|
||
nssm start Whisper
|
||
```
|
||
|
||
---
|
||
|
||
## 三、验证服务
|
||
|
||
### 1. 健康检查
|
||
```bash
|
||
curl http://服务器IP:5001/health
|
||
```
|
||
|
||
返回:
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"service": "Whisper语音识别服务",
|
||
"model": "base"
|
||
}
|
||
```
|
||
|
||
### 2. 测试识别
|
||
```bash
|
||
curl -X POST -F "file=@test.mp3" -F "language=zh" http://服务器IP:5001/recognize
|
||
```
|
||
|
||
---
|
||
|
||
## 四、Java 后端配置
|
||
|
||
修改 `LocalWhisperService.java` 中的服务地址:
|
||
|
||
```java
|
||
private static final String WHISPER_URL = "http://服务器IP:5001";
|
||
```
|
||
|
||
重启 Java 应用。
|
||
|
||
---
|
||
|
||
## 五、防火墙配置
|
||
|
||
### CentOS/RHEL
|
||
```bash
|
||
sudo firewall-cmd --permanent --add-port=5001/tcp
|
||
sudo firewall-cmd --reload
|
||
```
|
||
|
||
### Ubuntu/Debian
|
||
```bash
|
||
sudo ufw allow 5001/tcp
|
||
```
|
||
|
||
### Windows
|
||
```powershell
|
||
netsh advfirewall firewall add rule name="Whisper Service" dir=in action=allow protocol=TCP localport=5001
|
||
```
|
||
|
||
---
|
||
|
||
## 六、性能优化建议
|
||
|
||
### 1. 使用更小的模型(更快)
|
||
编辑 `whisper_server.py` 第 48 行:
|
||
```python
|
||
whisper_model = whisper.load_model("tiny") # 最快,准确度降低
|
||
```
|
||
|
||
### 2. 使用更大的模型(更准确)
|
||
```python
|
||
whisper_model = whisper.load_model("small") # 准确度提升,速度降低
|
||
```
|
||
|
||
### 3. GPU 加速(如果有显卡)
|
||
```python
|
||
whisper_model = whisper.load_model("base", device="cuda")
|
||
```
|
||
|
||
---
|
||
|
||
## 七、常见问题
|
||
|
||
### Q1: 模型下载失败?
|
||
**A:** 使用离线下载,手动复制模型文件到 `~/.cache/whisper/`
|
||
|
||
### Q2: 识别速度慢?
|
||
**A:** 换用 `tiny` 模型,或使用 GPU
|
||
|
||
### Q3: 内存不足?
|
||
**A:** 至少 2GB 内存,关闭其他服务
|
||
|
||
### Q4: 无法访问服务?
|
||
**A:** 检查防火墙、端口、IP 地址配置
|
||
|
||
---
|
||
|
||
## 八、卸载
|
||
|
||
```bash
|
||
# 停止服务
|
||
sudo systemctl stop whisper
|
||
|
||
# 卸载 Python 包
|
||
pip uninstall openai-whisper flask flask-cors
|
||
|
||
# 删除模型文件
|
||
rm -rf ~/.cache/whisper/
|
||
```
|
||
|
||
---
|
||
|
||
## 联系支持
|
||
|
||
如有问题,请检查日志文件 `whisper.log`
|