Paraformer(由达摩院开发)是一款非自回归的端到端语音识别模型,支持高效的语音转文本任务。以下是本地部署Paraformer的详细步骤:
1. 环境准备
- 操作系统:Linux(推荐Ubuntu 18.04/20.04)或 macOS(需自行解决依赖问题)。
- Python:3.7 或更高版本。
- PyTorch:1.8+(需与CUDA版本匹配,若使用GPU)。
- CUDA/cuDNN(GPU用户):建议CUDA 11.1+,cuDNN 8.0+。
# 示例:创建conda环境
conda create -n paraformer python=3.8
conda activate paraformer
pip install torch torchaudio -f https://download.pytorch.org/whl/torch_stable.html
2. 下载模型与代码
Paraformer的官方实现通常通过 FunASR(达摩院开源工具包)提供:
git clone https://github.com/alibaba-damo-academy/FunASR.git
cd FunASR
pip install -e . # 安装依赖
- 下载预训练模型:
- 从 Modelscope 搜索 “Paraformer” 下载模型(如
paraformer-zh
中文模型)。 - 或使用命令行:
模型会默认下载到pip install modelscope python -c "from modelscope.hub.snapshot_download import snapshot_download; snapshot_download('damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch')"
~/.cache/modelscope/hub/
。
- 从 Modelscope 搜索 “Paraformer” 下载模型(如
3. 本地推理示例
使用FunASR加载模型进行推理:
from funasr import AutoModel
# 加载模型(替换为实际模型路径)
model_path = "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"
model = AutoModel(model=model_path)
# 语音识别
wav_path = "your_audio.wav" # 支持16kHz单声道WAV格式
result = model.generate(input=wav_path)
print(result[0]["text"])
4. 高级部署选项
GPU加速
- 确保PyTorch已启用CUDA:
import torch print(torch.cuda.is_available()) # 应输出True
本地服务化
使用FunASR的HTTP服务:
python -m funasr.bin.asr_launch --model_path ./model --ngpu 1
访问 http://localhost:8008
通过API提交音频。
量化与优化
- 使用ONNX导出减少延迟:
from funasr import AutoModel model = AutoModel(model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch", export_onnx=True)
5. 常见问题
- 音频格式:需16kHz单声道WAV,其他格式需用FFmpeg转换:
ffmpeg -i input.mp3 -ar 16000 -ac 1 output.wav
- 依赖冲突:建议使用干净的Python环境。
- 显存不足:尝试更小的模型(如
paraformer-zh-small
)。
6. 参考资源
通过以上步骤,您可以在本地高效部署Paraformer模型。如需进一步定制(如微调训练),需准备数据集并参考FunASR的文档。