以下是 Paraformer 的详细安装与部署指南,涵盖本地环境、云端及嵌入式设备的部署步骤,并提供常见问题解决方案:
1. 环境准备
基础要求
- 操作系统:Linux (推荐Ubuntu 20.04+) / macOS / Windows (WSL2)
- Python:3.7-3.9
- 硬件:
- CPU:≥4核(实时流式需8核以上)
- 内存:≥8GB(长音频建议16GB)
- GPU(可选):CUDA 11.3+(加速推理)
依赖安装
# 1. 创建虚拟环境(推荐)
conda create -n paraformer python=3.8
conda activate paraformer
# 2. 安装PyTorch(根据CUDA版本选择)
pip install torch torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
# 3. 安装FunASR框架
pip install funasr
pip install modelscope # 用于下载预训练模型
2. 模型下载
官方预训练模型
from modelscope.hub.snapshot_download import snapshot_download
# 下载Paraformer中文模型(1.3GB)
model_dir = snapshot_download('damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch')
可选模型
- 流式模型:
damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch-streaming
- 小尺寸模型:
damo/speech_paraformer-small_asr_nat-zh-cn-16k-common-vocab8404-pytorch
3. 本地部署示例
离线语音识别(文件输入)
from funasr import AutoModel
# 加载模型
model = AutoModel(model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch")
# 识别音频文件(支持WAV/MP3,16kHz采样率)
res = model.generate(input="your_audio.wav")
print(res[0]["text"])
实时流式识别
from funasr import AutoModel
# 加载流式模型
model = AutoModel(model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch-streaming")
# 模拟流式输入(分块处理)
for chunk in audio_stream: # 需自行实现音频流分块(如PyAudio)
res = model.generate(input=chunk, is_final=False)
print(res[0]["text"], end="\r", flush=True)
4. 高级部署选项
Docker部署
# 拉取官方镜像
docker pull alibaba-damo-funasr/funasr:latest
# 启动容器(挂载模型目录)
docker run -it --gpus all -v /path/to/local/models:/models alibaba-damo-funasr/funasr
嵌入式设备(树莓派)
- 编译轻量版依赖:
pip install onnxruntime # 替代PyTorch以节省资源
- 使用小尺寸模型(
paraformer-small
)
5. 常见问题解决
Q1: 报错 libsndfile not found
# Ubuntu
sudo apt-get install libsndfile1
# macOS
brew install libsndfile
Q2: 流式识别延迟高
- 调整音频分块大小(建议200-300ms)
- 启用GPU加速(需安装CUDA版PyTorch)
Q3: 方言识别效果差
- 微调模型:使用 FunASR微调工具链
- 示例数据格式:
/path/to/audio.wav\t普通话文本 /path/to/audio2.wav\t方言文本
6. 性能优化建议
- GPU加速:设置环境变量
CUDA_VISIBLE_DEVICES=0
- 批处理:单次处理多文件提升吞吐量
model.generate(input=["audio1.wav", "audio2.wav"], batch_size=4)
- 量化部署:使用ONNX转换减小模型体积
pip install onnxruntime funasr_export --model_name paraformer --quantize True
7. 应用场景扩展
通过以上步骤,可快速完成Paraformer的部署。如需生产级服务,建议参考官方文档配置 FunASR-Server。