FunASR 部署指南
概述
FunASR(Fundamental End-to-End Speech Recognition Toolkit)是阿里巴巴达摩院开源的工业级语音识别工具包,支持语音识别(ASR)、语音活动检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离等功能。
硬件要求
本环境
| 项目 |
配置 |
| 虚拟化 |
KVM 虚拟机 |
| CPU |
4 核 |
| 内存 |
16 GB |
| 硬盘 |
80 GB |
| 操作系统 |
Rocky Linux 9.7 |
推荐配置
| 场景 |
CPU |
内存 |
硬盘 |
GPU |
| 离线转写(小文件) |
2核+ |
8 GB |
20 GB |
可选 |
| 实时流式识别 |
4核+ |
16 GB |
30 GB |
推荐 |
| 高并发服务 |
8核+ |
32 GB+ |
50 GB+ |
推荐 |
Tip
本环境(4核16GB)适合离线批量转写和中低并发 API 服务。首次部署需下载模型约 2~3 GB,后续使用约占用 4~6 GB 内存。
安装部署
步骤一:安装 pyenv
pyenv 用于管理 Python 版本。
参考:
步骤二:安装 Python 3.12.3
| Bash |
|---|
| # 安装 Python
pyenv install 3.12.3
# 验证版本
python3.12 --version
# 输出: Python 3.12.3
|
Warning
国内网络下载 Python 源码可能卡住,可使用 PYENV_PYTHON_REPO 指定镜像源:
| Bash |
|---|
| PYENV_PYTHON_REPO=https://mirrors.huaweicloud.com/python/3.12.3/ \
pyenv install 3.12.3
|
步骤三:创建虚拟环境
| Bash |
|---|
| # 创建虚拟环境
python3.12 -m venv ~/funasr-env
# 激活
source ~/funasr-env/bin/activate
# 升级 pip
pip install --upgrade pip
# 验证
python --version
# 输出: Python 3.12.3
|
步骤四:安装 PyTorch(CPU 版)
| Bash |
|---|
| pip install torch torchaudio --index-url https://download.pytorch.org/whl/cpu
|
步骤五:安装 FunASR
| Bash |
|---|
| pip install funasr modelscope
|
步骤六:安装 FFmpeg
Rocky Linux 9 的 FFmpeg 位于 CRB(CodeReady Builder) 仓库,需先开启该仓库。
| Bash |
|---|
| # 开启 CRB 仓库
dnf config-manager --set-enabled crb
dnf makecache
# 安装 FFmpeg
dnf install -y ffmpeg
# 验证
ffmpeg -version
|
Tip
安装前建议先执行 dnf -y update 更新包列表,避免依赖冲突。
步骤七:验证安装
首次运行会自动下载模型(约 2 GB),请耐心等待。
| Bash |
|---|
| python -c "
from funasr import AutoModel
print('FunASR 安装成功!')
print('正在下载测试模型...')
model = AutoModel(model='paraformer-zh')
print('模型下载完成,可以开始使用了!')
"
|
单个文件测试
测试脚本
创建文件 /root/test_funasr.py:
| Python |
|---|
| #!/usr/bin/env python3
from funasr import AutoModel
# 加载模型
print("正在加载模型...")
model = AutoModel(
model="paraformer-zh",
vad_model="fsmn-vad",
punc_model="ct-punc"
)
print("模型加载完成!")
# 指定音频文件
audio_file = "/root/test.m4a"
print(f"正在转写: {audio_file}")
result = model.generate(
input=audio_file,
batch_size_s=300
)
# 输出结果
print("\n" + "=" * 50)
print("转写结果:")
print("=" * 50)
print(result[0]["text"])
print("=" * 50)
|
执行测试
| Bash |
|---|
| source ~/funasr-env/bin/activate
python /root/test_funasr.py
|
预期输出
| Bash |
|---|
| 正在加载模型...
模型加载完成!
正在转写: /root/test.m4a
rtf_avg: 0.146, time_speech: 4.969, time_escape: 0.727: 100%
==================================================
转写结果:
==================================================
这是一个测试。
==================================================
|
常见问题
FFmpeg 安装失败
| Bash |
|---|
| # 确保已开启 CRB 仓库
dnf config-manager --set-enabled crb
# 执行全量更新后重试
dnf -y update
dnf install -y ffmpeg
|
torchcodec 报错
若出现 libavutil.so 找不到等错误,卸载 torchcodec 让 FunASR 走系统 FFmpeg:
| Bash |
|---|
| pip uninstall torchcodec -y
|
下载模型超时
模型从 ModelScope 下载,首次需 1~3 GB。如下载慢,可手动下载后放入缓存目录:
| Bash |
|---|
| mkdir -p /root/.cache/modelscope/hub/models
# 将模型文件放入对应目录
|