国产系统部署(麒麟)
1. 检查 Python 环境
# 查看 Python 版本(需要 3.8+)
python3 --version
# 查看 pip3 是否已安装
pip3 --version
如果显示 -bash: pip3: command not found,先安装 pip3:
sudo yum install -y python3-pip
在国产麒麟系统上部署 OpenAI Whisper 语音识别模型的完整流程。主要步骤包括:确认并升级 Python 3.8+ 环境,安装编译依赖及 ffmpeg,配置 pip 源并安装 torch 与 openai-whisper 库,最后通过 Python http.server 构建一个简单的语音识别服务接口。方案支持 x86_64 架构,建议使用虚拟环境隔离依赖。
# 查看 Python 版本(需要 3.8+)
python3 --version
# 查看 pip3 是否已安装
pip3 --version
如果显示 -bash: pip3: command not found,先安装 pip3:
sudo yum install -y python3-pip
首先确认你的系统架构,这会影响后续下载哪个源码包:
uname -m
输出可能是:
x86_64:Intel/AMD 64 位架构aarch64:ARM 64 位架构(飞腾、鲲鹏处理器)本系统是 x86_64。
# 1. 安装编译依赖
# 说明:这些依赖确保 Python 编译后能正常使用 pip、SSL、压缩等功能。
sudo yum install -y gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel xz-devel wget
# 2. 下载源码
cd /usr/local/src
sudo wget https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tgz
# 3. 解压并编译
sudo tar -xzf Python-3.8.18.tgz
cd Python-3.8.18
sudo ./configure --prefix=/usr/local/python3.8 --enable-optimizations
sudo make -j$(nproc)
sudo make altinstall
# 4. 创建软链接
sudo ln -sf /usr/local/python3.8/bin/python3.8 /usr/bin/python3.8
sudo ln -sf /usr/local/python3.8/bin/pip3.8 /usr/bin/pip3.8
# 5. 验证
python3.8 --version
为什么用
altinstall? 这样安装后,Python 3.8 的可执行文件是/usr/local/python3.8/bin/python3.8,不会覆盖系统自带的python3(可能是 3.7),避免破坏系统工具。
⚠️ 注意:切换默认 python3 可能会影响依赖 Python 3.7 的系统工具(如 yum)。建议保留系统默认,使用
python3.8命令专门运行 FunASR。
# 安装 ffmpeg(解决音频处理问题)
yum install ffmpeg -y
# 使用 python3.8 对应的 pip 配置清华源
pip3.8 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装基础依赖
pip3.8 install numpy
# 安装 PyTorch(Whisper 依赖)
pip3.8 install torch
# 安装 Whisper
pip3.8 install openai-whisper
# 安装繁简转换工具(可选)
pip3.8 install opencc-python-reimplemented
如果你希望快速安装所有依赖,可以一次性安装:
pip3.8 install numpy torch openai-whisper opencc-python-reimplemented
注意:
建议使用虚拟环境避免包冲突:
python3.8 -m venv whisper-env
source whisper-env/bin/activate
# 激活虚拟环境
pip3.8 install numpy torch openai-whisper opencc-python-reimplemented
# 完成后退出环境
deprecate
# 创建服务目录
mkdir -p ~/whisper-server
cd ~/whisper-server
# 写入服务脚本
cat > whisper_https.py << 'EOF'
#!/usr/bin/env python3
import json
import tempfile
import os
from http.server import HTTPServer, BaseHTTPRequestHandler
import cgi
import sys
print("正在加载 Whisper...")
sys.stdout.flush()
try:
import whisper
print("Whisper 导入成功")
print("正在加载模型...")
model = whisper.load_model("base")
print("模型加载完成!")
except Exception as e:
print(f"加载失败:{e}")
sys.exit(1)
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/health':
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
self.wfile.write(json.dumps({"status": "ok"}).encode())
else:
self.send_response(404)
self.end_headers()
def do_POST(self):
if self.path == '/recognition':
try:
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD': 'POST'}
)
if 'audio' not in form:
self.send_error(400, "No audio file")
return
file_item = form['audio']
with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp:
tmp.write(file_item.file.read())
tmp_path = tmp.name
# 识别
result = model.transcribe(tmp_path, language="zh")
os.unlink(tmp_path)
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
response = json.dumps({"code": 0, "text": result["text"]})
self.wfile.write(response.encode())
except Exception as e:
self.send_response(500)
self.end_headers()
self.wfile.write(json.dumps({"code": 1, "msg": str(e)}).encode())
else:
self.send_response(404)
self.end_headers()
if __name__ == "__main__":
port = 8000
server = HTTPServer(('0.0.0.0', port), Handler)
print(f"✅ HTTP 服务启动成功!")
print(f"📍 地址:http://0.0.0.0:{port}")
print(f"✅ 健康检查:http://localhost:{port}/health")
print(f"✅ 识别接口:POST http://localhost:{port}/recognition")
print("\n按 Ctrl+C 停止服务")
sys.stdout.flush()
server.serve_forever()
EOF
# 运行服务
python3 whisper_https.py

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online