guoyu/log/Whisper服务启动说明.txt
2025-12-11 23:28:07 +08:00

261 lines
6.7 KiB
Plaintext
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.

====================================
Windows 服务器 Whisper 服务启动指南
====================================
【前置条件】
1. Python 已安装(推荐 Python 3.8+
2. 已安装依赖pip install flask openai-whisper
【快速启动步骤】
步骤1: 定位 Whisper 服务目录
---------------------------------------
请告诉我你的 Whisper 服务在哪个目录,例如:
- D:\whisper-service\
- C:\Program Files\whisper\
- 或其他位置
步骤2: 启动服务
---------------------------------------
方式1使用命令行
1. 打开 PowerShell 或 CMD
2. 进入 Whisper 服务目录
cd D:\whisper-service
3. 启动服务
python app.py
或指定完整路径:
python D:\whisper-service\app.py
方式2使用启动脚本
创建 start_whisper.bat 文件:
---------------------------------------
@echo off
cd /d D:\whisper-service
echo 正在启动 Whisper 服务...
python app.py
pause
---------------------------------------
双击运行 start_whisper.bat
步骤3: 确认启动成功
---------------------------------------
看到以下信息说明启动成功:
✓ "Running on http://0.0.0.0:5001"
✓ "Running on http://127.0.0.1:5001"
✓ "Whisper 模型加载完成"
不要关闭这个窗口!保持服务运行。
步骤4: 测试连接
---------------------------------------
新开一个 PowerShell/CMD 窗口:
方式1使用 curl推荐
curl http://localhost:5001/health
预期返回:
{"status":"ok"}
方式2使用浏览器
在浏览器访问http://localhost:5001/health
方式3运行测试脚本
双击运行Windows快速测试Whisper.bat
步骤5: 测试 Java 应用连接
---------------------------------------
1. 确保 Java 应用已启动
2. 访问http://localhost:8080/test/whisper/check
3. 应该看到:
{
"code": 200,
"msg": "连接成功",
"data": {
"available": true,
"status": "运行中"
}
}
【常见问题】
问题1找不到 python 命令
---------------------------------------
解决方案:
1. 检查 Python 是否已安装
python --version
2. 如果未安装,下载安装:
https://www.python.org/downloads/
3. 安装时勾选 "Add Python to PATH"
问题2提示找不到 flask 或 whisper 模块
---------------------------------------
安装依赖:
pip install flask
pip install openai-whisper
或一起安装:
pip install flask openai-whisper
问题3端口 5001 被占用
---------------------------------------
查找占用进程:
netstat -ano | findstr :5001
结束进程:
taskkill /PID <进程ID> /F
或修改 Whisper 服务端口(需同时修改 Java 配置)
问题4Whisper 服务目录不存在
---------------------------------------
如果没有 Whisper 服务代码,可以创建:
1. 创建目录:
mkdir D:\whisper-service
cd D:\whisper-service
2. 创建 app.py 文件(参考下面的示例代码)
3. 安装依赖:
pip install flask openai-whisper
4. 启动服务:
python app.py
【Whisper 服务示例代码】
---------------------------------------
如果需要创建 Whisper 服务,保存以下内容为 app.py
from flask import Flask, request, jsonify
import whisper
import os
import tempfile
app = Flask(__name__)
# 加载模型
print("正在加载 Whisper 模型...")
model = whisper.load_model("base")
print("✓ Whisper 模型加载完成")
@app.route('/health', methods=['GET'])
def health():
return jsonify({"status": "ok"})
@app.route('/recognize', methods=['POST'])
def recognize():
try:
file = request.files['file']
language = request.form.get('language', 'zh')
# 保存临时文件
with tempfile.NamedTemporaryFile(delete=False, suffix='.mp3') as tmp:
file.save(tmp.name)
temp_path = tmp.name
# 识别
result = model.transcribe(temp_path, language=language)
text = result['text']
# 删除临时文件
os.remove(temp_path)
return jsonify({
"code": 200,
"msg": "识别成功",
"data": {"text": text}
})
except Exception as e:
return jsonify({"code": 500, "msg": str(e)}), 500
@app.route('/evaluate', methods=['POST'])
def evaluate():
try:
file = request.files['file']
standard_text = request.form.get('text', '')
with tempfile.NamedTemporaryFile(delete=False, suffix='.mp3') as tmp:
file.save(tmp.name)
temp_path = tmp.name
result = model.transcribe(temp_path, language='zh')
recognized_text = result['text']
os.remove(temp_path)
# 简单评分
score = calculate_similarity(recognized_text, standard_text)
return jsonify({
"code": 200,
"msg": "评测成功",
"data": {
"text": recognized_text,
"score": int(score * 100),
"accuracy": int(score * 100),
"fluency": int(score * 100),
"completeness": int(score * 100),
"pronunciation": int(score * 100)
}
})
except Exception as e:
return jsonify({"code": 500, "msg": str(e)}), 500
def calculate_similarity(text1, text2):
text1 = text1.replace(' ', '')
text2 = text2.replace(' ', '')
if len(text2) == 0:
return 0
matched = sum(1 for c in text1 if c in text2)
return matched / len(text2)
if __name__ == '__main__':
print("🚀 Whisper 服务启动中...")
print("📍 地址: http://0.0.0.0:5001")
print("✓ 服务就绪")
app.run(host='0.0.0.0', port=5001, debug=False)
---------------------------------------
【后台运行服务】
如果需要让 Whisper 服务在后台运行:
方式1使用 start 命令
start /b python app.py
方式2创建 Windows 服务(推荐生产环境)
使用 NSSM (Non-Sucking Service Manager)
1. 下载 NSSM: https://nssm.cc/download
2. 安装服务:
nssm install WhisperService "C:\Python39\python.exe" "D:\whisper-service\app.py"
3. 启动服务:
nssm start WhisperService
方式3使用任务计划程序
1. 打开"任务计划程序"
2. 创建基本任务
3. 触发器:系统启动时
4. 操作:启动程序 python.exe参数D:\whisper-service\app.py
【日志查看】
如果服务启动失败,查看错误信息:
1. 保持命令行窗口打开,查看输出
2. 或将输出重定向到文件:
python app.py > whisper.log 2>&1
【获取帮助】
如果遇到问题,请提供:
1. Whisper 服务目录路径
2. 启动时的完整错误信息
3. Python 版本python --version
4. 端口检查结果netstat -ano | findstr :5001
====================================