跳转至

FunASR 部署指南

概述

FunASR(Fundamental End-to-End Speech Recognition Toolkit)是阿里巴巴达摩院开源的工业级语音识别工具包,支持语音识别(ASR)、语音活动检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离等功能。

项目 说明
开源地址 https://github.com/modelscope/FunASR
协议 MIT(可商用)
核心能力 中文语音识别、多语言识别、实时流式、离线批量转写
核心模型 Paraformer-large、SenseVoiceSmall

硬件要求

本环境

项目 配置
虚拟化 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
1
2
3
4
5
6
# 安装 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
1
2
3
4
5
6
7
8
9
# 开启 CRB 仓库
dnf config-manager --set-enabled crb
dnf makecache

# 安装 FFmpeg
dnf install -y ffmpeg

# 验证
ffmpeg -version

Tip

安装前建议先执行 dnf -y update 更新包列表,避免依赖冲突。

步骤七:验证安装

首次运行会自动下载模型(约 2 GB),请耐心等待。

Bash
1
2
3
4
5
6
7
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
1
2
3
4
5
6
# 确保已开启 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
# 将模型文件放入对应目录